我对花哨的页面非常感兴趣,并且我有最少的工作答案,结果是:
\documentclass{book}
\usepackage[top=20mm,bottom=20mm,left=20mm,right=20mm,a4paper]{geometry}
\usepackage{microtype,soul,filecontents}
\usepackage{pgf}
\usepackage{lettrine,caption,multicol}
\usepackage{xcolor}
\usepackage{lipsum,soul}
\usepackage{palatino}
\usepackage{calligra}
\usepackage[T1]{fontenc}
\makeatletter
\usepackage[listings,theorems]{tcolorbox}
%\usepackage[charter]{mathdesign}
% \def\rmdefault{bch} % not scaled
% \def\ttdefault{blg}
\usepackage{xcolor,filecontents,ragged2e}
\definecolor{theblue} {rgb}{0.02,0.04,0.48}
\definecolor{thered} {rgb}{0.65,0.04,0.07}
\definecolor{thegreen}{rgb}{0.06,0.44,0.08}
\definecolor{thegrey} {gray}{0.5}
\definecolor{theshade}{gray}{0.94}
\definecolor{theframe}{gray}{0.75}
\newcommand\lorem{Fusce adipiscing justo nec ante. Nullam in enim.
Pellentesque felis orci, sagittis ac, malesuada et, facilisis in,
ligula. Nunc non magna sit amet mi aliquam dictum. In mi. Curabitur
sollicitudin justo sed quam et quadd. \par}
\lstloadlanguages{[LaTeX]TeX, [primitive]TeX}
% Emphasis
\newcommand\emphasis[2][thered]{\lstset{emph={newcommand,def,gdef,#2},
emphstyle={\ttfamily\textcolor{#1}}}}%
\lstset{language={[LaTeX]TeX},
escapeinside={{(*@}{@*)}},
numbers=left, gobble=0,
stepnumber=1,numbersep=5pt,
numberstyle={\footnotesize\color{gray}},firstnumber=last,
breaklines=true,
framesep=5pt,
basicstyle=\small\ttfamily,
showstringspaces=false,
% keywordstyle=\ttfamily\textcolor{thegreen},
stringstyle=\color{orange},
commentstyle=\color{black},
rulecolor=\color{theshade},
breakatwhitespace=true,
showspaces=false, % shows spacing symbol
xleftmargin=0pt,
xrightmargin=5pt,
aboveskip=3pt plus1pt minus1pt, % compact the code looks ugly in type
belowskip=7pt plus1pt minus1pt, % user responsible to insert any skips
backgroundcolor=\color{theshade}
}
\begin{filecontents*}{chapterx.sty}
\ProvidesPackage{chapters}[2012/04/07 v0.1 Typesetting chapters]
\newcommand\HUGE{\@setfontsize\Huge{38}{47}}
\newcommand\HHUGE{\@setfontsize\HHUGE{58}{67}}
\newenvironment{summary}
{\list{}{\listparindent0pt %
\itemindent\listparindent
\leftmargin0pt
\rightmargin\leftmargin
\parsep\z@ \@plus\p@}%
\item\relax\itshape}
{\endlist}
% helper macros
\gdef\thinrule{\rule{\textwidth}{0.4pt}}
\gdef\mediumrule{\rule{\textwidth}{0.8pt}}
%% broad positions
\newif\if@left
\newif\if@right
\newif\if@center
\@leftfalse
\@rightfalse
\@centerfalse
% newifs for number position
\newif\if@lefttitle
\newif\if@righttitle
\newif\if@leftname
\newif\if@rightname
\newif\if@chapterspaceout\@chapterspaceoutfalse
\newif\if@titlespaceout\@chapterspaceoutfalse
%\section{Libraries}
\def\cx@optionlist{}
\def\cx@optionlist{}
\def\cxuselibrary#1{\cxset{library/.cd,#1}}
%
% The library is added by inputting the file and setting the path accordingly.
\def\cx@add@library#1#2{%
\cxset{library/#1/.code={\@ifundefined{cxlibrary@#1@loaded}{\input #2}{}}}%
\DeclareOption{#1}{\edef\cx@optionlist{\cx@optionlist,#1}}%
}
\def\thickrule{\leavevmode \leaders \hrule height 3pt \hfill \kern \z@}
% Define a family for chapter styling keys
\pgfkeys{/chapter/.is family}
\def\cxset{\pgfqkeys{/chapter}} %Notice this is pgf q keys
% spent half the evening to debug it;)Aarg!!!
% We define keys for all major components
\cxset{%
name/.code={\gdef\chaptername{#1}},
color/.store in=\color@cx,
color/.default=black,
chapter font-family/.store in=\chapterfontfamily@cx,
chapter font-weight/.store in=\chapterfontweight@cx,
chapter font-size/.store in=\chapterfontsize@cx,
chapter color/.store in=\chaptercolor@cx,
chapter before/.store in=\chapterbefore@cx,
chapter after/.store in=\chapterafter@cx,
chapter spaceout/.is choice,
chapter spaceout/soul/.code={\@chapterspaceouttrue},
chapter spaceout/none/.code={\@chapterspaceoutfalse},
% title keys
title font-family/.store in=\titlefontfamily@cx,
title font-family/.default=\rmfamily,
title font-weight/.store in=\titlefontweight@cx,
title font-size/.store in=\titlefontsize@cx,
title font-color/.store in=\titlefontcolor@cx,
title spaceout/.is choice,
title spaceout/soul/.code={\@titlespaceouttrue},
title spaceout/none/.code={\@titlespaceoutfalse},
title font/.style={title font-family=#1},
title before/.store in=\titlebefore@cx,
title after/.store in=\titleafter@cx,
title beforeskip/.store in=\titlebeforeskip@cx,
title afterskip/.store in=\titleafterskip@cx,
position/.is choice,
position/left/.code={\@lefttrue},
position/right/.code={\@righttrue},
position/center/.code={\@centertrue},
% numbering options that are required
numbering/.is choice,
% better to rename thechapter?
numbering/roman/.code={\gdef\thechapter{\@roman\c@chapter}},
numbering/Roman/.code={\gdef\thechapter{\@Roman\c@chapter}},
numbering/arabic/.code={\gdef\thechapter{\@arabic\c@chapter}},
numbering/none/.code={\gdef\thechapter{}},
number dot/.store in=\numberpunctuation@cx,
number position/.is choice,
number position/leftname/.code={\@leftnametrue\@rightnamefalse},
number position/rightname/.code={\@rightnametrue\@leftnamefalse},
number position/absolute/.code={},
number position/righttitle/.code={\@righttitletrue},
number position/lefttitle/.code={\@lefttitletrue},
number after/.store in=\numberafter@cx,
number before/.store in=\numberbefore@cx,
number color/.store in=\numbercolor@cx,
number font-size/.store in=\numberfontsize@cx,
number font-family/.store in=\numberfontfamily@cx,
number font-weight/.store in=\numberfontweight@cx,
% headers and footers
header style/.store in=\headerstyle@cx,
% general draft rules
rule /.is choice,
rule on/.code={\gdef\rulewidth@cx{0.4pt}},
rule off/.code={\gdef\rulewidth@cx{0pt}},
}
\cxset{%
color=blue,
position=center,
name=chapteris,
title font-family=\rmfamily,
title font-weight=\bfseries,
title font-size=\Huge,
title font-color=\color{olive},
numbering=arabic,
number dot=,
chapter font-family=\sffamily,
chapter font-weight=\bfseries,
chapter font-size=\Large,
chapter color=gray,
chapter before={\leavevmode\par\hfill},%need to correct for 0pt
chapter after=\hfill\hfill,
number position=rightname,
number color=\color{gray},
number after=\hspace{20pt},
number before=\hspace*{20pt},
number font-size=\huge,
number font-family=\sffamily,
number font-weight=\bfseries,
number before=,
number after=,
title before=,
title after=,
title afterskip={\vskip50pt},
title beforeskip={\vskip10pt},
header style=plain,
}
\gdef\setdefaults{%
\cxset{%
name=CHAPTER,
title font-family=\rmfamily,
title font-weight=\bfseries,
title font-size=\Huge,
title font-color=\color{purple},
numbering=arabic,
number dot=,
number before=,
number after=,
chapter font-family=\sffamily,
chapter font-weight=\bfseries,
chapter font-size=\large,
chapter spaceout=soul,
chapter color=gray,
chapter before={},%need to correct for 0pt
chapter after=,
number position=rightname,
number color=\color{gray},
number after=\hspace{20pt},
number before=\space,
number font-size=\large,
number font-family=\sffamily,
number font-weight=\bfseries,
title before=,
title after=,
title afterskip={\vskip24pt},
title beforeskip={\vskip10pt},
title font=\rmfamily,
header style=plain,
}
}
% The |\@makechapterhead| is used by LaTeX to typeset the
% Chapter heading. This is a rewrite in order to make it
% more flexible and use the keys.
\renewcommand\@makechapterhead[2][]{%
% macro for typesetting the chapter number
\def\printnumber{%
\numberbefore@cx
{%
\numbercolor@cx
\numberfontsize@cx
\numberfontfamily@cx
\numberfontweight@cx
\thechapter
\numberpunctuation@cx
}
\numberafter@cx
}%
% macro for typesetting the chapter name
\def\printchaptername{%
{
\chapterfontfamily@cx
\chapterfontsize@cx
\chapterfontweight@cx
\color{\chaptercolor@cx}
% Check if the chapter name is spaced out and use the
% soul package. TODO add values for soul parameters
% as a style feature.
\if@chapterspaceout
\expandafter\so\expandafter{\chaptername}
\else
\@chapapp\space
\fi
}%
}%
% set all keys
{%
\parindent0pt
\normalfont%
\ifnum \c@secnumdepth>\m@ne%
\if@mainmatter%
% we start displaying the names and any preambles such
% as images
% print chapter name
\chapterbefore@cx%
\if@leftname
\printnumber
\fi%
\printchaptername
\if@rightname
\printnumber
\fi%
\chapterafter@cx
\fi%
\fi%
%chapter title
\interlinepenalty\@M%
% if the number is before the title
% if the number prints together with the title they
% are considered as one indivisible part.
\titlebeforeskip@cx%
\if@lefttitle%
\beforenumber@cx%
\counterdisplay\c@chapter\afternumber@cx%
\fi
% Display title
\titlefontfamily@cx
\titlefontweight@cx
\titlefontsize@cx
\titlefontcolor@cx
\selectfont
\titlebefore@cx%
\if@titlespaceout
\so{#2}%
\else
#2
\fi%
\titleafter@cx
\if@righttitle%
\afternumber@cx
\counterdisplay\c@chapter\afternumber@cx%
\fi
\par\nobreak%
% skip after title
\titleafterskip@cx
% headers
\thispagestyle{\headerstyle@cx}
}}
%% Special Chapter command
\newcommand\specialchapter@cx[2][]{%
\cxset{image/.store in=\image@cx,
image caption/.store in=\caption@cx}
\cxset{#1}
\vbox to 0pt{\color{blue}\rule{\paperwidth}{0.4pt}\par\vskip-1.4pt
\rule{0.4pt}{\textheight}\rule{4cm}{0.4pt}}
\vbox to 0pt{\parbox[b]{4.7cm}{%
\raggedright
\leftskip1.5cm
\caption@cx\par
\expandafter\rule{\rulewidth@cx}{5.8cm}
}\parbox[b]{0.5cm}{\includegraphics[width=0.5cm,height=9.15cm]{shadow2}}\includegraphics{\image@cx}\par}
\vspace{8.2cm}
\hspace*{-3.51cm}\hbox to 0pt{\hspace*{1.01cm}\includegraphics[width=7.7cm,height=3.8cm]{shadow4}
\hspace*{-2.7cm}\sffamily\color{\numbercolor@cx}\HHUGE \raise30pt\hbox{4}%
\hspace{1.5cm}\raise0.5pt\hbox{\includegraphics{shadow5}\includegraphics{shadow4}}
}
%% Title name
\parbox[b]{0.45\textwidth}{%
\titlefontsize@cx
\titlefontweight@cx
\titlefontfamily@cx
\leftskip0.5em \color{\titlefontcolor@cx}
#2
}
%% Concepts
}
\newenvironment{specialchapter}[2][]{%
\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\specialchapter@cx[#1]{#2}
\begin{minipage}{0.5\textwidth}%
\vspace{0.5\baselineskip}
\raggedright
}{\end{minipage}}
\end{filecontents*}
\usepackage{chapterx}
\usepackage{makeidx}
\makeindex
\author{Y Lazarides}
\title{\parindent0pt A New Approach in\\ Styling Chapters}
\begin{document}
\maketitle
\tableofcontents
\mainmatter
\setdefaults
\cxset{
name={CHAPTER CONCEPT},
numbering=none,
number font-size=,
number font-family=,
number font-weight=,
number color=white,
chapter color=theblue,
chapter font-family=\sffamily,
chapter font-size=\large,
chapter font-weight=\bfseries,
title font-family=\sffamily,
title font-color=theblue,
rule off,
}
\begin{specialchapter}[
image=catcute,%genetics-dogs,
image caption={Labrador retriever\\
puppies expressing\\
brown (chocolate),\\
golden (yellow),\\
and black\\
coat colors,\\
traits controlled\\
by two gene pairs.}]%
{Extensions\\ of Mendelian\\ Genetics}
\end{specialchapter}
\end{document}
结果: 我在设置目录和章节名称时遇到了问题,就像这张图片一样