我想重新定义\maketitle
它包含我的自定义命令的方式。我有一个家庭作业,我想放置\@variant
命令或其他东西,以便能够稍后像使用和一样进行\@author
设置\@title
。
这是我的重新定义
\makeatletter
\renewcommand{\maketitle}{
\begin{center}
\vspace{2ex}
\textbf{\huge \textsc{\@title}}
\vspace{3ex}\\
\Large \@author\\
\hrulefill\\
\vspace{1ex}
\end{center}
}
\makeatother
然后在序言中我有这样的命令:
\title{My beautiful title}
\author{My Name}
我想写\varian{number}
下来\author
并把它放在我的名字下。
这是的定义\variant
:
\newcommand{\variant}[1]{Variant №\:#1}
它应该是这样的:
\makeatletter
\renewcommand{\maketitle}{
\begin{center}
\vspace{2ex}
\textbf{\huge \textsc{\@title}}
\vspace{3ex}\\
\Large \@author\\
\small \@variant\\
\hrulefill\\
\vspace{1ex}
\end{center}
}
\makeatother
\title{My beautiful title}
\author{My Name}
\variant{number}
重要的:我不想在重新定义时直接对其进行硬编码,我想让一切都变得花哨。而且我不想使用任何额外的包。
答案1
该\variant
命令可以定义为:
\newcommand\variant[1]{\renewcommand\@variant{Variant \textnumero\,#1}}
\newcommand\@variant{}
我添加了textcomp
包来排版№
象征否则无法识别此字符。如果您不想添加此包,也许可以更改号码标识。
\documentclass[]{article}
\usepackage{textcomp}
\makeatletter
\newcommand\variant[1]{\renewcommand\@variant{Variant \textnumero\,#1}}
\newcommand\@variant{}
\renewcommand{\maketitle}{
\begin{center}
\vspace{2ex}
\textbf{\huge \textsc{\@title}}
\vspace{3ex}\\
\Large \@author\\
\small \@variant\\
\hrulefill\\
\vspace{1ex}
\end{center}
}
\makeatother
\begin{document}
\title{My beautiful title}
\author{My Name}
\variant{number}
\maketitle
\end{document}
答案2
该titling
包提供了一个很好的修改标题的界面。它提供了在每个必需元素后插入材料的命令。
\variant
以下是将您的内容添加到标题的简单方法:
\documentclass{article}
\usepackage{titling}
\newcommand{\variant}[1]{\def\myvariant{#1}}
\renewcommand{\maketitlehookc}{\large\centering\par Variant No: \myvariant}
\title{A title}
\variant{A variant number}
\author{An author}
\date{\today}
\begin{document}
\maketitle
\end{document}