我正在使用文档类report
,并决定章节标题使用 Vincent Zoonekynd 的预定义样式之一,如下所示:
\documentclass{report}
\usepackage{xcolor}
\makeatletter
\def\LigneVerticale{\vrule height 1.5cm depth 0.9cm\hspace{0.1cm}\relax}
\def\LignesVerticales{%
\let\LV\LigneVerticale\LV\LV\LV\LV\LV\LV\LV\LV\LV\LV}
\def\GrosCarreAvecUnChiffre#1{{\setlength{\fboxsep}{-\fboxrule}%
\fbox{\color{white}%
\rlap{\vrule height 0.8cm width 1cm depth 0.2cm}%
\rlap{\hbox to 1cm{\hss\mbox{\color{black}#1}\hss}}%
\vrule height 0pt width 1cm depth 0pt}}}
\def\@makechapterhead#1{
\vspace*{-20pt}
\hbox{%
\huge\bfseries
\LignesVerticales
\hspace{-0.5cm}%
\GrosCarreAvecUnChiffre{\thechapter}
\hspace{0.2cm}\hbox{#1}%
}\par\vskip 0.5cm}
\def\@makeschapterhead#1
\vspace*{-20pt}
{\hbox{%
\huge\bfseries
\LignesVerticales
%\hspace{0.5cm}%
\hbox{#1}%
}\par\vskip 0.3cm}
\makeatother
\begin{document}
\chapter{Here we go}
\end{document}
然而,我想做出一些改变。
我需要将所有构造移至页面上方,换句话说,以使任何页面顶部和构造之间的空间更小。
我想换小盒子。我更喜欢白色方块加黑色数字(而不是这种黑色方块加白色数字)。
答案1
由于您已重新定义
\@makechapterhead
和\@makeschapterhead
(分别负责使用\chapter
和创建整个章节标题\chapter*
),因此章节标题从文本块的顶部开始。您可能指的是将整个文本块向上移动(或减少顶部边距)。为此,我建议使用geometry
。以下是提供所需内容的 MWE。但是,插入带有黑色数字的白色块不会按需要显示:
\documentclass{report} \usepackage{showframe}% http://ctan.org/pkg/showframe \usepackage{xcolor}% http://ctan.org/pkg/xcolor \makeatletter \def\LigneVerticale{\vrule height 2cm depth 1.4cm\hspace{0.1cm}\relax} \def\LignesVerticales{% \let\LV\LigneVerticale\LV\LV\LV\LV\LV\LV\LV\LV\LV\LV} \def\GrosCarreAvecUnChiffre#1{{% \color{white}% \rlap{\vrule height 0.8cm width 1cm depth 0.2cm}% \rlap{\hbox to 1cm{\hss\mbox{\color{black}#1}\hss}}% \vrule height 0pt width 1cm depth 0pt}} \def\@makechapterhead#1{\hbox{% \huge\bfseries \LignesVerticales \hspace{-0.5cm}% \GrosCarreAvecUnChiffre{\thechapter} \hspace{0.2cm}\hbox{#1}% }\par\vskip 0.3cm} \def\@makeschapterhead#1{\hbox{% \huge\bfseries \LignesVerticales %\hspace{0.5cm}% \hbox{#1}% }\par\vskip 0.3cm} \makeatother \begin{document} \chapter{A chapter} \end{document}
以下定义
\GrosCarreAveUnChiffre
\def\GrosCarreAvecUnChiffre#1{{\setlength{\fboxsep}{-\fboxrule}% \fbox{\color{white}% \rlap{\vrule height 0.8cm width 1cm depth 0.2cm}% \rlap{\hbox to 1cm{\hss\mbox{\color{black}#1}\hss}}% \vrule height 0pt width 1cm depth 0pt}}}
产生一个盒子章节编号:
另一种选择是垂直移动标题结构,方法是使用
\def\@makechapterhead#1{% \vspace*{\dimexpr-\headsep-\headheight-\baselineskip}% \hbox{% \huge\bfseries \LignesVerticales \hspace{-0.5cm}% \GrosCarreAvecUnChiffre{\thechapter} \hspace{0.2cm}\hbox{#1}% }\par\vskip 0.3cm} \def\@makeschapterhead#1{% \vspace*{\dimexpr-\headsep-\headheight-\baselineskip}% \hbox{% \huge\bfseries \LignesVerticales %\hspace{0.5cm}% \hbox{#1}% }\par\vskip 0.3cm}
这会将垂直线移至页眉顶部。当然,
\vspace*
用固定尺寸(例如-30pt
)替换其中的表达式将使其垂直位移该量。showframe
被添加来突出显示文本块边界(响应上面的(1))。