babel 与 tikzcd 之间的干扰

babel 与 tikzcd 之间的干扰

我在使用 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}

在此处输入图片描述

相关内容