如何防止多语德语和 pgfmath 发生冲突?

如何防止多语德语和 pgfmath 发生冲突?

我最近从另一个线程尝试了 tikz 轮:https://tex.stackexchange.com/a/423907/140011- 一切都运行正常,直到我将多语制切换为德语。

这失败了

额外},或者被遗忘的\endgroup。

\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
    \begin{tikzpicture}
        \pgfmathparse{(5? "west" : "east" )}  % Apprently these quotes are  the culprit.
    \end{tikzpicture}
\end{document}

这有效

\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
    \begin{tikzpicture}
        \pgfmathparse{(5? 5 : 4 )} % This does not make sense but works
    \end{tikzpicture}
\end{document}

我们可以很容易地看到周围的引号east似乎是有问题的。

我怎样才能绕过这个问题?

答案1

编辑:Phelype Oleinik 在评论中抢先了我一步。

polyglossia包正在将"字符设置为活动状态以启用babel-style 简写,这会在 pgf 中破坏它。您需要加载babelTikZ 库以实现兼容性:

\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{babel} 

\begin{document}
    \begin{tikzpicture}
        \pgfmathparse{(5? "west" : "east" )}  % Apprently these quotes are  the culprit.
    \end{tikzpicture}
\end{document}

您还可以另外提供\usepackage{polyglossia}\setdefaultlanguage{german}选项[babelshorthands=false],尽管这不足以让您的 MWE 进行编译。

您还可以使用它\tikz[handle active characters in code]来启用节点文本中的活动字符,而不会破坏 pgf 解析。

相关内容