我正在使用以下代码来定义新的自定义变量以及现有的变量,并在文档的后面使用它们的值。
\newcommand\subtitle[1]{\newcommand\zzsubtitle{#1}}
\newcommand\institute[1]{\newcommand\zzinstitute{#1}}
\newcommand\fullmarks[1]{\newcommand\zzfullmarks{#1}}
%
\title{CC3 -- Mathematics}
\author{Subhajit Paul}
\institute{Salesian College, Siliguri Campus}
\date{BSc Honours 2\textsuperscript{nd} Semester Examination, 2023}
\subtitle{Real Analysis}
\fullmarks{60}
%
\makeatletter
\let\titlevalue\@title
\let\authorvalue\@author
\let\datevalue\@date
\makeatother
我现在想要的是为变量提供一个可选值。例如,我想写
\title[MATHCC3]{CC3 -- Mathematics}
并且该值MATHCC3
将存储在另一个变量中,例如\shorttitle
。但是,如果我写
\title{CC3 -- Mathematics}
那么\shorttitle
变量将具有与 相同的值。对于自定义变量(如和 )\titlevalue
,也应实现相同的功能。我该如何实现这一点?\subtitle
\institute
答案1
像这样?
\documentclass{article}
\makeatletter
\renewcommand{\title}[2][\empty]{% #1 = short title (optional), #2 = title
\ifx\empty#1\relax
\def\zzshorttitle{#2}%
\else
\def\zzshorttitle{#1}%
\fi
\def\@title{#2}}
\makeatother
\title[Real Analysis]{CC3 -- Mathematics}
\author{Subhajit Paul}
%\institute{Salesian College, Siliguri Campus}
\date{BSc Honours 2\textsuperscript{nd} Semester Examination, 2023}
\begin{document}
\maketitle
\zzshorttitle
\end{document}