![精美的章节标题](https://linux22.com/image/238934/%E7%B2%BE%E7%BE%8E%E7%9A%84%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98.png)
我正在寻找不错的预定义章节标题。我找到了fncychap
包,发现里面memoir
也有不少。
您知道其他提供预定义花式章节样式的软件包吗?
答案1
尽管memoir
课程、fancychap
和titlesec
其他课程都有一些预定义的章节样式,但我明白您在寻找更好的样式。
这里有两个问题需要考虑:
- 原始 LaTeX 结构和命令的局限性,
- 此类努力的印刷要求。
重新定义章节的困难之一是各种软件包以及 提供的不同机制LaTeX
。 使问题更加复杂的是 中的代码book.cls
至少分为四个块。
一种克服限制的方法,并提供一些更通用、更抽象的例程来定义类似于键提供的键值方法PGF
。我以前在这方面做过一些工作,典型的设置是:
\cxset{
name=\so{CHAPTER},
numbering=arabic,
number font-size=\large,
number before={},
number position=rightname,
chapter color={black!80},
chapter font-size=\large,
chapter before=\rule[3pt]{\textwidth}{0.4pt}\par\hfill,
number after=,
chapter after=\hfill\hfill\par\rule[6pt]{\textwidth}{0.4pt}\par,
number color=\color{black!80},
title font-family=\bfseries,
title font-color=\color{black!80},
title font-weight=,
title font-size=\LARGE,
title beforeskip=\hfill\par\hspace*{0pt},
header style=empty
}
尽管乍一看,键和代码似乎令人难以理解,但使用 可以大大简化styles
。因此,一旦定义了一组键,就可以将其存储在.style
命令中。此方法的另一个优点是,可以通过使用库轻松地合并社区设置。这对于TikZ
基于设计非常重要,因为形状和复杂性很难抽象出来。
这引出了与章节重新定义相关的问题的第二部分:排版。章节的外观和感觉必须与设计的其余部分相融合。例如,请考虑以下两张图片:
只对章节进行定义是没有用的。样式应该扩展到练习、表格、章节目录等。使用键值方法的类似方法可能会使这项任务更容易,并在社区中共享样式。最初我尝试使用.ini
文件并LuaLaTeX
加载它们。然而,键值方法更好,社区也更熟悉。
我从不同的书籍中收集了超过 50 种风格,并且已经准备好了可供实验的基本代码(仅适用于章节)。
现在是编码部分。首先,我们为所有主要元素定义键:
\def\cxset{\pgfqkeys{/chapter}}
\cxset{%
name/.code={\gdef\chaptername{#1}},
chapter font-family/.store in=\chapterfontfamily@cx,
...
}
由于我们想使用基本的 LaTeX 结构和约定,我们重新定义了 来
\@makechapterhead
处理键。请记住,有两个命令用于LaTeX
排版章节标题。一个用于命令的无星号版本,而另一个用于带星号版本。在我们的方法中,命令的星号版本是不必要的,因为我们可以定义一个键来指示排版引擎忽略编号(numbering=none
),因此我们将带星号和不带星号的版本都重定向到同一个宏。
\renewcommand\@makechapterhead[2][]{%
...
\titlebeforeskip@cx%
\if@lefttitle%
\beforenumber@cx%
\counterdisplay\c@chapter\afternumber@cx%
\fi
...
}
宏包含排版算法并与各种键挂钩。要排版章节标题,最简单的方法是将一组键定义为样式。例如,我们可以使用:
\cxset{manet/.style={
name={},
numbering=none,
...
}
定义样式“manet”。然后该章节的排版如下:
\cxset{manet}
\chapter{EDOUARD MANET}
\begin{multicols}{3}
\leftskip0pt
\lettrine{I}{psum dolor} sit amet latixeus. \lipsum*[1-2]
Latinicus porcupinus to fill the line.
\end{multicols}
给出以下结果:
稍加变化,我们就可以继承这种风格,得到“骑着黄蜂摩托车的红衣主教篇”:
\cxset{manet}
\topimage{<image file>}
\chapter{ALAN MacDONALD}
如果需要,可以定义附加键来满足所有字段的需求。
仅由文本部分组成的章节更容易定义。您只需设置样式编号即可。
\cxset{style7}
\chapter{Introduction to Style Seven}
...
\cxset{style12}
\chapter{Introduction to Style Twelve}
...
特殊章节开头需要不同的处理方式,最好将其描述为环境,因为它们往往包含许多文本部分和图像:
\begin{specialchapter}[
image=genetics-dogs,%chromosomes
image caption={Labrador retriever\\
...
by two gene pairs.}]%
{Extensions\\ of Mendelian\\ Genetics}
\begin{itemize}
...
\end{itemize}
\end{specialchapter}
上面的第二幅图只更改了图像键,只是为了说明该技术。有趣的是,这些图像采用传统的装箱技术放置,而不是使用tikZ
或picture commands
。阴影是通过拉伸“阴影”图像文件来实现的,就像在 HTML5 之前在网络上使用的那样。
该技术已被证明是有用的,易于定义,尽管文档仍需开发,代码需要良好的清理和一些必须做的事情;与此同时,您可以下载图片样本(在文档中使用),第x章包文件,文档tex 文件和文档 pdf 文件。
如果您有任何其他有趣的设计可以添加到我们的收藏中,请在聊天中与我联系。
答案2
你可以使用titlesec
和 TikZ 一起。这里有一个你可以修改颜色和形状的例子:
\documentclass[svgnames]{report}
\usepackage{tikz}
\usepackage{kpfonts}
\usepackage[explicit]{titlesec}
\newcommand*\chapterlabel{}
\titleformat{\chapter}
{\gdef\chapterlabel{}
\normalfont\sffamily\Huge\bfseries\scshape}
{\gdef\chapterlabel{\thechapter\ }}{0pt}
{\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\draw[fill=LightSkyBlue] (0,0) rectangle
(\paperwidth,3cm);
\node[anchor=east,xshift=.9\paperwidth,rectangle,
rounded corners=20pt,inner sep=11pt,
fill=MidnightBlue]
{\color{white}\chapterlabel#1};
\end{tikzpicture}
};
\end{tikzpicture}
}
\titlespacing*{\chapter}{0pt}{50pt}{-60pt}
\begin{document}
\tableofcontents
\chapter{Introduction}
Text
\chapter{Main}
\section{Section}
Text
\begin{thebibliography}{99}
\bibitem{Test} test reference
\end{thebibliography}
\end{document}
来源:TeX博客。
答案3
有没有更简单的解决方案可以避免使用复杂的 tikz 代码?好吧,这不是 TeXer 大师班,但是如果你想节省时间,请尝试以下解决方法:
- 例如,在 Microsoft Word 中绘制您喜欢的页面,并将文件保存为 PDF、JPG 或 PNG。
- 将其作为图片插入到您的 TeX-doc 中。对于 a4paper,代码将是...
\cleardoublepage \pagestyle{空}
{\centering\includegraphics[width=210mm,height=297mm,trim=+5mm 0 0 +5mm]{test.pdf}}
\addcontentsline{toc}{part}{Part 1 TestPart}
\newpage
\pagestyle{plain}
如您所见,我没有直接使用 \part{...}。默认情况下,“part”计数器对文章类中的部分和较低级别没有影响,因此当您将此部分添加到目录时,请不要忘记手动分配数字。