如何更改章节标题的字体/布局?

如何更改章节标题的字体/布局?

我正在尝试制作一个章节标题样式来模仿如下图像:

在此处输入图片描述

我目前有以下代码,但不确定如何将行放在中间,并将章节标题放在章节编号下方。

\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}

相关内容