ConTeXt:在制表符中转义 \type 命令中的百分号

ConTeXt:在制表符中转义 \type 命令中的百分号

我对 ConTeXt 还很陌生,正在\type{...}表格单元格内使用tabulate。我想打印%百分号,但无法做到。使用普通百分号会导致错误,我理解。我尝试使用反斜杠和 来转义符号\letterpercent。但都不起作用。在这两种情况下,我都得到了文字输出,即\%\letterpercent

因此,不转义会导致错误,但我能找到的所有转义选项都会产生错误(即文字)的输出。我感到很迷茫,任何提示都会很感激。

答案1

您可以将内容放入缓冲区

\startTEXpage[offset=1DK]

\type{code % comment}

\typ{code % comment}

\startbuffer[one]
  code % comment
\stopbuffer

\startbuffer[two]
  \typ{code % comment}
\stopbuffer

\startbuffer[three]
  \type{code % comment}
\stopbuffer

\typeinlinebuffer

\starttabulate[|l|]
%   \NC \type{code % comment} \NC \NR % Fails
%   \NC \typ{code % comment}  \NC \NR % Fails
  \NC \typeinlinebuffer[one] \NC \NR
  \NC \inlinebuffer[two]     \NC \NR
  \NC \inlinebuffer[three]   \NC \NR
\stoptabulate

\stopTEXpage

带百分比的代码

您会发现\typ您没有获得单声道空间。

PS 下次如果你能给出一个小例子就好了。现在我不得不猜测上面就是你想要做的。也许我猜对了,也许猜错了。

答案2

\type{%}如果不采取一些变通方法,您就无法在 taulate 中使用,因为环境会在构建表之前读取整个环境的内容,这与\type工作方式相冲突。由于这种机制,参数%\type作为输入行的正常注释,您会收到一条错误消息。

使用该命令,您可以按照当前字体的样式\letterpercent输出,要获得等宽字体,请使用该命令。%%\mono

另一种方法是用作%参数在制表环境周围\type添加一个asciimode环境,它会改变含义%以防止它作为注释字符工作。

\starttext

\startasciimode
\starttabulate[|||]
\NC \tex{letterpercent}              \EQ \letterpercent        \NC\NR
\NC \tex{mono} + \tex{letterpercent} \EQ \mono{\letterpercent} \NC\NR
\NC \tex{type} + \letterpercent      \EQ \type{%}              \NC\NR
\stoptabulate
\stopasciimode

\stoptext

在此处输入图片描述

相关内容