我一直在为会议记录编写自己的类,我想让fbox
所有参加会议的人都参与进来,最好是列表形式(itemize
或我自己的自定义列表)。有没有办法在标题中执行此操作,以便始终使用命令呈现列表\maketitle
?我看到在制作自己的“标题页”(用引号括起来,因为它本身不是一个页面)时定义了很多变量,但没有环境/列表。
我所追求的 MWE:
\documentclass{article}
\begin{document}
\begin{minipage}{0.6\linewidth}
{\Huge Meeting}\\
\today\\
Start time: XX:XX\\
End time: XX:XX
\end{minipage}
\fbox{
\begin{minipage}{0.4\linewidth}
\textbf{Attendees}
\begin{itemize}
\item Member one
\item Member two
\item etc.
\end{itemize}
\end{minipage}
}
%% End of the stuff I want the \maketitle command to create.
\end{document}
我想知道是否有可能以与标题相同的方式包含与会者,例如
\title{Meeting}
\begin{attendees}
\item Member one
\item Member two
\item etc.
\end{attendees}
\starttime{XX:XX}
\endtime{XX:XX}
\maketitle
欢迎使用任何其他在课堂上实现同样目标的方法!
答案1
这是一个可能的解决方案:
\documentclass{article}
\makeatletter
\def\stime#1{\gdef\@stime{#1}}
\def\etime#1{\gdef\@etime{#1}}
\def\attlist#1{\gdef\@attlist{#1}}
\def\@stime{\@latex@error{No start time given}\@ehc}
\def\@etime{\@latex@error{No end time given}\@ehc}
\def\@attlist{\@latex@error{No attendees list given}\@ehc}
\renewcommand\@maketitle{%
\par\noindent\begin{minipage}[t]{0.6\linewidth}
{\Huge\@title\par\smallskip}
\@date\\
\begin{tabular}{@{}ll@{}}
Start time: & \@stime\\
End time: & \@etime
\end{tabular}
\end{minipage}%
\fbox{%
\begin{minipage}[t]{\dimexpr0.4\linewidth-2\fboxsep-2\fboxrule\relax}
\textbf{Attendees}
\begin{itemize}
\@for\temp@a:=\@attlist\do
{\item \temp@a}
\end{itemize}
\end{minipage}}\par\bigskip%
}
\renewcommand\maketitle{%
\if@twocolumn
\twocolumn[\@maketitle]%
\else
\@maketitle%
\fi%
}
\makeatother
\stime{08:00}
\etime{10:00}
\attlist{Member one, Member two, Member three, Member four}
\title{Meeting}
\date{\today}
\begin{document}
\maketitle
\end{document}
\stime
您可以使用(开始时间)、\etime
(结束时间)和\attlist
(所有与会者的逗号分隔列表)以类似于标准\author
,命令的方式提供信息\title
。如果没有提供这些命令,则会生成错误,并在输出控制台中显示信息文本并写入 .log 文件中。还提供了对双列文档的支持。
相关代码位于之间\makeatletter
,\makeatother
因为示例是一个.tex
文件;这些命令是不是.sty
在或文件内部使用.cls
。