|
Mysterious Light |
|
|
|
Условие: 1) между заголовком и подзаголовком (т.е. их основными линиями) должно быть 10мм, 2) между (под)заголовком и текстом 10мм, 3) между текстом и последующим (под)заголовком 15мм.
Я переопределяю \section и \subsection и использую \@startsection, поэтому хотел эту задачу решить при помощи расстояний через соотв. аргументы. Но оказалось, что подзаголовок не различает, когда он идёт после текста, а когда после заголовка, поэтому либо (1), либо (3) нарушается, либо нужно компенсировать пост-промежутком заголовка; в то же время заголовок не различает, когда идёт перед текстом, а когда перед подзаголовком, поэтому либо (2), либо (3) нарушается, либо нужно компенсировать пред-промежутком подзаголовка.
Крутил по-разному, все три условия удовлетворить не получилось.
|
|
|
|
 |
|
Mysterious Light |
|
|
Надеюсь, что поможет. ((1) и (2) удовлетворено, (3) частично)
\documentclass{article}
\makeatletter
\newlength{\@aftersecskip}
\setlength{\@aftersecskip}{10mm}
\addtolength{\@aftersecskip}{-\baselineskip}
\newlength{\@beforesecskip}
\setlength{\@beforesecskip}{15mm}
\addtolength{\@beforesecskip}{-\baselineskip}
\renewcommand{\section}{
\@startsection{section}{1}{\parindent}{\@sb}{\@sa}{}
}
\renewcommand{\subsection}{
\@startsection{subsection}{1}{\parindent}{\@ssb}{\@ssa}{}
}
\def\@sb{\@beforesecskip}
\def\@sa{\@aftersecskip}
\def\@ssb{\z@}
\def\@ssa{\@aftersecskip}
\begin{document}
Text
\section{Section 1}
\subsection{Subsection 1}
Text\par Text
\subsection{Subsection 2}
Text
\section{Section 2}
Text
\end{document}
|
|
|
|
 |
|
Red_Herring |
|
|
|
Посмотрите документацию к пакету titlesec
|
|
|
|
 |