blob: 28b653b78824ce61f4ca1850d767f9406a2029ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
% This is file sectionbreak.sty
%% (c) 2017--2018 Michal Hoftich
\ProvidesPackage{sectionbreak}[2019-03-11 v0.1d (Michal Hoftich)]
\RequirePackage{kvoptions}
\DeclareStringOption[\relax]{preskip}
\DeclareStringOption[\relax]{postskip}
\DeclareStringOption[\relax]{skip}
\DeclareStringOption[\relax]{style}
\DeclareStringOption[~]{mark}
\DeclareBoolOption{asterism}
\DeclareBoolOption{disable}
\ProcessKeyvalOptions*
% the skip option can be used to set both preskip and postskip
\if\sectionbreak@skip\relax\else%
% set skips only if the options haven't been used
\if\sectionbreak@preskip\relax%
\def\sectionbreak@preskip{\sectionbreak@skip}%
\fi%
\if\sectionbreak@postskip\relax%
\def\sectionbreak@postskip{\sectionbreak@skip}%
\fi%
\fi
% add default value for preskip
\if\sectionbreak@preskip\relax%
\def\sectionbreak@preskip{2em}%
\fi
% add default value for postskip
\if\sectionbreak@postskip\relax%
\def\sectionbreak@postskip{2em}%
\fi
\newdimen\asterism@width
% asterism is character which consists of three asterisks layed out as a triangel
\newcommand\asterism{%
\settowidth{\asterism@width}{*}%
% these values were found by trial and error
\raise-0.6\asterism@width\hbox{*\kern-.6\asterism@width\raise.7\asterism@width\hbox{*}\kern-.6\asterism@width*}%
}
\newcommand\pre@sectionbreak{\par\vskip\sectionbreak@preskip\relax}
\newcommand\post@sectionbreak{\par\vskip\sectionbreak@postskip\relax}
% print centered section break mark
\newcommand\print@sectionbreak[1]{%
\bgroup%
\noindent\null\hfill\sectionbreak@style\hbox{#1}\hfill\null\par%
\egroup%
}
% default section break mark is an unbreakable space
\newcommand\sectionbreak[1][\sectionbreak@mark]{%
\pre@sectionbreak%
\print@sectionbreak{#1}%
\post@sectionbreak%
}
\newcommand\sectionbreakmark[1]{%
\gdef\sectionbreak@mark{#1}%
}
% test the asterism option and set the section mark accordingly
\ifsectionbreak@asterism
\sectionbreakmark{\asterism}
\fi
% disable the section break in the document with the `disable` option
\ifsectionbreak@disable%
\renewcommand\sectionbreak[1][]{}%
\fi
\endinput
|