scrpage2-标题中的章节和节位于两行上?

scrpage2-标题中的章节和节位于两行上?

这是我的代码的开头:

\documentclass[twoside,a4paper,11pt]{scrbook}
\usepackage[UTF8]{inputenc} %encodage clavier
\usepackage[T1]{fontenc} %encodage police
\usepackage[francais]{babel} %langue
\usepackage{scrpage2} %head-foot koma
\deftripstyle{fancy}[0pt][0.4pt]
          {\leftmark}{}{\thepage}
          {Nom du document}{}{Lieu} %page style for right pages (odd)
\pagestyle{fancy}

...其效果非常好,页眉/页脚twoside通过改变奇数/偶数页的显示来尊重该选项。

问题 : 由于我的文档中有很多章节和节,并且它们都有助于定位页面,所以我想将它们都显示在内部标题上的两行上,我该怎么做?

我已经尝试过这个:(没有用)

\documentclass[twoside,a4paper,11pt]{scrbook}
\usepackage[UTF8]{inputenc} %encodage clavier
\usepackage[T1]{fontenc} %encodage police
\usepackage[francais]{babel} %langue
\usepackage{scrpage2} %head-foot koma
\deftripstyle{fancy}[0pt][0.4pt]
            {\leftmark \newline \rightmark}{}{\thepage}
            {Nom du document}{}{Lieu} %page style for right pages (odd)
\pagestyle{fancy}

答案1

这是一个解决方案。

首先,如果您有一个最新的 KOMA 脚本包,请使用scrlayer-scrpage而不是scrpage2

\deftripstyle我们将不使用,而是使用\defpagestyle

线路

\setlength{\headheight}{22pt}

是为了稍微增加标题的空间。

MWE(如果您有旧的 KOMA/script 包,请替换scrlayer-scrpage为)scrpage2

\documentclass[twoside,a4paper,11pt]{scrbook}
\usepackage[utf8]{inputenc} %encodage clavier
\usepackage[T1]{fontenc} %encodage police
\usepackage[francais]{babel} %langue
\usepackage[headsepline,footsepline]{scrlayer-scrpage} %head-foot koma
\setlength{\headheight}{22pt}
\defpagestyle{fancy}{%
  {\thepage\hfill\begin{minipage}[b]{0.8\linewidth}\raggedleft\leftmark \\ \rightmark\end{minipage}}
  {\begin{minipage}[b]{0.8\linewidth}\raggedright\leftmark \\ \rightmark\end{minipage}\hfill\thepage}
  {\hfill}
}{%
  {Lieu\hfill Nom du document}
  {Nom du document\hfill Lieu}
  {\hfill}
}
\pagestyle{fancy}

\usepackage{blindtext} % just for the example

\begin{document}
\blinddocument
\end{document} 

输出:

在此处输入图片描述

答案2

您可以使用tabular

\documentclass[twoside,a4paper,11pt]{scrbook}
\usepackage[T1]{fontenc} %encodage police
\usepackage[utf8]{inputenc} %encodage clavier
\usepackage[francais]{babel} %langue
\usepackage{scrpage2} %head-foot koma
\deftripstyle{fancy}[0pt][0.4pt]
  {\begin{tabular}[t]{@{}l@{}}\leftmark \\ \rightmark\end{tabular}}{}{\thepage}
  {Nom du document}{}{Lieu} %page style à droite (impair)

\addtolength{\headheight}{11pt} % avoid overfull box

\pagestyle{fancy}

\usepackage{kantlipsum}

\begin{document}
\chapter{Un titre}

\section{Encore}

\kant[1-12]

\end{document}

在此处输入图片描述

scrlayer-scrpage表格形式还是比较好的:

\documentclass[twoside,a4paper,11pt]{scrbook}
\usepackage[T1]{fontenc} %encodage police
\usepackage[utf8]{inputenc} %encodage clavier
\usepackage[francais]{babel} %langue
\usepackage[headsepline,footsepline]{scrlayer-scrpage} %head-foot koma
\defpagestyle{fancy}{%
  {\thepage\hfill\begin{tabular}[b]{@{}r@{}}\leftmark \\ \rightmark\end{tabular}}
  {\begin{tabular}[b]{@{}l@{}}\leftmark \\ \rightmark\end{tabular}\hfill\thepage}
  {}
}{%
  {Nom du document}{}{Lieu} %page style à droite (impair)
}
\setlength{\headheight}{27.2pt} % avoid overfull box

\pagestyle{fancy}

\usepackage{kantlipsum}

\begin{document}
\chapter{Un titre}

\section{Encore}

\kant[1-12]

\end{document}

第2页

第 3 页

但是,我不明白为什么要以这种方式重复信息:您会在对开页上彼此非常接近的地方获得相同的信息。

答案3

您可以将以下两行放在\parbox

示例输出

\documentclass[twoside,a4paper,11pt,headlines=2.5]{scrbook}

\usepackage[utf8]{inputenc} %encodage clavier
\usepackage[T1]{fontenc} %encodage police

\newcommand{\oddevenlap}[1]{\ifodd\value{page}\rlap{#1}\else\llap{#1}\fi}

\deftripstyle{fancy}[0pt][0.4pt]
            {\parbox[b]{0pt}{\strut\oddevenlap{\leftmark}\\
                             \oddevenlap{\rightmark\strut}}}{}{\thepage}
            {Nom du document}{}{Lieu} %page style à droite (impair)

\pagestyle{fancy}

\usepackage{blindtext}

\begin{document}
\blinddocument

\end{document}

此处为偶数页 (更新) 我习惯\llap将 放在\leftmark一个零宽度的框中,标记向左突出,这样我就不需要决定 的宽度值\parbox。这些\strut命令为这个框提供了统一的高度和深度以及通常的情况。我已将一个增加的headlines选项传递给 documentclass 以帮助页面布局。

相关内容