页眉和页脚中的作者姓名

页眉和页脚中的作者姓名

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}

在此处输入图片描述

相关内容