我想创建一个 latex 模板并自己定义“\makefile”。一切正常,直到我用“\and”定义多个作者。我该如何改变这种情况?
\renewcommand{\maketitle}{
\begin{center}
\@date \hfill \theuni
\smallskip
\hrule
\bigskip
{\LARGE \textbf{\MakeUppercase{\@title}}}\\
\smallskip
{\large \thelecture\ - \@date}\\
\bigskip
{\Large \textbf{\MakeUppercase{\thegroup}}}\\
\smallskip
\@author
\end{center}
\hrule}
谢谢您的帮助 :)
答案1
基于对您正在做的事情的猜测的最小修复。请注意,\thexyz
通常用于排版 counter 的值xyz
,因此最好在其他情况下避免使用。假设这个惯例,我得到了大学、讲座和小组的数字。如果它们不是数字,最好使用其他方法来命名命令,例如\jonathan@uni
或\my@group
或\custom@lecture
。
假设您已经以某种方式定义了这些命令,因此没有询问我在尝试编译您的代码片段时遇到的错误,我假设错误与tabular
或有关。同样,假设您正在使用标准类之一中的和array
的定义,它们旨在在由 创建的环境上下文中使用。特别是每个都试图结束该环境并启动另一个环境,因此在您的定义中,您得到的是没有前面的。解决这个问题的最简单方法是提供合适的环境。\@author
\and
tabular
\maketitle
\and
\end{tabular}
\begin{tabular}
\documentclass{article}
\usepackage{textcomp}
\makeatletter
% note that \thexyz is used for counter xyz
\newcounter{uni}
\newcounter{group}
\newcounter{lecture}
\setcounter{uni}{1}
\setcounter{group}{34}
\setcounter{lecture}{789}
\RenewDocumentCommand \thegroup {} {Group \Roman{group}}
\RenewDocumentCommand \theuni {} {University \textnumero \arabic{uni}}
\RenewDocumentCommand \thelecture {} {Lecture \arabic{lecture}}
\RenewDocumentCommand{\maketitle}{}{%
\begin{center}
\@date \hfill \theuni
\smallskip
\hrule
\bigskip
{\LARGE \textbf{\MakeUppercase{\@title}}\par}
\smallskip
{\large \thelecture\ - \@date\par}
\bigskip
{\Large \textbf{\MakeUppercase{\thegroup}}\par}
\smallskip
\begin{tabular}{c}
\@author
\end{tabular}
\end{center}
\hrule}
\makeatother
\author{Sandy \and Alex \and Sam \and Chris}
\title{What is the Title of this Article?}
\begin{document}
\maketitle
\end{document}
我建议使用该titling
软件包,它将为您处理这些事情,并提供一套全面的定制钩子。