我正在尝试使用 TikZ 在一个精美的自定义标题内为文档绘制一些标题,使用以下代码:
\documentclass[letter,11pt]{article}
\usepackage{tikz}
\usepackage{fancyhdr}
\usepackage{lastpage}
\fancypagestyle{aero450}
{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhead[C]{
\begin{tikzpicture}[remember picture]
\draw (current bounding box.center) node (__head_c)
[font=\scriptsize]
{HEADER HEADER HEADER};
\end{tikzpicture}
}
}
\pagestyle{aero450}
\begin{document}
TEST TEST TEST
\end{document}
但是,无论是使用 xelatex、pdflatex 还是writelatex.com,出现以下错误:
Runaway argument?
{ \begin {tikzpicture}[remember picture]
Paragraph ended before \f@ncyhf was complete. <to be read again>
\par l.23 \pagestyle{aero450}
我做错了什么? writelatex.com 说我可能忘记了},但我很确定我没有......
答案1
此处的问题在于 定义中的空行\fancyhead
。但是,这转换为\fancyfoot
。此处的原因是\fancyhead
( \fancyfoot
)(使用 定义\newcommand
)调用了内部通用宏(使用\f@ncyhf
定义) \def
,该宏存储页眉/页脚。前者\newcommand
创建的宏接受段落分隔符(我将其称为\long
-content),但后者\def
创建的宏仅接受非\long
内容。也就是说,您不能在其中包含段落,并且由于空行表示段落分隔符,因此它会标记错误。
解决方案:删除空行,或者%
如果您希望使代码空闲,则将其用作行分隔符。
作为参考,请参阅