今天,我在使用一个简单的投影仪框架时发现了一个奇怪的错误,我很确定这个框架在几周前是可以正常工作的。
它似乎又归结为活动字符,这是\usetikzlibrary{babel}
旨在修复的问题。但这里的情况正好相反:如果使用该库,它会产生错误(File ended while scanning use of \pgfplots@addplotimpl@table@fromfile
),而当不使用该库时则不会出现问题...
有趣的是,如果\begin{frame}...\end{frame}
删除,一切都会顺利进行。
PS 较早的相关帖子似乎没有回答该问题...
这一个涉及tikzmark
:
tikzmark、babel 包(法语)和 babel tikzlibrary 之间的冲突
这一个涉及etoolbox
:法语选项、babel 包、babel tikzlibrary 和 etoolbox 包之间的冲突
梅威瑟:
\documentclass{beamer}
\usepackage[french]{babel}
\usepackage{pgfplots}
\usetikzlibrary{babel} % No problem if commented
\begin{filecontents*}{test.csv}
a,b,c,d,e
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
\end{filecontents*}
\begin{document}
\begin{frame} % Also no problem if commented!?
\begin{tikzpicture}
\begin{axis}
\addplot table[col sep=comma, x expr=\coordindex, y=a]{test.csv};
\end{axis}
\end{tikzpicture}
\end{frame} % Also no problem if commented!?
\end{document}
答案1
由于“激活”和重新定义一些特殊字符,babel包french
存在许多不兼容性。在这种情况下,让你头疼的是 的激活;
。尽管babel
Ti钾Z 库有时就足够了,但它在frame
.
我看到三种可能的解决方案:
使用
lualatex
。在这种情况下,它所需的特殊间距是;:
使用 LUA 引擎完成的,并且您的示例可以开箱即用。;
在框架开始时禁用速记,并\AtBeginEnvironment{frame}{\shorthandoff{;}}
在前言中添加;也许将来您还需要将其添加:
到列表中(就我所知,babel-french
激活;:!?
)。永久禁用简写
\usepackage[french, shorthand=off]{babel}
解决方案 (1) 保留了所有特殊间距规则......