我正在尝试制作一个章节标题样式来模仿如下图像:
我目前有以下代码,但不确定如何将行放在中间,并将章节标题放在章节编号下方。
\documentclass{book}
\usepackage{titlesec, blindtext, color}
\usepackage{titlesec}
\titleformat{\chapter}{\Huge}{\Large CHAPTER \Huge\thechapter\newline}{0pt}{\Huge}
\begin{document}
\chapter{Turing Machines}
\end{document}
也与此任务相关:我想知道是否有任何方法可以选择性地自定义节标题的字体,而无需更改整个文档的默认字体。我pdflatex
在 Windows 上通过 MiKTeX 使用,我尝试过的一个包 - 我现在忘记了它的名字,但我想它可能有fontspec
- 无法使用pdflatex
。
答案1
我有一段以前从德国网站上拿来的代码(可惜找不到了)。稍加修改就可以了部分类似于您正在寻找的内容。也许这是一个很好的起点:
\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{xcolor}
\colorlet{chapter}{cyan}
\addtokomafont{chapter}{\color{chapter}}
\makeatletter
\renewcommand*{\chapterformat}{
\begingroup
\setlength{\unitlength}{1mm}
\begin{picture}(40,30)(0,5)
\setlength{\fboxsep}{0pt}
\put(0,15){\line(1,0){\dimexpr
\textwidth-1\unitlength\relax\@gobble}}
\put(40,15){\makebox(\dimexpr
\textwidth-20\unitlength\relax\@gobble,\ht\strutbox\@gobble)[l]{
\ \normalsize\color{cyan}\chapapp~\thechapter\autodot
}}
\end{picture}
\endgroup
}
\makeatother
\begin{document}
\chapter{Alan Turing}
\end{document}
答案2
我最终通过使用 tikz 完成了此操作。
忽略文本 - 这是一项正在进行的工作,以及它的格式。但我得到了我想要的章节标题,经过一番尝试后发现它与上面的图片有点不同。
\usepackage{kpfonts}
\usepackage[explicit]{titlesec}
\usepackage{tikz}
\titleformat{\chapter}
{\normalfont\sffamily\Huge\scshape}
{}{0pt}
{\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\draw[fill=cyan] (0,-1) rectangle
(\paperwidth,3cm);
\node[anchor=west,xshift=.21\paperwidth,yshift=-.01\paperheight,rectangle]
{\color{white}\LARGE CHAPTER \Huge\thechapter};
\node[anchor=west,xshift=.21\paperwidth,yshift=-.065\paperheight,rectangle]
{\color{cyan}\Huge\MakeUppercase{#1}};
\end{tikzpicture}
};
\end{tikzpicture}
}
\titlespacing*{\chapter}{0pt}{50pt}{0pt}
\begin{document}
\chapter{Test}
\end{chapter}
我正在使用定制的类文件,因此我只包含了我认为显示标题的最低限度的内容……它最终看起来不会与此图像中的间距和其他文本定位完全一样。
答案3
\documentclass{report}
\usepackage{kpfonts}
\usepackage[explicit]{titlesec}
\usepackage{tikz}
\makeatletter
\newcommand{\gettikzxy}[3]{%
\tikz@scan@one@point\pgfutil@firstofone#1\relax
\edef#2{\the\pgf@x}%
\edef#3{\the\pgf@y}%
}
\makeatother
\titleformat{\chapter}
{\normalfont\sffamily\Huge\scshape}
{}{0pt}
{\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\node(chapter)[anchor=west,xshift=.21\paperwidth,yshift=-.01\paperheight,rectangle]
{\color{cyan}\normalsize CHAPTER \Huge\thechapter};
\gettikzxy{(chapter)}{\chapterx}{\chaptery}
\draw[color=cyan] (0,\chaptery-25) -- ++ (\paperwidth,0);
\node[anchor=west,xshift=.21\paperwidth,yshift=-.065\paperheight,rectangle]
{\color{cyan}\Huge\bfseries\MakeUppercase{#1}};
\end{tikzpicture}
};
\end{tikzpicture}
}
\titlespacing*{\chapter}{0pt}{50pt}{0pt}
\begin{document}
\chapter{Speaking mathematically}
\end{document}