使用 tikz 自定义章节格式

使用 tikz 自定义章节格式

我正在使用 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}

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

相关内容