使用 \newcommand 并在 \newcommand 内部使用参数

使用 \newcommand 并在 \newcommand 内部使用参数

我在主 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}

在此处输入图片描述

相关内容