\newleadpage* 回忆录中的编译错误

\newleadpage* 回忆录中的编译错误

请考虑以下 MWE:

\documentclass[a4paper]{memoir}
\newleadpage*{frontmatterpage}{Front Matter}
\begin{document}
\frontmatter
\frontmatterpage
\chapter{A}
\end{document}

如果您尝试编译此代码,将会引发以下错误:

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
...                                              

l.2 \newleadpage*{frontmatterpage}{F
                                    ront Matter}

但是,删除文档*中的时\newleadpage,编译时没有任何错误。由于回忆录文档指出,*可以与此命令一起使用,以避免将页面添加到目录中。这个错误可以解决吗?

答案1

memoir 文档\newleadpage是不正确的。当你查看(和\renewleadpage)的定义时,这一点就变得很明显了:

\newcommand*{\newleadpage}[3][empty]{%
  \@namedef{#2}{\@ifstar{\dlfm@msapppage{#1}{#2}{#3}}%
                        {\dlfm@mapppage{#1}{#2}{#3}}}}
\newcommand*{\renewleadpage}[3][empty]{%
  \@namedef{#2}{\@ifstar{\dlfm@msapppage{#1}{#2}{#3}}%
                        {\dlfm@mapppage{#1}{#2}{#3}}}}

应该清楚的是,没有任何条件*,因为两个宏都采用一个可选参数和两个强制参数。

您需要以下定义/用法:

在此处输入图片描述

\documentclass{memoir}
\newleadpage{frontmatterpage}{Front Matter}
\begin{document}
\frontmatter
\tableofcontents
\frontmatterpage*
\frontmatterpage
\chapter{A}
\end{document}

事实上,.dtx(注释代码)包含对宏更合适的描述:

\newleadpage[<page-style>]{<cmdname>}{<title>}创建名为 的新宏\cmdname,当调用时,会排版一个页面,如附录页面,并使用页面样式(默认)\cmdname*设置标题。普通版本会向目录添加条目,但加星号的版本 不会。更改定义。<title><page-style>empty\cmdname*\renewleadpage

相关内容