我在修改后的 LaTeX 报告类上使用该authblk
包,并且需要在每一页上将作者显示为脚注,不显示隶属关系(仍在标题页上显示隶属关系)。问题是,当我\@author
在修改后的类上使用该命令时,它会显示作者和隶属关系索引。有什么办法可以删除它吗?
班级代码:
\ProvidesClass{ThesisClass}
\LoadClass[twoside,11pt,a4paper]{report}
\usepackage[noblocks]{authblk}
% redefine \author command
\def\@author{}
\renewcommand\@author{\ifx\AB@affillist\AB@empty\AB@author\else
\ifnum\value{affil}>\value{Maxaffil}\def\rlap##1{##1}%
\AB@authlist\\
\else \AB@authors\fi\fi}
% Define \institutes command
\def\@institutes{}
\renewcommand\@institutes{\AB@affillist}
% HEADERS AND FOOTERS
\usepackage{fancyhdr}
\fancyfoot{}
\fancyfoot[R]{\@author}
我定义命令的原因之一\institutes
是能够设置一个\supervisors
可以与作者共享从属关系的命令。
答案1
完整的作者列表存储在 中\AB@authlist
,而上标所属机构由 提供\textsuperscript
(请注意尾随空格!)。因此,您可以使用
\printauthorlist
:
\newcommand{\printauthorlist}{{%
\expandafter\let\csname textsuperscript \endcsname\@gobble% Remove \textsuperscript
\AB@authlist}% Print list
}
它暂时设置\textsuperscript
为
\@gobble
,这只会吞噬其参数(从而删除上标符号)。
以下是完整的 MWE:
\documentclass{article}
\usepackage[noblocks]{authblk}% http://ctan.org/pkg/authblk
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\makeatletter
\newcommand{\printauthorlist}{{%
\expandafter\let\csname textsuperscript \endcsname\@gobble% Remove \textsuperscript
\AB@authlist}% Print list
}
% Define \institutes command
\def\@institutes{}
\renewcommand\@institutes{\AB@affillist}
% HEADERS AND FOOTERS
\renewcommand{\headrulewidth}{0pt}% No header rule
\fancyfoot{}% Clear footer
\fancyfoot[R]{\printauthorlist}
\pagestyle{fancy}
\makeatother
\title{Title}
\author{author1}\author{author2}\affil{affil1}
\author{author3}\author{author4}\affil{affil2}
\begin{document}
\maketitle\thispagestyle{fancy}
This is some text.
\end{document}
您需要使用\csname textsuperscript \endcsname
来捕获控制序列定义中的尾随空格。
答案2
好的,找到了一个解决方案,但不确定是否最正确,并且仍然不明白为什么它有效......
我更换了
\fancyfoot[R]{\@author}
和
\fancyfoot[R]{\AB@author}