authblk
我在文章类文档中将该包与该包一起使用fancyhdr
。以下是 MWE:
\documentclass[12pt,a4paper]{article}
\usepackage{cmap}
\usepackage{mathtext}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{indentfirst}
\usepackage[blocks]{authblk}
\usepackage{hyperref}
\frenchspacing
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.5pt}
\lfoot{}
\rfoot{}
\rhead{Authors}
\chead{}
\lhead{Journal name}
\cfoot{}
\fancypagestyle{firststyle}
{
\fancyhf{}
\fancyfootoffset[R]{-4cm}
\fancyfoot[L]{{\footnotesize \textit{Journal name}} \linebreak {\footnotesize \copyright Authors}}
\renewcommand{\footrulewidth}{0 mm}
\renewcommand{\headrulewidth}{0 mm}
}
\begin{document}
\author[i]{И.\,О.~Фамилия1}
\author[i]{И.\,О.~Фамилия2}
\author[ii]{И.\,О.~Фамилия3}
\author[ii]{И.\,О.~Фамилия4}
\affil[i]{affil1 }
\affil[ii]{affil2 }
\title{Название}
\date{}
\maketitle
\thispagestyle{firststyle}
\lipsum
\end{document}
我想要将所有作者的姓名(无论一篇文章有多少位作者)放在右侧标题(第一页除外)和第一页的左页脚中。当然,我希望 LaTeX 使用命令参数中的名称自动执行此操作。\author
我该怎么做?
答案1
authblk
但是,将名称\AB@authors
与隶属关系信息一起存储在宏中,在我看来,这对于标题信息来说并不是真正必要的。
因此,\AB@authors
不能直接使用。更容易的是挂接\author
并获取要存储在中的作者姓名expl3
\clist
,并在需要时显示此列表。
然而,列表可能很长并且必须循环显示,因此我采用了带有p
“-”列的表格方法。
\documentclass[12pt,a4paper]{article}
\usepackage{cmap}
\usepackage{mathtext}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{indentfirst}
\usepackage{letltxmacro}
\usepackage[blocks]{authblk}
\frenchspacing
\usepackage{lipsum}
\usepackage{xparse}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setlength{\headheight}{45pt}
\renewcommand{\headrulewidth}{0.5pt}
\lfoot{}
\rfoot{}
\rhead{\ABAuthorNames}
\chead{}
\lhead{\JournalName}
\cfoot{}
\fancypagestyle{firststyle}
{
\fancyhf{}
\fancyfootoffset[R]{-4cm}
\fancyfoot[L]{{\footnotesize \textit{Journal name}} \linebreak {\footnotesize \copyright \ABAuthorNames}}
\renewcommand{\footrulewidth}{0 mm}
\renewcommand{\headrulewidth}{0 mm}
}
\makeatletter
\ExplSyntaxOn
\clist_new:N \l_david_author_list
\newcommand{\storeauthorname}[1]{%
\clist_put_right:Nn \l_david_author_list {#1}
}
\newcommand{\showauthorlist}{%
\clist_use:Nnnn \l_david_author_list {,\space} {,\space} {\space and\space}%
}
\ExplSyntaxOff
\LetLtxMacro\AB@@author\author%
\def\AB@authornames{}
\renewcommand{\author}[2][]{%
\AB@@author[#1]{#2}% use the old definition of \author
\storeauthorname{#2}% store the name
}
\newcommand{\JournalName}[1][6cm]{\begin{tabular}[t]{p{#1}}Brontosaurs\end{tabular}}
\newcommand{\ABAuthorNames}[1][6cm]{\begin{tabular}[b]{p{#1}}\showauthorlist\end{tabular}}
\makeatother
\usepackage{hyperref}
\begin{document}
\author[i]{И.\,О.~Фамилия}
\author[i]{И.\,О.~Фамилия}
\author[ii]{И.\,О.~Фамилия}
\author[ii]{И.\,О.~Фамилия}
\affil[i]{affil1 }
\affil[ii]{affil2 }
\title{Название}
\date{}
\maketitle
\thispagestyle{firststyle}
\lipsum
\end{document}