有条件地将作者添加到标题

有条件地将作者添加到标题

我有一个myclass基于 KOMA-scriptscrartcl类的文档类。

梅威瑟:myclass.cls

\NeedsTeXFormat{LaTeX2e}

% The document class name
\ProvidesClass{myclass}

% https://tex.stackexchange.com/a/121829
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
\ProcessOptions\relax
\PassOptionsToPackage{headlines=3}{typearea}

% The document class to base this class on
\LoadClass{scrartcl}

\RequirePackage[headsepline]{scrlayer-scrpage}

% The page headers
\lohead{\csname @author\endcsname\\Foo\\Bar}

如果命令*的参数非空,我该如何有条件地\csname @author\endcsname\\在开头插入?问题是,目前总是在标题中插入换行符。lohead\author{}


* 不确定这里的术语。

答案1

您可以像 Koma-Script 那样进行操作,查看\maketitle其中的定义scrartcl.cls作为示例。

\makeatletter
  \lohead{\ifx\@author\@empty\else\@author\\\fi Foo\\Bar}
\makeatother

如果你确定\@author之后不会改变\begin{document},你也可以只检查一次。

\makeatletter
  \AtBeginDocument{%
    \ifx\@author\empty
      \lohead{Foo\\Bar}%
    \else
      \lohead{\@author\\Foo\\Bar}%
    \fi
  }
\makeatother

相关内容