![ConTeXt 中哪些符号需要转义?](https://linux22.com/image/247390/ConTeXt%20%E4%B8%AD%E5%93%AA%E4%BA%9B%E7%AC%A6%E5%8F%B7%E9%9C%80%E8%A6%81%E8%BD%AC%E4%B9%89%EF%BC%9F.png)
在文档中写入“$”或“%”时,必须使用\$
,\%
以便它们被解释为应与文本一起显示的符号。
- ConTeXt 中还有哪些符号需要转义?我在哪里可以获得完整列表?
我还发现包含“|”的文档无法编译,但包含“\|”的文档却没有帮助。为什么这会阻止编译,以及如何将其显示为文本?
答案1
详细说明@egreg的回答(抱歉,评论太长了):ConTeXt 也有命令\asciimode
。 之后,只有\
和{
有}
其典型的类别代码,所有其他特殊字符都有类别代码 12(其他)。 在该模式下,要输入数学,您需要详细说明\mathematics{a_2}
(因为美元符号不再起作用),但它对于某些类型的输入文件确实很有用。
特殊字符输入列表:
#
是\#
$
是是\textdollar
%
是\percent
&
是\&
\
是\textbackslash
^
是\textcircumflex
_
是\textunderscore
{
是\textbraceleft
|
是\textbar
}
是\textbraceright
~
是\textasciitilde
\char`|
或等低级方法\char`^
也有效。
答案2
在该cont-en
格式下,下列字符具有特殊类别代码,因此它们本身不能用于打印:
#
有 catcode 6
$
有 catcode 3
%
有 catcode 14
&
有 catcode 4
\
有 catcode 0
^
有 catcode 7
_
有 catcode 8
{
有 catcode 1
|
有 catcode 13
}
有 catcode 2
~
有 catcode 13
激活状态|
转换为\catcodecommand{124}
,用于更改类别代码表。|
在文本模式下打印可以使用\|
。在数学模式下|
不激活。
答案3
TeX 及其同类程序通常只打印属于以下类别的字符信-- 所有大写和小写字母 -- 和其他-- 所有数字和标点符号,但下一段中指出的某些重要例外。
然而,并非所有标点符号都属于“其他”类别。例外情况被分配了特殊类别代码,并作为开始和结束经常发生的任务的快捷方式。我熟悉的所有 TeX 引擎都共有十个特殊字符:
Name Cat code Purpose
\ backslash 0 Start of a control sequence
{ left-brace 1 Start of a TeX "group"
} right-brace 2 End of a "TeX" group
$ dollar 3 Opening and closing delimiter for math formulas
& ampersand 4 Column separator in tables (tabulars and arrays)
# hash 6 Parameter(s) of macros
^ circumflex 7 Precede superscript expressions in math mode
_ underscore 8 Precede subscript expressions in math mode
~ tilde 13 Tie (unbreakable space); an example of an "active" character
% percent 14 Start of a comment
要显示大多数特殊字符,只需\
在它们前面加上反斜杠 ( );例如,\$
和\%
将打印出$
和%
。然而,在 LaTeX 中,这种方法不适用于\
、^
和~
字符;对于这些字符,应该输入\textbackslash
、\textasciicircum
和\textasciitilde
。(当然,LaTeX 中存在控制字\\
、\^
和\~
,但它们并非设置为打印出相关的“特殊”字符。相反,它们用于表示表格或数组环境中的换行符(\\
),在下一个字符上方放置脱字符(\^
),并在下一个字符上方放置波浪符号(\~
)。
关于 TeX 类别代码主题的极好参考是 Victor Eijkhout 的书的第 2 章TeX 按主题分类。
附录:在 ConTeXt 中,|
“标点符号”字符也是一个“活动”字符,即其类别代码为 13 而不是 12(“其他”)。正如 @TacoHoekwater 在他的回答中指出的那样,要在 ConTeXt 中打印出“管道”字符,您必须输入类似 的内容\textbar
。顺便说一句,该\textbar
宏在 LaTeX 中也可以使用。