垂直线作为逐字

垂直线作为逐字

根据 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}}
}

相关内容