]> git.lyx.org Git - features.git/commitdiff
Fix nomencl generation with LuaTeX
authorJuergen Spitzmueller <spitz@lyx.org>
Sat, 6 Jul 2019 13:15:06 +0000 (15:15 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 7 Jul 2019 08:45:41 +0000 (10:45 +0200)
Fixes: #11571
(cherry picked from commit bf6a7dc38fb593902024e853c49884d172323c4e)

src/LaTeX.cpp
status.23x

index df20f7b285bb999fc579674b6c03390ee3ea4cce..e541361ee68cddbb11e245c36863c601239d1b6e 100644 (file)
@@ -1166,14 +1166,16 @@ void LaTeX::deplog(DepTable & head)
 
        static regex const reg1("File: (.+).*");
        static regex const reg2("No file (.+)(.).*");
-       static regex const reg3("\\\\openout[0-9]+.*=.*`(.+)(..).*");
+       static regex const reg3a("\\\\openout[0-9]+.*=.*`(.+)(..).*");
+       // LuaTeX has a slightly different output
+       static regex const reg3b("\\\\openout[0-9]+.*=\\s*(.+)");
        // If an index should be created, MikTex does not write a line like
        //    \openout# = 'sample.idx'.
        // but instead only a line like this into the log:
        //   Writing index file sample.idx
        static regex const reg4("Writing index file (.+).*");
        static regex const regoldnomencl("Writing glossary file (.+).*");
-       static regex const regnomencl("Writing nomenclature file (.+).*");
+       static regex const regnomencl(".*Writing nomenclature file (.+).*");
        // If a toc should be created, MikTex does not write a line like
        //    \openout# = `sample.toc'.
        // but only a line like this into the log:
@@ -1259,14 +1261,22 @@ void LaTeX::deplog(DepTable & head)
                        else
                                // we suspect a line break
                                fragment = true;
-               // (3) "\openout<nr> = `file.ext'."
-               } else if (regex_match(token, sub, reg3)) {
+               // (3)(a) "\openout<nr> = `file.ext'."
+               } else if (regex_match(token, sub, reg3a)) {
                        // search for closing '. at the end of the line
                        if (sub.str(2) == "\'.")
                                fragment = !handleFoundFile(sub.str(1), head);
                        else
                                // potential fragment
                                fragment = true;
+               // (3)(b) "\openout<nr> = file.ext" (LuaTeX)
+               } else if (regex_match(token, sub, reg3b)) {
+                       // file names must contains a dot
+                       if (contains(sub.str(1), '.'))
+                               fragment = !handleFoundFile(sub.str(1), head);
+                       else
+                               // potential fragment
+                               fragment = true;
                // (4) "Writing index file file.ext"
                } else if (regex_match(token, sub, reg4))
                        // fragmential file name?
index a4c3078826d2da5959431db4de6fbf1a93742378..316cce0eb9e50ca5dde95adc25239b8f4929aed8 100644 (file)
@@ -61,6 +61,8 @@ Avoid using text mode for unicode symbols representable in math mode (bug 9616).
 
 - Fix problems with paths that contain the tilde (~) character.
 
+- Fix nomenclature processing with LuaTeX (bug 11571).
+
 
 * USER INTERFACE