我想将标题格式化如下:
左页: 左边:第十章,右边:章节名称
正确页面: 左边:小节,右边:子小节的名称,但前提是存在现有的子小节。
使用该fancyhdr
软件包,我可以得到预期的章节和小节。但是如果我尝试使用\renewcommand
\subsectionmark
它,它会覆盖 rightmark。有没有简单的方法可以指向小节标题(例如定义变量或类似的东西)以及如何定义它仅在小节存在时出现(可能是案例结构)?
这是迄今为止的代码。
\documentclass[12pt, a4paper, ngerman, twocolumn, titlepage, intoc, BCOR=5mm]{scrbook}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\chaptermark}[1]{\markboth{#1}{#1}}
\renewcommand{\sectionmark}[1]{\markright{\thesection{~}{#1}}}
\rhead[subsectionname if subsection existing]{\leftmark}
\lhead[\rightmark]{\chaptername~\thechapter}
\lfoot[]{}
\cfoot[\thepage]{\thepage}
\rfoot[]{}
\usepackage{babel}
\usepackage{lipsum}
\begin{document}
\chapter{Wurst}
\lipsum
\lipsum
\section{Fleischwurst}
\lipsum
\lipsum
\subsection{Lyoner}
\lipsum
\lipsum
\end{document}
这是我得到的:
希望大家能理解我的问题。提前致谢。
答案1
引用章节/节/小节等标题始终是个问题,只要它是可扩展的,否则\nameref{}
就行了。我稍微重新定义了\chapter
和\subsection
命令,将当前标题存储在\chaptertitle
或\subsectiontitle
命令中,然后将其用作包\rohead
中等命令的输入scrpage2
。
页眉的大部分直接设置fancyhdr
也可以通过包来实现,但是,正如 KOMA 脚本手册所述,scrpage2
与 KOMA 类结合使用效果更好,但这很自然,因为它scrpage2
是 KOMA 包的一部分。
在我看来,摆弄headmark
等等总是很乏味的。chaptermark
\documentclass[12pt, a4paper, ngerman, twocolumn, titlepage, intoc, BCOR=5mm]{scrbook}
%\usepackage{fancyhdr}
%\pagestyle{fancy}
%\fancyhf{}
%\renewcommand{\chaptermark}[1]{\markboth{#1}{#1}}
%\renewcommand{\sectionmark}[1]{\markright{\thesection{~}{#1}}}
%\rhead[subsectionname if subsection existing]{\leftmark}
%\lhead[\rightmark]{\chaptername~\thechapter}
%\lfoot[]{}
%\cfoot[\thepage]{\thepage}
%\rfoot[]{}
\usepackage{babel}
\usepackage{lipsum}
%%% My additions
\usepackage{etoolbox}
\usepackage{xcolor}%
\usepackage{scrpage2}%
\newcommand{\headseplinecolor}{blue}%
\pagestyle{scrheadings}%
\newcommand{\subsectiontitle}{}%
\makeatletter
\let\LaTeXStandardsubsection\subsection
\newcommand{\unstarred@@subsection@@noopt}[1]{%
\unstarred@@subsection@@opt[#1]{#1}%
}%
\newcommand{\unstarred@@subsection@@opt}[2][]{%
\renewcommand{\subsectiontitle}{#1}%
\LaTeXStandardsubsection[#1]{#2}%
}%
\newcommand{\unstarredsubsection}{%
\@ifnextchar[{\unstarred@@subsection@@opt}{\unstarred@@subsection@@noopt}%
}%
\newcommand{\starredsubsection}[1]{%
\renewcommand{\subsectiontitle}{#1}%
\LaTeXStandardsubsection*{#1}%
}%
\renewcommand{\subsection}{%
\@ifstar{\starredsubsection}{\unstarredsubsection}%
}%
%%%%%
\newcommand{\sectiontitle}{}%
\let\LaTeXStandardsection\section
\newcommand{\unstarred@@section@@noopt}[1]{%
\unstarred@@section@@opt[#1]{#1}%
}%
\newcommand{\unstarred@@section@@opt}[2][]{%
\renewcommand{\sectiontitle}{#1}%
\LaTeXStandardsection[#1]{#2}%
}%
\newcommand{\unstarredsection}{%
\@ifnextchar[{\unstarred@@section@@opt}{\unstarred@@section@@noopt}%
}%
\newcommand{\starredsection}[1]{%
\renewcommand{\sectiontitle}{#1}%
\LaTeXStandardsection*{#1}%
\addcontentsline{toc}{section}{\protect\numberline{}#1}%
}%
\renewcommand{\section}{%
\@ifstar{\starredsection}{\unstarredsection}%
}%
\newcommand{\chaptertitle}{}%
\makeatletter
\let\LaTeXStandardchapter\chapter
\newcommand{\unstarred@@chapter@@noopt}[1]{%
\unstarred@@chapter@@opt[#1]{#1}%
}%
\newcommand{\unstarred@@chapter@@opt}[2][]{%
\renewcommand{\chaptertitle}{#1}%
\LaTeXStandardchapter[#1]{#2}%
}%
\newcommand{\unstarredchapter}{%
\@ifnextchar[{\unstarred@@chapter@@opt}{\unstarred@@chapter@@noopt}%
}%
\newcommand{\starredchapter}[1]{%
\renewcommand{\chaptertitle}{#1}%
\LaTeXStandardchapter*{#1}%
}%
\renewcommand{\chapter}{%
\@ifstar{\starredchapter}{\unstarredchapter}%
}%
\makeatother
\clearscrplain
\clearscrheadings
\lehead{\ifnumgreater{\number\value{section}}{0}{\sectiontitle}{}}%
\rehead{\ifnumgreater{\number\value{subsection}}{0}{\subsectiontitle}{}}%
\lohead{\chapapp~\thechapter}%
\rohead{\chaptertitle}%
\setheadsepline{2pt}[\color{\headseplinecolor}]
%%%%%%
\begin{document}
\tableofcontents
\chapter{Wurst}
\lipsum
\lipsum
\section{Fleischwurst}
\lipsum
\lipsum
\subsection{Lyoner}
\lipsum
\lipsum
\section{Salami}
\lipsum
\lipsum
\subsection{Chorizo}
\lipsum
\lipsum
\end{document}