使用纯 TeX 例如
{\tt\char`\\\`{}\char`\{\char`\}}
确实显示
\`{}
正如预期的那样。使用 bplain 格式,重音符和左括号结合在一起。
为什么 bplain 在这里不同?
如何使用 \tt 字体在 bplain 中打印重音符?
答案1
有一个关键的区别:普通的 TeX 定义\`
为
\def\`#1{{\accent18 #1}}
而\show\`
给出bplain.tex
> \`=macro:
->\OT1-cmd \`\OT1\` .
并\expandafter\show\csname OT1\string\`\endcsname
产生
> \OT1\`=\long macro:
#1->\accent 18 #1.
缺少括号是罪魁祸首;使用普通的 TeX 定义,右括号使\accent
变成\char
,但在bplain
定义中,下一个标记成为重音符号。
解决方案。要么给出更合理的定义
\expandafter\def\csname OT1\string\`\endcsname#1{{\accent 18 #1}}
或者简单定义
\chardef\textgraveaccent=18
并做
{\tt\char`\\\textgraveaccent\char`\{\char`\}}