From 53597584e60b4367b85803533622572c3e485c67 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Sat, 6 Jul 2019 15:15:06 +0200 Subject: [PATCH] Fix nomencl generation with LuaTeX Fixes: #11571 (cherry picked from commit bf6a7dc38fb593902024e853c49884d172323c4e) --- src/LaTeX.cpp | 18 ++++++++++++++---- status.23x | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp index df20f7b285..e541361ee6 100644 --- a/src/LaTeX.cpp +++ b/src/LaTeX.cpp @@ -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 = `file.ext'." - } else if (regex_match(token, sub, reg3)) { + // (3)(a) "\openout = `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 = 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? diff --git a/status.23x b/status.23x index a4c3078826..316cce0eb9 100644 --- a/status.23x +++ b/status.23x @@ -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 -- 2.39.5