在目录、第一章页面和页眉中使用不同的章节标题

在目录、第一章页面和页眉中使用不同的章节标题

假设我有一章的两个标题 t1 和 t2。我想在目录中显示 t1,在第一章页面以及页眉中显示 t2。

我使用\chapter[t1]{t2}它来显示目录和第一章页面。但是标题显示的是 t1 而不是 t2。有没有办法在标题中强制显示 t2?

谢谢。

答案1

使用,和 的memoir语法得到扩展:\chapter\section

\chapter[toc-title][head-title]{title}

如果只使用一个参数,则目录和标题将使用相同的输入,因此您需要

\chapter[t1][t2]{t2}

对于 也类似\section


也许您对更简单的界面感兴趣。我定义了命令\Chapter\Section。如果像这样调用

\Chapter{Title}

那么行为与 相同\chapter{title}。但是你可以调用

\Chapter[toc=Title for TOC]{Title}

标题的标题将是“Title”,而在目录中,您将获得所述内容。第三种调用方式是

\Chapter[toc=Title for TOC,head=Title for head]{Title}

用于独立指定这三个元素。这是一个完整的示例。

\documentclass{memoir}
\usepackage{xparse}

\usepackage{kantlipsum} % just for the example

\ExplSyntaxOn
% set up the keys
\keys_define:nn { tmv/titles }
 {
  toc  .tl_set:N = \l_tmv_titles_toc_tl,
  head .tl_set:N = \l_tmv_titles_head_tl,
 }

% user level commands    
\NewDocumentCommand{\Chapter}{ O{} m }
 {
  \tmv_set_titles:nn { #1 } { #2 }
  \tmv_division:VVnN \l_tmv_titles_toc_tl \l_tmv_titles_head_tl { #2 } \chapter
 }

\NewDocumentCommand{\Section}{ O{} m }
 {
  \tmv_set_titles:nn { #1 } { #2 }
  \tmv_division:VVnN \l_tmv_titles_toc_tl \l_tmv_titles_head_tl { #2 } \section
 }

% auxiliary command for setting the keys
\cs_new_protected:Npn \tmv_set_titles:nn #1 #2
 {
  \keys_set:nn { tmv/titles }
   {
    toc = { #2 },
    head = { #2 },
    #1
   }
 }

% the command that calls either \chapter or \section    
\cs_new_protected:Npn \tmv_division:nnnN #1 #2 #3 #4
 {
  #4[#1][#2]{#3}
 }
\cs_generate_variant:Nn \tmv_division:nnnN { VV }
\ExplSyntaxOff

\begin{document}
\frontmatter
\tableofcontents*

\mainmatter
\Chapter{Unique title}
\Section{Unique section title}
\kant

\Chapter[toc=Title for TOC]{Title also for head}
\Section[toc=Title for TOC]{Title also for head}
\kant

\Chapter[toc=Title for TOC 2,head=Title for head]{Title}
\Section[toc=Title for TOC 2,head=Title for head]{Title}
\kant

\end{document}

相关内容