mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-07 12:32:26 +00:00
Fix encoding problems in \input@path
As of LaTeX2e 2018, characters are made active earlier, which results in new expansion problems. Following a suggestion of Markus Kohm (pc) and the TL mailing list [1], we embrace non-ASCII input paths in \detokenize. This relies on e-tex, but I think we can assume this is nowadays available everywhere. [1] http://tug.org/pipermail/tex-live/2018-May/041691.html Fixes: #11146
This commit is contained in:
parent
5996b2e373
commit
8bd65041f2
@ -1898,8 +1898,7 @@ Buffer::ExportStatus Buffer::writeLaTeXSource(otexstream & os,
|
||||
"file path name."),
|
||||
inputpath, uncodable_glyphs));
|
||||
} else {
|
||||
string docdir =
|
||||
latex_path(original_path);
|
||||
string docdir = os::latex_path(original_path);
|
||||
if (contains(docdir, '#')) {
|
||||
docdir = subst(docdir, "#", "\\#");
|
||||
os << "\\catcode`\\#=11"
|
||||
@ -1910,9 +1909,20 @@ Buffer::ExportStatus Buffer::writeLaTeXSource(otexstream & os,
|
||||
os << "\\catcode`\\%=11"
|
||||
"\\def\\%{%}\\catcode`\\%=14\n";
|
||||
}
|
||||
bool const detokenize = !isAscii(from_utf8(docdir));
|
||||
bool const quote = contains(docdir, ' ');
|
||||
os << "\\makeatletter\n"
|
||||
<< "\\def\\input@path{{"
|
||||
<< docdir << "}}\n"
|
||||
<< "\\def\\input@path{{";
|
||||
if (detokenize)
|
||||
os << "\\detokenize{";
|
||||
if (quote)
|
||||
os << "\"";
|
||||
os << docdir;
|
||||
if (quote)
|
||||
os << "\"";
|
||||
if (detokenize)
|
||||
os << "}";
|
||||
os << "}}\n"
|
||||
<< "\\makeatother\n";
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user