以下 MWE 的汇编(编辑:现在,根据需要,该babel
库已加载到序言中(感谢@egreg 的评论),而另一个库(无论哪一个)都在序言之后加载。):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage[french]{babel}
\usetikzlibrary{babel}
\begin{document}
\usetikzlibrary{shapes.misc}
\end{document}
失败并出现错误:
Runaway argument?
Header: /cvsroot/pgf/pgf/generic/pgf/frontendlayer/tikz/libraries/tik\ETC.
! Paragraph ended before \pgf@parseid was complete.
<to be read again>
\par
(无论tikz
文档主体中使用了什么库)。
但如果:
babel
french
未使用带有选项的软件包,或者\usetikzlibrary
在文档主体中移至序言中,
一切都运行良好(\usetikzlibrary{babel}
与问题无关,只是在babel
加载包时推荐,尤其是使用该french
选项时)。
造成这个错误的原因是什么以及如何避免它?
答案1
如果你需要在babel
激活角色后加载代码,通常最好在本地撤消该操作,这里似乎可以关闭:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage[french]{babel}
\usetikzlibrary{babel}
\begin{document}
\shorthandoff{:}%
\usetikzlibrary{shapes.misc}
\shorthandon{:}%
\end{document}