我正在尝试在部分标题中动态插入自定义日期,如下所示:
(序言某处):
\newdate{prevdate}{14}{01}{2015}
\date{\displaydate{prevdate}}
(文档中某处):
\section{Minutes \displaydate{prevdate}}
在文档内部运行良好(正确显示章节标题),但在目录列表中,它被打印为“Minutes 0 januari 0”。
有人有什么想法吗?
一个最小的工作示例:
\documentclass[12pt]{article}
\usepackage[dutch]{babel}
\usepackage{datetime}
%\newdate{date}{03}{02}{2015}
\newdate{prevdate}{14}{01}{2015}
%\date{\displaydate{date}}
\date{\displaydate{prevdate}}
\begin{document}
\tableofcontents
\section{Minutes \displaydate{prevdate}}
\end{document}
我真的只是想知道这是否可能,或者 LaTeX 页面的生成方式是否会导致这不可行或不可能。提前致谢!
答案1
\displaydate
很脆弱,需要\protect
在章节标题等移动参数中进行编辑。
\documentclass[12pt]{article}
\usepackage[dutch]{babel}
\usepackage{datetime}
%\newdate{date}{03}{02}{2015}
\newdate{prevdate}{14}{01}{2015}
%\date{\displaydate{date}}
\date{\displaydate{prevdate}}
\begin{document}
\tableofcontents
\section{Minutes \protect\displaydate{prevdate}}
\end{document}
您还可以\displaydate
使用以下方法使其(全局)健壮
\usepackage{etoolbox}
\robustify{\displaydate}
在你的序言中。