如何使用这种章节样式以使其占用更少的空间?

如何使用这种章节样式以使其占用更少的空间?

我喜欢这里的盒装章节风格:http://hstuart.dk/2007/05/21/styling-the-chapter/

以下是基于此风格的 MWE:

\documentclass{memoir}
\usepackage{tikz, blindtext}
\makechapterstyle{box}{
  \renewcommand*{\printchaptername}{}
  \renewcommand*{\chapnumfont}{\normalfont\sffamily\huge\bfseries}
  \renewcommand*{\printchapternum}{
    \flushright
    \begin{tikzpicture}
      \draw[fill,color=black] (0,0) rectangle (2cm,2cm);
      \draw[color=white] (1cm,1cm) node { \chapnumfont\thechapter };
    \end{tikzpicture}
  }
  \renewcommand*{\chaptitlefont}{\normalfont\sffamily\Huge\bfseries}
  \renewcommand*{\printchaptertitle}[1]{\flushright\chaptitlefont##1}
}
\chapterstyle{box}
\begin{document}
\chapter{Fancy chapter with TikZ}
\blindtext
\end{document}

现在我想消除 1 和 2 所表示的部分空白(即框的上方和下方,但主要是框的上方)。当然应该留出一些空白,但我不想让章节标题占用太多空间,所以空白应该比较小。有什么想法可以实现这一点吗?

附加问题:我可以在使用该课程的同时完成所有事情吗report(我不知道该memoir课程以后可能给我带来什么不利影响)?

提前致谢。 在此处输入图片描述

答案1

你在这。

\documentclass{report}
\usepackage{tikz, blindtext,showframe}  %% blindtext,showframe just for demo
\usepackage{titlesec}
\newcommand*{\chapnumfont}{\normalfont\sffamily\huge\bfseries}
\newcommand*{\chaptitlefont}{\normalfont\sffamily\Huge\bfseries}
\newcommand{\mybox}{%
\begin{tikzpicture}
      \draw[fill,color=black] (0,0) rectangle (2cm,2cm);
      \draw[color=white,font=\chapnumfont] (1cm,1cm) node {\thechapter};
    \end{tikzpicture}%
}
\titleformat{\chapter}[display]
{}{\filleft\mybox}{20pt}{\filleft\chaptitlefont}
\titlespacing*{\chapter} {0pt}{0pt}{0pt}
\begin{document}
\chapter{Fancy chapter with TikZ}
\blindtext
\end{document}

调整默认值\titlespacing*{\chapter} {0pt}{0pt}{0pt}\titlespacing*{\chapter} {0pt}{50pt}{40pt}我将它们全部设为零。

在此处输入图片描述

是章节号和标题之间的垂直20pt间距。如果需要,请调整...\mybox}{20pt}...\titleformat

答案2

您想要设置以下具体参数memoir

\documentclass{memoir}
\usepackage{tikz, blindtext,showframe}
\makechapterstyle{box}{%
  \setlength{\beforechapskip}{0pt}% was 50pt
  \setlength{\midchapskip}{20pt}%
  \setlength{\afterchapskip}{20pt}% was 40pt
  \renewcommand*{\printchaptername}{}%
  \renewcommand*{\chapnumfont}{\normalfont\sffamily\huge\bfseries}%
  \renewcommand*{\printchapternum}{%
    \flushright
    \begin{tikzpicture}
      \draw[fill,color=black] (0,0) rectangle (2cm,2cm);
      \draw[color=white] (1cm,1cm) node { \chapnumfont\thechapter };
    \end{tikzpicture}%
  }%
  \renewcommand*{\chaptitlefont}{\normalfont\sffamily\Huge\bfseries}%
  \renewcommand*{\printchaptertitle}[1]{\flushright\chaptitlefont##1}%
}

\chapterstyle{box}
\begin{document}
\chapter{Fancy chapter with TikZ}
\blindtext
\end{document}

我曾经showframe使各个页面部分的边界框变得明显。

在此处输入图片描述

相关内容