根据 TikZ 和 PGF 手册 3.0.1a 版第 881 页,以下 LaTeX 手稿:
\documentclass{article}
\usepackage{pgfkeys}
\begin{document}
\pgfkeysdefargs{/my key}{#1+#2}{\def\a{#1}\def\b{#2}}
\pgfkeys{/my key=hello+world}
|\a| is \a, |\b| is \b.
\end{document}
应排版如下(无背景颜色):
换句话说,竖线似乎起到了 的作用verbatim
。(这不是我第一次遇到这种用法。到目前为止,每次遇到它我都会忽略它,但我觉得现在是弄清楚它的好时机。)
然而,当我用 编译这份手稿时pdflatex
,生成的 PDF 文档的正文如下所示:
为什么竖线不能被识别为逐字标记?为什么它们会显示为破折号?
这不是重复的这个问题。这与字体无关,而是因为竖线没有被逐字解释。
答案1
LaTeX 内核没有为 赋予任何特殊含义|
,因此您需要这样做。使用fancyvrb
\documentclass{article}
\usepackage{pgfkeys}
\usepackage{fancyvrb}
\DefineShortVerb{\|}
\begin{document}
\pgfkeysdefargs{/my key}{#1+#2}{\def\a{#1}\def\b{#2}}
\pgfkeys{/my key=hello+world}
|\a| is \a, |\b| is \b.
\end{document}
在 PGF 手册中,竖线的准备方式类似pgfmanual-en-macros.tex
{
\catcode`\|=12
\gdef\pgfmanualnormalbar{|}
\catcode`\|=13
\AtBeginDocument{\gdef|{\ifmmode\pgfmanualnormalbar\else\expandafter\verb\expandafter|\fi}}
}