Latex 赢得班级和宏

Latex 赢得班级和宏

我正在编写自己的简单模板,到目前为止我有一个新的、重新定义的 make title 命令:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[2016/06/22 My custom class]
\LoadClass{article}

\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{fancybox}
\usepackage{rotating}
\usepackage{hyperref}
\usepackage{framed}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{enumitem}


\newcommand{\LOGO}{logo.png}
\newcommand{\FIRST}[1]{#1}
\newcommand{\SECOND}[1]{#1}
\newcommand{\THIRD}[1]{#1}

\renewcommand{\maketitle}{
    \begin{titlepage}
        \vspace{10pt}
        \hbox{
            \mbox{
                \hspace{-20pt}
                \fbox{ \includegraphics{\LOGO}}
                \hspace{4pt}
            }
            \vrule depth 0.9\textheight
            \mbox{\hspace{2em}}
            \vtop{
                \vspace{20pt}
                \begin{flushleft}
                    \Large \FIRST \par
                \end{flushleft}
                \vspace{80pt}
                \begin{flushleft}
                    \Huge \bfseries \SECOND \par
                \end{flushleft}
                \begin{flushleft}
                    \large \bfseries \THIRD  \par
                \end{flushleft}
                \vfil
            }
        }
    \end{titlepage}
    \setcounter{footnote}{0}
}

在新的中maketitle我使用\FIRST, \SECOND, \THIRD我定义为的宏:

\newcommand{\FIRST}[1]{#1}

但是,我希望使用此模板的用户能够在编写 tex 时上传任何值,\FIRST这样当用户调用我的 时\maketitle, 的位置\FIRST会出现用户选择的值。当我\FIRST在 .cls 文件中定义宏时,我该怎么做?

答案1

您可以像下面这样定义命令:

\newcommand{\FIRST}[1]{\gdef\@FIRST{#1}}
\newcommand{\SECOND}[1]{\gdef\@SECOND{#1}}
\newcommand{\THIRD}[1]{\gdef\@THIRD{#1}}
\let\@FIRST\@empty
\let\@SECOND\@empty
\let\@THIRD\@empty

然后稍后\maketitle您可以在里面分别将\FIRST\SECOND和替换\THIRD\@FIRST\@SECOND\@THIRD

现在用户可以给予:

\FIRST{one}
\SECOND{two}
\THIRD{three}

希望这可以帮助。

相关内容