以下 MWE 显示tikz-cd
和之间不兼容polyglossia
:
\documentclass{report}
\usepackage{polyglossia}
\setmainlanguage{german}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
B \arrow{rr}{f} && C\\
&A \arrow{ul}{\phi} \arrow[swap]{ru}{\psi}
\end{tikzcd}
\end{document}
我已经看到了一些解决方案,当问题babel
像这样出现时这里polyglossia
,但对于下的解决方案不起作用xelatex
。
错误是:
! Package pgfkeys Error: I do not know the key '/tikz/"{f}"{}' and I am going t
o ignore it. Perhaps you misspelled it.
答案1
语言文件german
使之"
活跃,而较旧的版本tikz-cd
不会预料到这一点并中断。但是,如果您只是tikz-cd
在此之前加载polyglossia
(因此冻结"
为 catcode-12),您的代码将可以工作。
tikz-cd
图表也使用了很多"
,所以如果你要使用它们,你还需要"
在那里制作一个普通角色babel
。Ti钾Z 库会为您完成该操作(加载babel
库通常是一个好主意)。
\documentclass{report}
\usepackage{tikz-cd} % Load before polyglossia
\usetikzlibrary{babel} % load to use " in pictures
\usepackage{polyglossia}
\setmainlanguage{german}
\begin{document}
\begin{tikzcd}
B \arrow{rr}{f} && C\\
&A \arrow{ul}{\phi} \arrow[swap]{ru}{\psi}
\end{tikzcd}
\begin{tikzcd}
A \arrow[rd] \arrow[r, "\phi"] & B \\
& C
\end{tikzcd}
\end{document}