From 1174279967c4ee369d9de1438f18b7e5c748b127 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Uwe=20St=C3=B6hr?= Date: Fri, 9 Mar 2018 04:53:33 +0100 Subject: [PATCH] tex2lyx: parse \xymatrix LyX's \xymatrix support relies on math therefore put it into math and parse its content fixes bug #10638 --- lib/syntax.default | 1 - src/tex2lyx/text.cpp | 13 +++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/syntax.default b/lib/syntax.default index d9596b6f86..550b6f16b7 100644 --- a/lib/syntax.default +++ b/lib/syntax.default @@ -705,7 +705,6 @@ $$ \vspace{} \vspace*{} \whiledo{}{} -\xymatrix{} % this is basically an array => the contents would be parsed badly (bug 8396) % LaTeX environments. % They have always one extra "argument": diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index 8198b82163..2633f74654 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -3267,6 +3267,19 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, continue; } + if (t.cs() == "xymatrix") { + // we must open a new math because LyX's xy support is in math + context.check_layout(os); + begin_inset(os, "Formula "); + os << '$'; + os << "\\" << t.cs() << '{'; + parse_math(p, os, FLAG_ITEM, MATH_MODE); + os << '}' << '$'; + end_inset(os); + preamble.registerAutomaticallyLoadedPackage("xy"); + continue; + } + if (t.cs() == "includegraphics") { bool const clip = p.next_token().asInput() == "*"; if (clip) -- 2.39.5