我正在将文档模板编写为 .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}