以下是使用 TikZ 绘制宽度与某些文本匹配的框的 MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage[ngerman]{babel}
\begin{document}
\begin{tikzpicture}
\node [rectangle, draw, minimum width=width("Test")] (testNode) {Test};
\end{tikzpicture}
\end{document}
使用pdflatex
(甚至lualatex
)和 TeX Live 2019 进行最新更新的编译会出现以下错误:
! Package PGF Math Error: Unknown function `Test' (in 'width("Test")').
See the PGF Math package documentation for explanation.
Type H <return> for immediate help.
...
l.9 ...mum width=width("Test")] (testNode) {Test};
用另一种语言替换ngerman
或babel
完全删除即可消除错误。不管怎么说,我已经使用这种方法很多年了,直到最近才开始看到这个错误。有什么问题吗babel
?
答案1
问题在于该babel
包重新定义了"
。因此,Ti钾Z 有一个库,允许使用babel
包和tikz
,该库的名称也是babel
。如果你加载它,你的代码就可以正常工作。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{babel}
\usepackage[ngerman]{babel}
\begin{document}
\begin{tikzpicture}
\node [rectangle, draw, minimum width=width("Test")] (testNode) {Test};
\end{tikzpicture}
\end{document}