使用 KOMA 类在模板中定义的标题作为文档标题

使用 KOMA 类在模板中定义的标题作为文档标题

我正在将文档模板编写为 .tex 文件,它可以简单地包含在任何新文档的开头并加载所有包、定义页眉、页脚等my_template.tex

在里面my_template.tex,我使用 KOMA-Script 来设置标题样式,如下所示:

\documentclass[
    11pt,
    a4paper,
]{scrarticle}

\usepackage[page]{totalcount}
\usepackage{scrlayer-scrpage}
\setkomafont{pagehead}{\normalfont}
\ohead{Template Name \\ Document Name\\ \small Page \thepage~of \totalpages}
\cfoot{}
\setlength{\headheight}{14pt}

我希望用户能够在文档中的某个地方设置标题,但在模板中使用此定义。例如:

\input{my_template.tex}
...
\begin{document}
...
\title{My Document Title}
...
\end{document}

我如何将Document Name标题内部设置为My Document Title?我也希望\maketitle命令的标题相同。

答案1

一种可能性是:

\documentclass[
    11pt,
    a4paper,
    head lines=3
]{scrartcl}

\usepackage[page]{totalcount}
\usepackage{scrlayer-scrpage}
\setkomafont{pagehead}{\normalfont}
\clearmainofpairofpagestyles
\ohead{%
  Template Name\\%
  \Ifstr{\documentname}{}{}{\documentname\\}%
  \small Page \thepage~of \totalpages
}
\newcommand*\documentname{}

\let\originaltitle\title
\renewcommand*\title[1]{\def\documentname{#1}\originaltitle{#1}}

\usepackage{blindtext}% only for dummy text
\begin{document}
\title{My title}
\author{Author}
\maketitle
\blinddocument
\end{document}

在此处输入图片描述

相关内容