Tikz-cd 与 Polyglossia 下的德语不兼容

Tikz-cd 与 Polyglossia 下的德语不兼容

以下 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。TiZ 库会为您完成该操作(加载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}

相关内容