LuaTeX readline 编码

LuaTeX readline 编码

LuaTeX 必须\readline使用 latin-1 编码吗?

在下面的例子中,我首先将其存储é在一个文件中(嗯,和^^J),效果很好。然后我将其读回,使用\readline和获得两个字符é(和^^M)。然后将其写回到文件中会产生这两个字符(或者更确切地说,是它们的 utf-8 编码中的字节)。我希望能够进行往返“读取 utf-8 文件并将其写回”,而无需进行修改(除了可能进行一些行末空格修剪)。

% Write some Unicode char to a file tmp.aux
\immediate\openout5=tmp.aux
\immediate\write5{é}
\immediate\closeout5
%
% Read it back in, _using \readline_
\openin6=tmp.aux
\readline6 to \foo
\closein6
%
\message{\foo}                   % => Ā© and a carriage return
%
% Write again: the file is different from tmp.aux.
\immediate\openout5=out.aux
\immediate\write5{\foo}
\immediate\closeout5
%
\csname bye\endcsname
\csname @@end\endcsname

使用\read而不是\readline避免了编码问题但标记了行,这是我不想做的。

答案1

正如评论中所述,这个问题似乎可以通过使用最新版本的 LuaTeX 来解决,它似乎以相同的方式处理\read和的编码\readline

相关内容