在页眉中打印简短标题

在页眉中打印简短标题

我正在创建一个样式文件,用作向特定期刊提交文章的模板。该期刊要求在标题中有一个简短的标题。我可以轻松地在样式文件中硬编码这样一个简短的标题,按照以下答案页眉或作者姓名和简称,但在这种情况下这显然不是一个好的解决方案,因为我需要.sty为编写的每个文档更改模板文件。有什么建议可以告诉我如何做到这一点?\shorttitle下面的 MWE 中注释掉了带有的虚拟行。

\documentclass{article}
\usepackage{lipsum,filecontents}
\begin{filecontents}{mystyle.sty}
%% My package starts here
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mystyle}
\usepackage{titling}
\usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    \fancyhead[R]{\thetitle\ \thepage} % Instead of this
%   \fancyhead[R]{\theshorttitle\ \thepage} % do something like this
\endinput
%% And ends here
\end{filecontents}
\usepackage{mystyle}

\begin{document}
\title{This is my long title}
%\shorttitle{This is my short title} % This short title should not be printed here - only in the header
\maketitle
\lipsum[1-6]
\end{document}

答案1

似乎你可以通过在 .sty 中定义一个命令来做你想做的事情,例如

\newcommand\@shorttitle{}
% define \theshorttitle to what is given
\newcommand\shorttitle[1]{\renewcommand\@shorttitle{#1}}

然后,您可以\@shorttitle在 .sty 文件中使用它来代替您需要的位置(例如定义标题;只需使用\@shorttitle而不是\theshorttitle)。您可以按照您的建议从主文档中设置短标题,使用

\shorttitle{This is my short title}

希望这可以帮助。

答案2

amsart类中,命令\title有一个可选参数,它的作用正是如此:

\title[This is my short title]{This is my long title}

也许复制他们的实现?

相关内容