这是我的代码的开头:
\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}
但是,我不明白为什么要以这种方式重复信息:您会在对开页上彼此非常接近的地方获得相同的信息。
答案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 以帮助页面布局。