我尝试制作自己的宏来排版作者块,而不是使用包authblk
。如何隐藏文章第一位作者附近的分隔符。主要条件是仅使用LaTeX
内核,不使用其他包。
\documentclass[a4paper,12pt]{article}
\makeatletter
\let\@authortofile\@empty
\def\@separator{, }
\def\addauthor#1#2{%
\g@addto@macro\@author{\@separator#1\textsuperscript{#2}}
\g@addto@macro\@authortofile{\@separator#1}
}
\makeatother
\date{}
\title{Title}
\addauthor{One}{1}
\addauthor{Two}{1,2}
\addauthor{Three}{1,2}
\begin{document}
\maketitle
\end{document}
答案1
推迟使用,
一次将定义嵌入其自身:
\documentclass{article}
\makeatletter
\let\@authortofile\@empty
\def\@separator{\def\@separator{, }}% Delay comma once
\def\addauthor#1#2{%
\g@addto@macro\@author{\@separator#1\textsuperscript{#2}}
\g@addto@macro\@authortofile{\@separator#1}
}
\makeatother
\date{}
\title{Title}
\addauthor{One}{1}
\addauthor{Two}{1,2}
\addauthor{Three}{1,2}
\begin{document}
\maketitle
\end{document}
答案2
第一次使用\addauthor
该命令时,它会重新定义自身,因此在下面它会添加\@separator
\def\addauthor#1#2{%
\g@addto@macro\@author{#1\textsuperscript{#2}}%
\g@addto@macro\@authortofile{#1}%
\def\addauthor##1##2{%
\g@addto@macro\@author{\@separator##1\textsuperscript{##2}}%
\g@addto@macro\@authortofile{\@separator##1}%
}
}