% This is file sectionbreak.sty %% (c) 2017--2018 Michal Hoftich \ProvidesPackage{sectionbreak}[2018-01-03 v0.1c (Michal Hoftich)] \usepackage{kvoptions} \DeclareStringOption[2em]{preskip} \DeclareStringOption[2em]{postskip} \DeclareStringOption[\relax]{style} \DeclareStringOption[~]{mark} \DeclareBoolOption{asterism} \ProcessKeyvalOptions* \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 \endinput