在 taocpmac 的 begintt 模式下,如何打印 \tt 主字符?

在 taocpmac 的 begintt 模式下,如何打印 \tt 主字符?

我正在使用Knuth 的\begintt和,我想排版撇号,而不是撇号。我的代码如下所示:\endtttaocpmac.tex

\input taocpmac

\begintt
a' = a + 1
\endtt

\bye

此模式下的转义字符已切换,|但我不知道该使用什么命令。该字形存在于计算机现代 tt(字形编号 411)中,那么我该如何访问它?

答案1

跟进@Thruston 的评论:如果您想要获得的是直/垂直撇号字符而不是由 生成的字符'\char13则应该是可行的方法。

在此处输入图片描述

\obeylines
\tt
a' = a + 1 
a\char39{} = a + 1
a\char13{} = a + 1
\bye

答案2

我猜您想要的'是位于 的第 13 个位置的直引号cmtt10

\input taocpmac

% a helper macro
\def\activequote{\begingroup
  \lccode`~=`'\lowercase{\endgroup\chardef~}13
  \catcode`'=\active}
% add to \ttverbatim
\expandafter\def\expandafter\ttverbatim\expandafter{\ttverbatim\activequote}

\begintt
a' = a + 1
\endtt

\bye

在此处输入图片描述

这段代码起什么作用?

  1. \activequote使活动引言产生当前字体中第 13 个位置的字符并激活引言

  2. \activequote添加到替换文本的末尾\ttverbatim

的等效重新定义\ttverbatim

\toks0=\expandafter{\ttverbatim\activequote}
\edef\ttverbatim{\the\toks0}

相关内容