![babel 与 tikzcd 之间的干扰](https://linux22.com/image/409134/babel%20%E4%B8%8E%20tikzcd%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B9%B2%E6%89%B0.png)
我在使用 babel 包和 tikzcd 时遇到了问题。这是我的 MWE:
\documentclass{article}
\usepackage[ngerman, english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{extarrows}
\usepackage{mathtools}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\begin{document}
Here is where I want to write something in German:
\foreignlanguage{ngerman}{Hier steht deutscher Text...}
Now, I want to type a diagram
\begin{center}
\begin{tikzcd}
A \arrow[r, "F"] & B
\end{tikzcd}
\end{center}
\end{document}
这会产生一个错误消息
软件包 pgfkeys 错误:我不知道键 '/tikz/"F"',我将忽略它。也许你拼错了。我认为罪魁祸首是单元格 1-1 中的 tikzcd 箭头。
但是,当我取消注释 \usepackage[ngerman, english]{babel}(当然不使用 \foreignlanguage)时,一切都正常。有人知道这个问题是从哪里来的吗?我知道还有另一种编写图表的方法,使用 \arrow{r}{F},这种方法运行得很好(尽管它是旧版本)。我的问题是,我已经以上述样式输入了所有图表,现在只想将它们复制到一个文件中,我需要用德语写一些部分,所以我想避免重新输入所有图表。如果可能的话,我宁愿用另一种方式解决这个问题。我也只需要在文档中使用一次德语。
答案1
添加\usetikzlibrary{babel}
,它正是为此目的而制作的。
\documentclass{article}
\usepackage[ngerman, english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{extarrows}
\usepackage{mathtools}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\usetikzlibrary{babel} %<-added
\begin{document}
Here is where I want to write something in German:
\foreignlanguage{ngerman}{Hier steht deutscher Text...}
Now, I want to type a diagram
\begin{center}
\begin{tikzcd}
A \arrow[r, "F"] & B
\end{tikzcd}
\end{center}
\end{document}