期望输出

期望输出

我想在三个地方为章节标题指定自己的换行符:

  1. 在章节标题页(即章节第一页)上,
  2. 在注释章节的相应小标题中(即\pagenote),以及
  3. 在目录中。

我可以写\chapter[A display\\of hot dogs: Oscar Meyer, Inc.]{A display\\of\\hot dogs:\\Oscar Meyer, Inc.},但在注释章节中,副标题将默认为目录条目。在 中memoir,我可以重新定义\pnchap以将章节副标题设置为注释,但我该如何重新定义它?memoir手册没有提供示例。尝试和下面的 MWE——我超出了我的能力范围。

期望输出

期望输出

试图

我想重新定义\chapter命令以添加第三个参数,例如,

\chapter%
[A display\\of hot dogs: Oscar Meyer, Inc.]%
{A display\\of\\hot dogs:\\Oscar Meyer, Inc.}%
{A display of hot dogs:\\Oscar Meyer, Inc.}

其中新的第三个参数最终将作为 Notes 中的章节副标题打印出来。为了实现这一点,我尝试了:

\makeatletter
\renewcommand{\@m@mchapter}[1][]{%
  \def\ch@pt@c{#1}%
  \@ifnextchar[{\my@chapter}{\my@chapter[]}%
}
\def\my@chapter[#1]#2#3{\def\f@rxtra{#3}\@chapter[#1]#2}
\renewcommand{\pnchap}{\f@rxtra}
\makeatother

但是我收到了这个错误:

! Parameters must be numbered consecutively.
<to be read again>
                   ##
l.38 \end
         {document}

我不太明白。我猜这个\my@chapter定义有些问题。

平均能量损失

\documentclass{memoir}
\usepackage[showframe,pass]{geometry}
\usepackage{lipsum}

% % ATTEMPT 1
% \makeatletter
% \renewcommand{\@m@mchapter}[1][]{%
%   \def\ch@pt@c{#1}%
%   \@ifnextchar[{\my@chapter}{\my@chapter[]}%
% }
% \def\my@chapter[#1]#2#3{\def\f@rxtra{#3}\@chapter[#1]#2}
% \renewcommand{\pnchap}{\f@rxtra}
% \makeatother

\makepagenote

\begin{document}
\tableofcontents
\part{Foo}

% % ATTEMPT 1
% \chapter%
% [A display\\of hot dogs: Oscar Meyer, Inc.]%
% {A display\\of\\hot dogs:\\Oscar Meyer, Inc.}%
% {A display of hot dogs:\\Oscar Meyer, Inc.}

\lipsum[1]\pagenote{Blah blah}
\printpagenotes
\end{document}

答案1

答案稍微简单一点,不需要覆盖现有的\chapter

\makeatletter
\newcommand\mychapter[3][]{\def\f@rxtra{#3}\chapter[#1]{#2}}
\renewcommand{\pnchap}{\f@rxtra}
\makeatother

进而

\mychapter[some line\\breaks]{some\\line\\breaks}{some\\line breaks}

相关内容