xelatex 和 pdflatex 输出文件中的标签不同

xelatex 和 pdflatex 输出文件中的标签不同

我正在尝试pgf图生成gnuplot数据。这通过让 pgfplots 将一些内容写入外部文件、在文件上运行 gnuplot,然后使用生成的数据绘制图形来实现。

我遇到的问题是,在 或 下,我得到了不同的行为xelatexpdflatexlualatexxelatex,数据文件乱七八糟^^I,而在其他两种格式中,这些是标签。它出现代码^^I被存储为宏,然后被写入文件,因此语法可能有些奇怪^^Ixelatex是逐字读取。事实上,当我执行\show\pgfplots@TAB(有问题的宏)然后 forpdflatex然后lualatex我得到一个文字制表符,而 forxelatex我得到^^I

那么我该如何添加标签xelatex?为什么不起作用\gdef\pgfplots@TAB{^^I}

(顺便说一下,代码中的上一行是\catcode`\^^I=12- 我不知道这是否与它有关。)

答案1

在 TeX Live 中,pdf(la)tex 和 lua(la)tex 的格式是通过加载 tcx 翻译文件来构建的,cp227.tcx这使得^^I“可打印”。这意味着类别代码 12^^I被写成真正的制表符。

另一方面,xetex 忽略 tcx 翻译请求,在这方面的行为类似于 Knuth 的 TeX(但它当然会写入 UTF-8)。

\begin{frame}[fragile]使用with 时也会出现相同的问题beamer,因为环境的内容被写入临时文件,或者使用\verbatimwrite和类似命令;filecontents环境也可能受到影响。

一种解决方案可能是使用命令行选项调用 xetex -8bit,但我不知道这是否有其他副作用。

相关内容