% 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 % . \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