如何在页脚中插入标题?并确定是否设置?
%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 愉快!