修改未编号部分

修改未编号部分

此代码来自这里做了一点修改。我只\part*{Unnumbered Part}在底部添加了。

\documentclass{scrbook}
\usepackage[Bjornstrup]{fncychap}
\usepackage{xcolor}

\colorlet{partbgcolor}{gray!30}% shaded background color for parts
\colorlet{partnumcolor}{gray}% color for numbers in parts
\colorlet{chapbgcolor}{gray!30}% shaded background color for chapters
\colorlet{chapnumcolor}{gray}% color for numbers in chapters

\renewcommand*\partformat{%
  \fontsize{76}{80}\usefont{T1}{pzc}{m}{n}\selectfont%
  \hfill\textcolor{partnumcolor}{\thepart}}

\makeatletter
\renewcommand*{\@part}{}
\def\@part[#1]#2{%
  \ifnum \c@secnumdepth >-2\relax
    \refstepcounter{part}%
    \@maybeautodot\thepart%
    \addparttocentry{\thepart}{#1}%
  \else
    \addparttocentry{}{#1}%
  \fi
  \begingroup
    \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
    \raggedpart
    \interlinepenalty \@M
    \normalfont\sectfont\nobreak
    \setlength\fboxsep{0pt}
    \colorbox{partbgcolor}{\rule{0pt}{40pt}%
    \makebox[\linewidth]{%
    \begin{minipage}{\dimexpr\linewidth+20pt\relax}
      \ifnum \c@secnumdepth >-2\relax
        \vskip-25pt
        \size@partnumber{\partformat}%
      \fi      %
      \vskip\baselineskip
      \hspace*{\dimexpr\myhi+10pt\relax}%
      \parbox{\dimexpr\linewidth-2\myhi-20pt\relax}{\raggedleft\LARGE#2\strut}%
      \hspace*{\myhi}\par\medskip%
    \end{minipage}%
      }%
    }%
    \partmark{#1}\par
  \endgroup
  \@endpart
}

\renewcommand\DOCH{%
  \settowidth{\py}{\CNoV\thechapter}
  \addtolength{\py}{-10pt}
  \fboxsep=0pt%
  \colorbox{chapbgcolor}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}%
  \kern-\py\raise20pt%
  \hbox{\color{chapnumcolor}\CNoV\thechapter}\\%
}

\renewcommand\DOTI[1]{%
  \nointerlineskip\raggedright%
  \fboxsep=\myhi%
  \vskip-1ex%
  \colorbox{chapbgcolor}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak%
  \vskip 40pt%
}

\renewcommand\DOTIS[1]{%
  \fboxsep=0pt
  \colorbox{chapbgcolor}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}\\%
  \nointerlineskip\raggedright%
  \fboxsep=\myhi%
  \colorbox{chapbgcolor}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak%
  \vskip 40pt%
 }
\makeatother


\begin{document}

\part{Test Part}
\chapter{Test Chapter}
\part*{Unnumbered Part}

\end{document}

如何使自定义零件样式也适用于未编号的零件(当然没有零件编号)?

答案1

\chapterlineswithprefixformat以下是重新定义和 的建议\partlineswithprefixformat。第二个宏(关于部分)是在 KOMA-Script 版本 3.25 中引入的。因此,您至少需要此版本才能运行以下代码:

\documentclass{scrbook}[2018/03/30]% needs at least KOMA-Script version 3.25 
\usepackage{xcolor}
\colorlet{partbgcolor}{gray!30}% shaded background color for parts
\colorlet{partnumcolor}{gray}% color for numbers in parts
\colorlet{chapbgcolor}{gray!30}% shaded background color for chapters
\colorlet{chapnumcolor}{gray}% color for numbers in chapters

\newlength{\myhi}
\setlength\myhi{10pt}

\renewcommand\raggedpart{\raggedleft}
\setkomafont{part}{\Large}
\RedeclareSectionCommand[innerskip=0pt]{part}
\renewcommand*\partformat{%
  \fontsize{76}{80}\usefont{T1}{pzc}{m}{n}\selectfont%
  \makebox[0pt][l]{\makebox[\myhi][r]{\textcolor{partnumcolor}{\thepart}}}}

\renewcommand\raggedchapter{\raggedleft}
\setkomafont{chapter}{\Large}
\RedeclareSectionCommand[innerskip=0pt]{chapter}
\renewcommand*\chapterformat{%
  \fontsize{76}{80}\usefont{T1}{pzc}{m}{n}\selectfont%
  \makebox[0pt][l]{\makebox[\myhi][r]{\textcolor{chapnumcolor}{\thechapter}}}}

\renewcommand\partlineswithprefixformat[3]{% needs at least KOMA-Script version 3.25
  \ifstr{#1}{part}
    {%
      \raggedpart
      \setlength\fboxsep{0pt}%
      \colorbox{partbgcolor}{\rule{0pt}{20pt}%
        \hspace*{\myhi}%
        \begin{minipage}[t]{\dimexpr\linewidth-2\myhi\relax}
          \vskip\baselineskip
          \raggedpart#3\strut
          \vspace*{\dimexpr-\baselineskip+\myhi\relax}%
        \end{minipage}%
        \hspace*{\myhi}%
      }%
      #2\par
    }
    {#2#3}% default code for other section levels with style=part
}

\renewcommand\chapterlinesformat[3]{%
  \ifstr{#1}{chapter}
    {%
      \raggedchapter
      \setlength\fboxsep{0pt}%
      \colorbox{chapbgcolor}{\rule{0pt}{20pt}%
        \hspace*{\myhi}%
        \begin{minipage}[t]{\dimexpr\linewidth-2\myhi\relax}
          \vskip\baselineskip
          \raggedchapter#3\strut
          \vspace*{\dimexpr-\baselineskip+\myhi\relax}\par
        \end{minipage}%
        \hspace*{\myhi}%
      }%
      #2\par
    }
    {#2#3}% default code for other section levels with style=chapter
}

\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents

\part{Test Part}
\chapter{Test Chapter}
\blindtext

\KOMAScriptVersion

\part{Next Part}
\blinddocument
\addpart*{Unnumbered Part}
\end{document}

在此处输入图片描述

在此处输入图片描述

相关内容