chronology 和 babel 包错误:“!段落在 \pgffor@next 完成之前结束。”

chronology 和 babel 包错误:“!段落在 \pgffor@next 完成之前结束。”

我正在尝试在包含 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}

相关内容