blob: 54d4b54d35aa3df3795b3b6cece0896f6850aa9c (
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
|
%% Fonts
\newcount\thespacing
\newdimen\size
\begingroup
\edef\specialAt{{ \string a\string t }}%
\def\x#1{%
\def\getfontsize##1=##2{% The user level macro
\expandafter\getfontsizE\fontname##2#1\relax{##1}%
}%
\def\getfontsizE##1#1##2\relax##3{%
\ifx*##2*% Loaded at designsize
\begingroup
\font\tmpfont"##1" scaled 2000
\getfontsize\dimen0=\tmpfont
\divide\dimen0 by 2
\expandafter
\endgroup
\expandafter\getfontsiZe\the\dimen0\relax{##3}%
\else% Otherwise #2 holds the size. But is is followed by " at ", so we have to strip that
\getfontsiZE{##3}##2%
\fi
}%
\def\getfontsiZE##1##2#1{##1=##2}% Strip " at "
\def\getfontsiZe##1\relax##2{##2=##1}
}
\expandafter\expandafter\expandafter
\endgroup
\expandafter\x\specialAt % From StackOverflow
{
\catcode`\@=11
\global\let\f@nt\font
\gdef\spacing{
\afterassignment\adjs \thespacing}
\gdef\adjs{%adjust spacing
\baselineskip=\size \multiply\baselineskip by \thespacing
\divide\baselineskip by 100\relax}
\gdef\font#1{%
\def\orig{#1}\edef\realname{\csname\string#1@font\endcsname}
\afterassignment\xfont
\expandafter\f@nt\realname
}
\gdef\xfont{
\expandafter\getfontsize\expandafter\dimen0\expandafter=\realname
\expandafter\expandafter\expandafter\def
\expandafter\orig\expandafter{\realname\size\dimen0\adjs}
}
}
|