我对 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