blob: fa6891e2115f1ed7e868445b11125e1eea32754e (
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
% Copyright (C) 2007 Palle Jorgensen
% This file 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 2 of the License, or
% (at your option) any later version.
% This file 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 file; if not, write to the Free Software Foundation,
% Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
\ProvidesPackage{thinsp}[2007/30/11 v 0.1 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\fontdimen2\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
|