我正在尝试在包含 babel 的报告中 使用 chronology 包。我的发行版:pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian)
在我的平均能量损失:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{chronology}
\begin{document}
\begin{chronology}[5]{1983}{2010}{10cm}[7cm]
\event{1984}{\color{blue}{one}}
\event[1985]{1986}{\small{two}}
\event{\decimaldate{25}{12}{2001}}{\huge{three}}
\end{chronology}
\vspace{5cm}
\begin{chronology}*[5]{1983}{2010}{10cm}
\event{1984}{\color{blue}{one}}
\event[1985]{1986}{\small{two}}
\event{\decimaldate{25}{12}{2001}}{\huge{three}}
\end{chronology}
\vspace{5cm}
\begin{chronology}[5]{1983}{2010}{10cm}[13cm]
\event{1984}{\color{blue}{one}}
\event[1985]{1986}{\small{two}}
\event{\decimaldate{25}{12}{2001}}{\huge{three}}
\end{chronology}
\end{document}
实际上,我收到了这个错误:
! Paragraph ended before \pgffor@next was complete.
但是,当我删除该行时
\usepackage[francais]{babel}
编译工作正常。请问我该如何修复它?
答案1
使用:
[...]
\usepackage{chronology}
\let\CHRONOLOGY\chronology
\let\endCHRONOLOGY\endchronology
\def\chronology{\shorthandoff{;}\CHRONOLOGY}
\def\endchronology{\endCHRONOLOGY\shorthandon{;}}
[...]
在法语中是;
活动字符,但在 TikZ 中使用。 像 这样的环境chronology
在内部定义为\chronology
和\endchronology
。 我保存旧定义,插入活动字符处理,然后使用旧定义。
答案2
正如@herbert 在他的回答中已经解释的那样,;
其他字符在法语中是有效的。这与 TikZ 冲突,后者用于;
结束绘图命令。
为了解决这个问题,可以使用 tikzlibrary babel
,它的作用不只是
\tikzset{
handle active characters in code,
handle active characters in nodes
}
现在,您仍然可以在节点中使用简写。
由于存在其他可能与活动角色冲突的情况,因此使用内置功能似乎是合理的。您可以在tikz-文档。
将所有内容放在可编译的示例中,可得出:
\listfiles
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{chronology}
%\tikzset{
% handle active characters in code,
% handle active characters in nodes
%}
%or
\usetikzlibrary{babel}
\begin{document}
\begin{chronology}[5]{1983}{2010}{10cm}[7cm]
\event{1984}{\color{blue}{one?}}
\event[1985]{1986}{\small{two;}}
\event{\decimaldate{25}{12}{2001}}{\huge{three!}}
\end{chronology}
\end{document}