summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/thinsp/thinsp.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/thinsp/thinsp.sty')
-rw-r--r--macros/latex/contrib/thinsp/thinsp.sty106
1 files changed, 106 insertions, 0 deletions
diff --git a/macros/latex/contrib/thinsp/thinsp.sty b/macros/latex/contrib/thinsp/thinsp.sty
new file mode 100644
index 0000000000..f1070a09ce
--- /dev/null
+++ b/macros/latex/contrib/thinsp/thinsp.sty
@@ -0,0 +1,106 @@
+% Copyright (C) 2007, 2016 Palle Jorgensen
+
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see
+% <http://www.gnu.org/licenses/>.
+
+\ProvidesPackage{thinsp}[2016/10/02 v 0.2 Package providing stretchable thinspaces]
+
+\newif\if@thinsp@thinspace
+\@thinsp@thinspacetrue
+\DeclareOption{nothinspace}{\@thinsp@thinspacefalse}
+\DeclareOption{thinspace}{\@thinsp@thinspacetrue}
+
+\newif\if@thinsp@thinthinspace
+\@thinsp@thinthinspacetrue
+\DeclareOption{nothinthinspace}{\@thinsp@thinthinspacefalse}
+\DeclareOption{thinthinspace}{\@thinsp@thinthinspacetrue}
+
+
+\newif\if@thinsp@negthinspace
+\@thinsp@negthinspacefalse
+\DeclareOption{nonegthinspace}{\@thinsp@negthinspacefalse}
+\DeclareOption{negthinspace}{\@thinsp@negthinspacetrue}
+
+\def\thinsp@thinamount{.5}
+\def\thinsp@thinthinamount{.25}
+
+\DeclareOption{onethird}{%
+ \def\thinsp@thinamount{.333}%
+ \def\thinsp@thinthinamount{.167}%
+}
+
+\DeclareOption{onehalf}{%
+ \def\thinsp@thinamount{.5}%
+ \def\thinsp@thinthinamount{.25}%
+}
+
+\DeclareOption{twothirds}{%
+ \def\thinsp@thinamount{.667}%
+ \def\thinsp@thinthinamount{.333}%
+}
+
+\ProcessOptions*
+
+\def\stretchthinspace{%
+ \nobreak\hskip\thinsp@thinamount\fontdimen2\font%
+ \@plus\thinsp@thinamount\fontdimen3\font%
+ \@minus\thinsp@thinamount\fontdimen4\font%
+ \relax%
+}
+
+\def\stretchnegthinspace{%
+ \nobreak\hskip-\thinsp@thinamount\fontdimen2\font%
+ \@plus\thinsp@thinamount\fontdimen4\font%
+ \@minus\thinsp@thinamount\fontdimen3\font%
+ \relax%
+}
+
+\def\stretchthinthinspace{%
+ \nobreak\hskip\thinsp@thinthinamount\fontdimen2\font%
+ \@plus\thinsp@thinthinamount\fontdimen3\font%
+ \@minus\thinsp@thinthinamount\fontdimen4\font%
+ \relax%
+}
+
+\AtBeginDocument{%
+ \if@thinsp@thinspace
+ \PackageInfo{thinsp}{Redefining \string\thinspace}
+ \let\thinspace\stretchthinspace
+ \@ifpackageloaded{amsmath}{%
+ \PackageInfo{thinsp}{And now redefining AMS-math's
+ \string\thinspace}
+ \def\,{\ifmmode\mskip\thinmuskip\else\stretchthinspace\fi}%
+ \let\thinspace\,%
+ }
+ \fi
+ %
+ \if@thinsp@negthinspace
+ \PackageInfo{thinsp}{Redefining \string\negthinspace}
+ \let\negthinspace\stretchnegthinspace
+ \@ifpackageloaded{amsmath}{%
+ \PackageInfo{thinsp}{And now redefining AMS-math's
+ \string\negthinspace}
+ \def\!{\ifmmode\mskip-\thinmuskip\else\stretchnegthinspace\fi}%
+ \let\negthinspace\!%
+ }
+ \fi
+ %
+ \if@thinsp@thinthinspace
+ \@ifundefined{thinthinspace}{}{%
+ \PackageInfo{thinsp}{Redefining \string\thinthinspace}}
+ \let\thinthinspace\stretchthinthinspace
+ \fi
+}
+
+\endinput \ No newline at end of file