Fix nomencl generation with LuaTeX

Fixes: #11571
This commit is contained in:
Juergen Spitzmueller 2019-07-06 15:15:06 +02:00
parent 6ca8238cb8
commit bf6a7dc38f

View File

@ -1246,14 +1246,16 @@ void LaTeX::deplog(DepTable & head)
static regex const reg1("File: (.+).*"); static regex const reg1("File: (.+).*");
static regex const reg2("No 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 // If an index should be created, MikTex does not write a line like
// \openout# = 'sample.idx'. // \openout# = 'sample.idx'.
// but instead only a line like this into the log: // but instead only a line like this into the log:
// Writing index file sample.idx // Writing index file sample.idx
static regex const reg4("Writing index file (.+).*"); static regex const reg4("Writing index file (.+).*");
static regex const regoldnomencl("Writing glossary 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 // If a toc should be created, MikTex does not write a line like
// \openout# = `sample.toc'. // \openout# = `sample.toc'.
// but only a line like this into the log: // but only a line like this into the log:
@ -1339,14 +1341,22 @@ void LaTeX::deplog(DepTable & head)
else else
// we suspect a line break // we suspect a line break
fragment = true; fragment = true;
// (3) "\openout<nr> = `file.ext'." // (3)(a) "\openout<nr> = `file.ext'."
} else if (regex_match(token, sub, reg3)) { } else if (regex_match(token, sub, reg3a)) {
// search for closing '. at the end of the line // search for closing '. at the end of the line
if (sub.str(2) == "\'.") if (sub.str(2) == "\'.")
fragment = !handleFoundFile(sub.str(1), head); fragment = !handleFoundFile(sub.str(1), head);
else else
// potential fragment // potential fragment
fragment = true; 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" // (4) "Writing index file file.ext"
} else if (regex_match(token, sub, reg4)) } else if (regex_match(token, sub, reg4))
// fragmential file name? // fragmential file name?