当我编译包含
\documentclass{article}
\usepackage{mathtools}
\mathtoolsset{centercolon}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}\ar[r,","] &\end{tikzcd}$:$
\end{document}
使用该命令pdflatex -interaction=nonstopmode file.tex
,编译会挂起,而不是给我一个错误消息。
我应该去哪里举报此事?
(我在 ubuntu 21.04 上使用 texlive 2020)
答案1
不是错误。tikz-cd
解析逗号分隔的选项时,选项列表r,","
将变成三个项目:r
、"
和"
,您可以看到其中的错误。您通常会得到一个低级错误:
! Argument of \tikz@quote@@parser has an extra }.
<inserted text>
\par
l.6 \begin{tikzcd}\ar[r,","] & b\end{tikzcd}
$:$
?
但是当-interaction=nonstopmode
你忽略这个错误并希望得到最好的结果时,TeX 却陷入了无限循环并挂起。
如果要在此处使用逗号,请将其括在括号中:
\documentclass{article}
\usepackage{mathtools}
\mathtoolsset{centercolon}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd} a \ar[r,"{,}"] & b \end{tikzcd}$:$
\end{document}
答案2
需要括号,tikzcd 文档明确说明了这一点:
类似地,标签可以通过语法“⟨标签文本⟩”⟨标签选项⟩接收附加选项。如果⟨标签文本⟩和⟨标签选项⟩包含逗号,则它们都需要用花括号括起来。
其中有一个对标签上的主要 TikZ 文档(第 17.10.4 节)的引用,其中讨论了 的替代语法label={...}
,但它似乎在 tikzcd 构造中不起作用(因此,例如,\arrow[...]
你不能写,但确实有效)。\ar[r,label={,}]
\ar[r,"{,}"]