TeX 中默认激活的字符有哪些?

TeX 中默认激活的字符有哪些?

由于该角色~的 catcode 为 13,因此它被视为活动角色。我可以通过执行类似代码 \let~\catcode ~`a8(为该角色分配acatcode 为 8(表示下标))来(滥用)它,而无需先执行此操作\catcode`~13

TeX 中还有哪些其他字符默认被视为活动字符?换句话说,哪些字符的默认 catcode 为 13?

答案1

plain 始终将字符 12(换页符)和 126(波浪号)作为活动字符,这并不奇怪。

在 LaTeX 中,情况取决于所使用的引擎。在 pdflatex 中,字符 128-225 处于活动状态以支持编码;在 xelatex 和 lualatex 中,字符 173(U+00AD“软连字符”)被声明为活动状态并赋予含义\-(自由连字符)。

以表格形式:

格式/引擎 特克斯 pdftex 西特克斯 路特克斯
清楚的 12 126 12 126 12 126 12 126
乳胶 / 1-8 11 12 14-31 126 128-255 12 126 173 12 126 173
语境 / / / 124 126
美式英语 / 12 64 126 / /
OpTeX / / / 126 160

总体来说~似乎只是通用的。

使用以下测试文件:

\ifx\documentclass\undefined \else
    \documentclass{article}
    \begin{document}
\fi
\csname starttext\endcsname

\newcount\curr
\newcount\upper

\ifx\numexpr\undefined
    \upper="100
    \def\n{^^J}
\else
    \ifx\pdftexbanner\undefined
        \upper="10000
        \edef\n{\Uchar"000A}
    \else
        \upper="100
        \def\n{^^J}
    \fi
\fi

\newlinechar=10
\message{\n\n}
    
\count0=0
\loop
    \ifnum\catcode\curr=\active
        \message{ \the\curr}
    \fi
    \advance\curr 1
\ifnum\curr<\upper \repeat

\message{\n\n}

\csname stoptext\endcsname \end{document}

相关内容