summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/parades/paravesp.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/parades/paravesp.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/parades/paravesp.sty')
-rw-r--r--macros/latex/contrib/parades/paravesp.sty58
1 files changed, 58 insertions, 0 deletions
diff --git a/macros/latex/contrib/parades/paravesp.sty b/macros/latex/contrib/parades/paravesp.sty
new file mode 100644
index 0000000000..5f983dd316
--- /dev/null
+++ b/macros/latex/contrib/parades/paravesp.sty
@@ -0,0 +1,58 @@
+\ProvidesPackage{paravesp}[2016/02/05 space above and below paragraphs]
+
+\newcount\pd@lastpenalty
+
+\newcommand\pd@remember@penalty{\pd@lastpenalty=\lastpenalty\relax}
+
+\newcommand\pd@restore@penalty{\ifnum 0=\pd@lastpenalty \else
+ \penalty\pd@lastpenalty\relax \fi}
+
+\newcommand\ParaSpaceAbove[1]{\relax % Mask \ifdim from possible expansion
+\ifvmode
+ \skip0=#1\relax
+ \ifdim\parskip<0pt\relax
+ \skip0=0pt\relax
+ \fi
+ \ifdim\skip0=0pt\relax
+ \IssueParaSpace
+ \else
+ \ifdim\prevdepth>-1000pt\relax
+ \advance\parskip by \prevdepth\relax % assumed: was set by SpaceBelow
+ \pd@remember@penalty
+ \vskip-\prevdepth\relax
+ \pd@restore@penalty
+ \prevdepth=-1000pt\relax
+ \fi
+ \ifdim\skip0>\parskip\relax
+ \parskip=#1\relax
+ \fi
+ \fi
+\fi
+}
+
+\newcommand\ParaSpaceBelow[1]{\relax
+\parskip=#1\relax
+\advance\parskip by -\prevdepth\relax
+\ifdim\parskip<0pt\relax
+ \ifdim#1<0pt\relax \parskip=#1\relax \else \parskip=0pt\relax \fi
+ \nointerlineskip
+\else% >=10000pt
+ \ifdim\parskip>999pt\relax \parskip=#1\relax\fi
+\fi}
+
+\newcommand\IssueParaSpace{\relax
+\ifhmode \typeout{! LaTeX warning: IssueParaSpace in horizontal mode.}\par \fi
+\ifdim\parskip>0pt\relax
+ \pd@remember@penalty
+ \vskip\parskip\relax
+ \pd@restore@penalty
+ \prevdepth=-1000pt\relax
+ \parskip=0pt\relax
+\fi
+}
+
+\newcommand\IgnoreSpaceAboveNextPara{%
+\ParaSpaceBelow{-0.01pt}}
+
+\newcommand\CancelIgnoreSpaceAboveNextPara{%
+\relax\ifdim\parskip<0pt\relax \parskip=0pt\relax \fi}