从 pdftex 中隐藏 ^^^^-notation

从 pdftex 中隐藏 ^^^^-notation

以下示例在使用 pdflatex 编译时出现错误

! Text line contains an invalid character.

\documentclass{article}
\usepackage{ifluatex}
\ifluatex
\usepackage{fontspec}
\fi
\begin{document}
abc
\ifluatex ^^^^20ac\fi
\end{document}

可以通过使用另一个字符并更改其 catcode 来解决该问题,例如在内部ifluatex

\ifluatex{\catcode`\!=7 !!!!20ac}\fi

但我想知道:有没有办法^^^^在 pdflatex 中以某种方式全局隐藏-notation 中的无效字符?

答案1

无效字符是^^^,即0x1E;默认情况下,LaTeX 会使从0x01到 的所有字符0x1F无效,但以下字符除外

0x09 0x0C 0x0D

即制表符、换行符和回车符(类别代码 10、13 和 5)。

解决方法是忽略这个字符:

\documentclass{article}
\usepackage{ifluatex}
\ifluatex
  \usepackage{fontspec}
\else
  \catcode`\^^^=9
\fi
\begin{document}
abc
\ifluatex ^^^^20ac\fi
\end{document}

假设您不需要代码^^^中的任何地方pdflatex,这应该可以让 TeX 满意。

相关内容