[LyX/2.3.x] Re-fix #11146 with recent LaTeX

Juergen Spitzmueller spitz at lyx.org
Mon Jan 27 07:11:53 UTC 2020


commit 878efbaf62404d1403366a3f0fe43014344ca38e
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Wed Nov 20 11:48:18 2019 +0100

    Re-fix #11146 with recent LaTeX
    
    (cherry picked from commit e75fa6f3ac5735dfcd588acb5c187556bface16d)
---
 lib/chkconfig.ltx |   18 ++++++++++++++++++
 src/Buffer.cpp    |    9 +++++++--
 status.23x        |    3 +++
 3 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/lib/chkconfig.ltx b/lib/chkconfig.ltx
index 9d743d2..305045f 100644
--- a/lib/chkconfig.ltx
+++ b/lib/chkconfig.ltx
@@ -120,6 +120,20 @@
     #6
   \fi}
 
+% Test for the LaTeX version
+\newcommand{\TestLaTeXVersion}[1]{
+  \message{^^J\prefix checking for LaTeX version at least as of #1...}
+  \@ifl at t@r\fmtversion{#1}{\existstrue}{\existsfalse}
+  \ifexists
+    \message{yes^^J}
+    \AddVariable{#1}{yes}
+    \AddPackage{LaTeX-#1}
+  \else
+    \message{no^^J}
+    \AddVariable{#1}{no}
+  \fi}
+
+
 % Adapted from ltxcheck.tex
 \newcommand{\TestFont}[2][\default]{
   \def\default{#2}
@@ -204,6 +218,10 @@
 \message{^^J\prefix checking for LaTeX version... \fmtversion}
 \AddVariable{fmtversion}{\fmtversion}
 
+%%% Crucial versions
+% This one introduces path encoding changes
+\TestLaTeXVersion{2019/10/01}
+
 %%% And now, the list of available languages
 % The trick is to know that \the\everyjob contains something like
 %  \typeout{LaTeX2e <2001/06/01>}
diff --git a/src/Buffer.cpp b/src/Buffer.cpp
index dd0cca6..912baec 100644
--- a/src/Buffer.cpp
+++ b/src/Buffer.cpp
@@ -1911,9 +1911,14 @@ void Buffer::writeLaTeXSource(otexstream & os,
 					os << "\\catcode`\\%=11"
 					      "\\def\\%{%}\\catcode`\\%=14\n";
 				}
-				bool const detokenize = !isAscii(from_utf8(docdir))
-						|| contains(docdir, '~');
+				bool const nonascii = !isAscii(from_utf8(docdir));
+				// LaTeX 2019/10/01 handles non-ascii path without detokenize
+				bool const utfpathlatex = features.isAvailable("LaTeX-2019/10/01");
+				bool const detokenize = !utfpathlatex
+						&& (nonascii || contains(docdir, '~'));
 				bool const quote = contains(docdir, ' ');
+				if (utfpathlatex && nonascii)
+					os << "\\UseRawInputEncoding\n";
 				os << "\\makeatletter\n"
 				   << "\\def\\input at path{{";
 				if (detokenize)
diff --git a/status.23x b/status.23x
index 354c555..5cb8a2b 100644
--- a/status.23x
+++ b/status.23x
@@ -41,6 +41,9 @@ What's new
 
 * DOCUMENT INPUT/OUTPUT
 
+- Fix problems with non-ASCII characters in file path with recent LaTeX
+  (bug 11146).
+
 
 * USER INTERFACE
 


More information about the lyx-cvs mailing list