在页脚中输入标题

在页脚中输入标题

如何在页脚中插入标题?并确定是否设置?

%preteste.sty
\usepackage{fancyhdr}
\usepackage{lipsum}

\renewcommand{\title}[1]{\gdef\@title{#1}\gdef\mytitle{#1}}
\newcommand{\mytitle}{%
   \PackageErrorNoLine{pkgname}
     {No \protect\title\space given}
     {You have to provide a title}%
   \gdef\mytitle{You have to provide a title}%
   \mytitle
}
\fancyfoot{}
\fancyfoot[C]{\mytitle}

\title如果没有定义并且没有使用,请查看错误\maketitle

%titulo.tex
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{preteste}

% \title{Title}
% \author{R\'egis S. Santos}
% \date{\the\year}

\begin{document}
\pagestyle{fancy}
% \maketitle

\lipsum
\end{document}

请修复我的代码。

答案1

\maketitle忘记标题后。顺便说一句,\title无论如何都不会打印标题:这是声明标题是什么的命令。

\newcommand{\mytitle}{Title}
\title{\mytitle}
...
\fancyfoot[C]{\mytitle}

如果在包中需要它,则重新定义\title

\renewcommand{\title}[1]{\gdef\@title{#1}\gdef\mytitle{#1}}
...
\fancyfoot[C]{\mytitle}

这种重复可以让你正常地说

\title{Title}
\author{A. U. Thor}
\maketitle

在文档中。

如果您想在作者未提供声明时引发错误\title,请将其添加到您的包中

\newcommand{\mytitle}{%
   \PackageError{preteste}% use the package name
     {No \protect\title\space given\@gobble}
     {You have to provide a title}%
   \gdef\mytitle{You have to provide a title}%
   \mytitle}

抛出错误后,它会重新定义自身,在页脚中打印一条信息性消息。\title文档中的声明将清除此定义,因此无需担心。

可以使用标题包,但是对于这个简单的应用程序来说可能太多了。

答案2

我认为一个简单的解决方案涉及文档序言中的以下说明\title\author命令\date已设置:

\makeatletter
\let\doctitle\@title
\makeatother

然后,您可以按如下方式在页脚中插入标题字符串:

\fancyfoot[C]{\doctitle}

最后,如果你想把所有这些东西放在一个包里,一定要调用这个包\title设置完毕,fancyhdr软件包已加载。祝 TeXing 愉快!

相关内容