我在主 TeX 文件中的 ToC 之后立即使用以下命令。
\mainmatter
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter.\ #1}{}}
\lhead[\thepage]{\leftmark}\chead[]{}\rhead[\myentitle]{\thepage}
\lfoot{}\cfoot{}\rfoot{}
我想将所有内容放入一个新命令中\MainMatter
。我该怎么做?我刚刚尝试这样做,但是出现了以下错误。
Illegal parameter number in definition of `\MainMatter`}.
如何才能做到这一点?
答案1
\newcommand
带有另一个参数的定义\renewcommand
或 \newcommand
需要##1
等##2
进行参数替换,甚至如果外部命令根本没有参数。
由于缺少 MWE,我只是“发明”了一个,定义了未知命令\myentitle
。
\documentclass{book}
\usepackage{fancyhdr}%
\usepackage{blindtext}
\newcommand{\myentitle}{Some unknown text}
\newcommand{\MainMatter}{%
\mainmatter%
\pagestyle{fancy}%
\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter.\ ##1}{}}
\lhead[\thepage]{\leftmark}\chead[]{}\rhead[\myentitle]{\thepage}
\lfoot{}\cfoot{}\rfoot{}
}%
\begin{document}
\MainMatter
\chapter{The very first chapter}
\blindtext[10]
\end{document}