LaTeX:在'\ chapter * {abc123}'上自动更新'\ leftmark'

时间:2010-09-10 10:55:40

标签: latex

在我当前的文档中,有一些章节必须与\chapter* - 命令一起添加,因为我不希望它们是真正的章节(toc中没有条目,没有章号,......)。这很好。

但在我的标题中,我希望显示chapter-name。我正在使用fancyheaders\leftmark

\fancyhead[RO,LE]{\leftmark}

问题是,对于使用\chapter* - 命令添加的章节,\leftmark未更新,因此标题仍显示上一章的章节名称。

因此,我需要强制\chapter*自动更新\leftmark,或者切换到\chapter - 命令,但要阻止其他内容(toc中的条目,... )。但我不知道怎么做!有什么想法吗?

5 个答案:

答案 0 :(得分:3)

我刚刚将章和节命令重新定义为我需要的内容并明确设置了\leftmark。章节命令将不再使用leftmark,但我不在乎,因为我在整个文档中使用\nnchapter\nnsection命令

\newcommand{\nnchapter}[1]{
   \phantomsection
   \addcontentsline{toc}{chapter}{#1}\renewcommand{\leftmark}{#1}\chapter*{#1}
}
\newcommand{\nnsection}[1]{
   \phantomsection
   \addcontentsline{toc}{section}{#1}\renewcommand{\leftmark}{#1}\section*{#1}
}

答案 1 :(得分:3)

\chapter等命令的*形式不会调用mark命令。因此,如果您希望您的前言设置标题信息但不编号也不能放在目录中,您必须自己发出\markboth命令,例如

\chapter*{abc123\markboth{abc123}{}}

答案 2 :(得分:2)

试试这个:

 \let\oldleftmark=\leftmark
    \chapter*{My New Leftmark}
    \renewcommand{\leftmark}{My New Leftmark}
      ...
      Your text
      ...
    \pagebreak
    \chapter{Next Chapter}
    \let\leftmark=\oldleftmark

pagebreak需要确保使用新的lefmark

答案 3 :(得分:1)

好吧,我做到了!解决方案是仅在特定块内重新定义\ leftmark!如果你知道它就很简单;)

{
    \renewcommand{\leftmark}{ABC123}
    \chapter*{ABC123}

    %... and so on ...
}

答案 4 :(得分:0)

我不确定这会有效,因为我目前的机器上没有安装LaTeX ......

但您可以尝试在\ chapter *命令之后设置\ markleft命令,如下所示:

\chapter*{Chapter title goes here}
\markleft{Chapter title goes here}  % content should be added to the \leftmark

希望这有帮助。