From e7c75296d6f13e1bb08b254f3a2fe3c57ccf6bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20St=C3=B6hr?= Date: Thu, 21 Feb 2013 23:13:05 +0100 Subject: [PATCH] tex2lyx/text.cpp: correction for TIPA character support - for all TIPA characters the tipa and tipx package must always be registered because these characters are also allowed outside a TIPA inset - include \textvertline because we again reached the maximum number of if statements allowed by MSCV (so safe at least one for now) --- src/tex2lyx/text.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index 855ac28e99..f29d65cb4c 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -3257,8 +3257,15 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, } // the TIPA Combining diacritical marks - else if (is_known(t.cs(), known_tipa_marks)) { + else if (is_known(t.cs(), known_tipa_marks) || t.cs() == "textvertline") { + preamble.registerAutomaticallyLoadedPackage("tipa"); + preamble.registerAutomaticallyLoadedPackage("tipx"); context.check_layout(os); + if (t.cs() == "textvertline") { + os << "|"; + skip_braces(p); + continue; + } // try to see whether the string is in unicodesymbols bool termination; docstring rem; @@ -3274,10 +3281,6 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, << ", result is " << to_utf8(s) << "+" << to_utf8(rem) << endl; os << content << to_utf8(s); - // tipa is already registered because of the surrounding IPA environment - // or \textipa but it does not harm to register it again if necessary - for (set::const_iterator it = req.begin(); it != req.end(); ++it) - preamble.registerAutomaticallyLoadedPackage(*it); } else // we did not find a non-ert version output_ert_inset(os, command, context); @@ -3312,14 +3315,6 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, output_ert_inset(os, command, context); } - else if (t.cs() == "textvertline" ) { - // this TIPA character does not occur in - // unicodesymbols because it is in the ASCII range - context.check_layout(os); - os << "|"; - skip_braces(p); - } - else if (t.cs() == "phantom" || t.cs() == "hphantom" || t.cs() == "vphantom") { context.check_layout(os);