我正在使用 documentclass 为会议创建一本小册子scrbook
。该文档由不同的部分组成chapter
:“关于”、“时间表”、“参与者名单”等。每个“章节”都从新页面开始(可以是奇数页也可以是偶数页)。
我希望我的chapter
渲染效果如下(这是我迄今为止基于此所管理的效果:http://texample.net/tikz/examples/fancy-chapter-headings/):
这是由以下 MWE 生成的
\documentclass[openany]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage[explicit]{titlesec}
\usepackage{blindtext}
%--------------------------------
\titleformat
{\chapter} % command
{\bfseries\Huge} % format
{%
\thechapter
} % label
{0pt} % sep
{
\ifodd\value{page}{%
\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\fill[orange] (0,0) rectangle (0.6\textwidth,1em);
\node[above, yshift=-0.2em, xshift=\textwidth] {#1};
\end{tikzpicture}
};
\end{tikzpicture}
}\else{%\
\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north east)
{\begin{tikzpicture}[remember picture, overlay]
\fill[orange] (0,0) rectangle (-0.5\paperwidth,1em);
\node[above, yshift=-0.2em, xshift=-\textwidth] (0,0) {#1};
\end{tikzpicture}
};
\end{tikzpicture}
}\fi%
} % before-code
[
\vspace{-3cm}
] % after-code
%------------------------------------------------
\begin{document}
\chapter*{About}
\blindtext[3]
\chapter*{Timetable}
\blindtext[3]
\end{document}
然而,仍有一些需要改进的地方:
“时间表”章节向左对齐,这正是我想要的,但“关于”章节没有完全向右对齐。我该怎么做?
目前橙色条的宽度固定为 0.5
\textwidth
。如何使其自适应,以便它从页面边框一直延伸到章节名称(宽度取决于章节名称)?
答案1
titlesec
没有和tikz
但有 的解决方案xcolor
。请注意,KOMA-script 附带宏\ifthispageodd
。
\documentclass[openany]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{blindtext}
\newlength\mybarpadding
\mybarpadding=1em\relax% change this to alter the space between the rule and the chapter title
\RedeclareSectionCommand[%
,afterskip=4em plus 1pt minus 1pt%
,beforeskip=-1pt%1.2em plus 1pt minus 1pt%
,level=0%
,toclevel=0%
]{chapter}%
\setkomafont{chapter}{\normalfont\normalsize\bfseries\Huge}
\renewcommand{\chapterlinesformat}[3]{%
\ifthispageodd{%
\hfill%
\raisebox{-0.2em}{%
\makebox[0pt][r]{\textcolor{orange}{\rule{\paperwidth}{1em}}}%
}%
\hspace{\mybarpadding}%
#2#3%
}{%
\hbox{%
#2#3%
\hspace{\mybarpadding}%
\raisebox{-0.2em}{%
\makebox[0pt][l]{\textcolor{orange}{\rule{\paperwidth}{1em}}}%
}%
}%
}%
}
\begin{document}
\chapter*{About}
\blindtext[3]
\chapter*{Timetable}
\blindtext[3]
\chapter{foo}
\end{document}