带有 titleps 的自定义页面样式会导致未定义的控制命令

带有 titleps 的自定义页面样式会导致未定义的控制命令

我尝试使用 fancyhdr 好几个小时,最后放弃了,转而使用 titleps 来创建从奇数页到偶数页的页眉和页脚。这对我来说容易得多,但一旦我创建并使用自定义页面样式,LaTex 就无法识别大多数最基本的命令,例如\clearpage或甚至\end{document}(当它不是致命错误时)。

我尝试在两个不同的系统上使用两个不同的 Tex 编辑器运行以下 MWE,但没有成功,而且谷歌搜索也无法帮助我。

\documentclass[12pt,twoside]{article}
\usepackage{titleps}
\usepackage{lipsum}

\newpagestyle{main}{
    \setheadrule{1pt}
    \setfootrule{1pt}
\sethead[\nouppercase \subsectiontitle][][\sectiontitle]
} 
\pagestyle{main}    

\begin{document}

\section{Section1}
\subsection{Subsection 1}
\lipsum[1-3]
\clearpage
\subsection{Subsection 2}

\end{document}

删除\pagestyle{main}解决了问题,但没有标题。

有什么想法吗?非常感谢所有建议!:)

答案1

您的语法错误。您应该使用大括号而不是方括号\sethead。 \nouppercase 未使用 titleps 定义:

\documentclass[12pt,twoside]{article}
\usepackage{titleps}
\usepackage{lipsum}

\newpagestyle{main}{%
    \setheadrule{1pt}%
    \setfootrule{1pt}%
    \sethead{\subsectiontitle}{}{\sectiontitle}%
}
\pagestyle{main}

\begin{document}

\section{Section1}
\subsection{Subsection 1}
\lipsum[1-3]
\clearpage
\subsection{Subsection 2}

\end{document}

答案2

命令\sethead需要如果您想要不同的奇数和偶数标题,则在与双面文档一起使用时需要参数,但您只给了它 3 个(偶数侧的标题),因此您也需要为奇数侧标题提供值。

(因为我不知道\nouppercase应该做什么,所以我将其从示例中删除了。)

\documentclass[12pt,twoside]{article}
\usepackage[outermarks]{titleps}
\usepackage{lipsum}

\newpagestyle{main}{
    \setheadrule{1pt}
    \setfootrule{1pt}
\sethead[ \subsectiontitle][][\sectiontitle] % sets even header
{}{}{} % sets odd header (put in whatever you want)
} 
\pagestyle{main}    

\begin{document}

\section{Section1}
\subsection{Subsection 1}
\lipsum[1-3]
\clearpage
\subsection{Subsection 2}

\end{document}

如果希望奇数页和偶数页使用相同的页眉,则只需使用带有(不是)\sethead参数的 3 个参数版本。{ }[ ]

\sethead{\subsectiontitle}{}{\sectiontitle}

为了在第一页也获得子章节标记,请使用以下选项加载包outermarks

\usepackage[outermarks]{titleps}

相关内容