]> git.lyx.org Git - features.git/commitdiff
tex2lyx: import straight quotation marks as ERT
authorJuergen Spitzmueller <spitz@lyx.org>
Sun, 4 Mar 2018 11:08:08 +0000 (12:08 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 4 Mar 2018 11:08:08 +0000 (12:08 +0100)
This assures that they are output as straight quotations marks (e.g.,
babel shorthands).

Fixes: #75 [sic!]
src/tex2lyx/text.cpp

index c18b5e83532a657983a63bb4828a8f907c863650..71eb6a52f06044457946310cb58f395931d34142 100644 (file)
@@ -2632,6 +2632,32 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
                else if (t.cat() == catSpace || (t.cat() == catNewline && ! p.isParagraph()))
                        check_space(p, os, context);
 
+               // babel shorthands (also used by polyglossia)
+               // Since these can have different meanings for different languages
+               // we import them as ERT (but they must be put in ERT to get output
+               // verbatim).
+               else if (t.asInput() == "\"") {
+                       string s = "\"";
+                       // These are known pairs. We put them together in
+                       // one ERT inset. In other cases (such as "a), only
+                       // the quotation mark is ERTed.
+                       if (p.next_token().asInput() == "\""
+                           || p.next_token().asInput() == "|"
+                           || p.next_token().asInput() == "-"
+                           || p.next_token().asInput() == "~"
+                           || p.next_token().asInput() == "="
+                           || p.next_token().asInput() == "/"
+                           || p.next_token().asInput() == "~"
+                           || p.next_token().asInput() == "'"
+                           || p.next_token().asInput() == "`"
+                           || p.next_token().asInput() == "<"
+                           || p.next_token().asInput() == ">") {
+                               s += p.next_token().asInput();
+                               p.get_token();
+                       }
+                       output_ert_inset(os, s, context);
+               }
+
                else if (t.character() == '[' && noweb_mode &&
                         p.next_token().character() == '[') {
                        // These can contain underscores