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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
|
% This file is based on Knuth's and Levy's "testfont"files
%
% The text is taken from the book of Kwsto'ula Mhtropo'ulou, Za'ar 19.
%
\tracinglostchars=0
\tolerance=1000
\raggedbottom
\nopagenumbers
\parindent=0pt
\newlinechar=`@
\input rgreekmacros %not necessary if you have a greek format
\newcount\m \newcount\n \newcount\p \newdimen\dim
\chardef\other=12
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}
\def\hours{\n=\time \divide\n 60
\m=-\n \multiply\m 60 \advance\m \time
\twodigits\n\twodigits\m}
\def\twodigits#1{\ifnum #1\lt10 0\fi \number#1}
{\catcode`\|=0 \catcode`\\=\other
|gdef|help{|message{%
\init switches to another font;@%
\end or \bye finishes the run;@%
\table prints the font layout in tabular format;@%
\text prints a sample text, assuming TeX text font conventions;@%
\sample combines \table and \text;@%
\mixture mixes a background character with a series of others;@%
\alternation interleaves a background character with a series;@%
\alphabet prints all lowercase letters within a given background;@%
\alphabets does one \alphabet for each lowercase background letter;@%
\ALPHABET prints all uppercase letters within a given background;@%
\ALPHABETs does one \ALPHABET for each uppercase background letter;@%
\accents prints all lowercase vowels with accents and breathings;@%
\series prints a series of letters withing a given background;@%
\lowers prints a comprehensive test of lowercase;@%
\uppers prints a comprehensive test of uppercase;@%
\digits prints a comprehensive test of numerals;@%
\math prints a comprehensive test of TeX math italic;@%
\names prints a text that mixes upper and lower case;@%
\punct prints a punctuation test;@%
\bigtest combines many of the above routines;@%
\help repeats this message;@%
and you can use ordinary TeX commands (e.g., to \input a file).}}}
\def\setbaselineskip{\setbox0=\hbox{\n=0
\loop\char\n \ifnum \n\lt255 \advance\n 1 \repeat}
\baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 }
\def\setchar#1{{\escapechar-1\message{\string#1 character = }%
\def\do##1{\catcode`##1=\other}\dospecials
\read-1 to\next
\expandafter\finsetchar\next\next#1}}
\def\finsetchar#1#2\next#3{\global\chardef#3=`#1
\ifnum #3=`\# \global\chardef#3=#2 \fi}
\def\promptthree{\setchar\background
\setchar\starting \setchar\ending}
\def\init{\message{@Name of the font to test = }
\read-1 to\fontname
\font\testfont=\fontname
\headline={\sevenrm Test of \fontname\unskip\ on \today\ at \hours\hfil
Page \folio}
\testfont \setbaselineskip
\ifdim\fontdimen6\testfont\lt10pt \rightskip=0pt plus 20pt
\else\rightskip=0pt plus 2em \fi
\spaceskip=\fontdimen2\testfont % space between words (\raggedright)
\xspaceskip=\fontdimen2\testfont \advance\xspaceskip by\fontdimen7\testfont
\message{Now type a test command (\string\help\space for help):}}
\def\mixture{\promptthree \domix\mixpattern}
\def\alternation{\promptthree \domix\altpattern}
\def\mixpattern{\0\1\0\0\1\1\0\0\0\1\1\1\0\1}
\def\altpattern{\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0}
\def\domix#1{\par\chardef\0=\background \n=\starting
\until\ifnum\n=\ending\do\chardef\1=\n #1\par\n=\count\n \repeat}
\count`w=`a\count`a=`b\count`b=`g\count`g=`d\count`d=`e\count`e=`z
\count`z=`h\count`h=`j\count`j=`i\count`i=`k\count`k=`l\count`l=`m
\count`m=`n\count`n=`x\count`x=`o\count`o=`p\count`p=`r\count`r=`c
\count`c=`t\count`t=`u\count`u=`f\count`f=`q\count`q=`y\count`y=`w
\count`W=`A\count`A=`B\count`B=`G\count`G=`D\count`D=`E\count`E=`Z
\count`Z=`H\count`H=`J\count`J=`I\count`I=`K\count`K=`L\count`L=`M
\count`M=`N\count`N=`X\count`X=`O\count`O=`P\count`P=`R\count`R=`S
\count`S=`T\count`T=`U\count`U=`F\count`F=`Q\count`Q=`Y\count`Y=`W
\count`0=`1\count`1=`2\count`2=`3\count`3=`4\count`4=`5
\count`5=`6\count`6=`7\count`7=`8\count`8=`9\count`9=`0
\long\def\until#1\do#2\repeat{\def\body{#2}\def\cond{#1}\etareti}
\def\etareti{\cond\let\next=\relax\else\let\next=\etareti\fi\body\next}
\def\alphabet{\setchar\background \dosseries{`a}{`w}}
\def\ALPHABET{\setchar\background \doseries{`A}{`W}}
\def\series{\promptthree \doseries\starting\ending}
\def\doseries#1#2{\def\!{\discretionary{\background}{\background}{\background}}
\!\n=#1\until\ifnum\n=#2\do\char\n\!\n=\count\n \repeat\par}
\def\dosseries#1#2{\def\!{\discretionary{\background}{\background}{\background}}
\!\n=#1\until\ifnum\n=#2\do\char\n\!\n=\count\n \repeat s\par}
\def\lowers{\docomprehensive hs{`a}{`w}}
\def\uppers{\docomprehensive HO{`A}{`W}}
\def\digits{\docomprehensive H0{`0}{`9}}
\def\docomprehensive#1#2#3#4{\par\n=#3
\until\ifnum\n=#4\do\line{\altr#1\hfil\altr#2}\n=\count\n\repeat}
\def\altr#1{\setbox0=\hbox{#1}\setbox2=\hbox{#1\char\n}%
\dim=.5\hsize \advance\dim-\wd0 \divide\dim\wd2 \multiply\dim\wd2
\xleaders\box2\hskip\dim\box0}
\def\alphabets{\m=`a\until\ifnum\m=`w
\do\chardef\background=\m{\dosseries{`a}{`w}}\m=\count\m \repeat}
\def\ALPHABETS{\m=`A\until\ifnum\m=`W
\do\chardef\background=\m{\doseries{`A}{`W}}\m=\count\m \repeat}
\def\separator{\vfil\penalty-100\vfilneg
\medskip\leaders\hrule height.4pt\vskip.4pt\medskip}
\def\bigtest{%
\sample\vfil\break
\accents\separator
\names\separator
\punct\separator
\alphabets\separator
\lowers\separator
\uppers\separator
\digits}
\def\math{\message{(Sorry, that's not here yet.)}}
\def\oct#1{\hbox{\tenrm\'{}\kern-.2em\tenit#1\/\kern.05em}} % octal constant
\def\hex#1{\hbox{\tenrm\H{}\tentt#1}} % hexadecimal constant
\def\setdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal
\m=\n \divide\m by 64 \xdef\0{\the\m}%
\multiply\m by-64 \advance\m by\n \divide\m by 8 \xdef\1{\the\m}}
\def\testrow{\setbox0=\hbox{\penalty 1\def\\{\char"\h}%
\\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F%
\global\p=\lastpenalty}} % \p=1 if none of the characters exist
\def\oddline{\cr
\noalign{\nointerlineskip}
\multispan{19}\hrulefill&
\setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr
\noalign{\nointerlineskip}}
\newif\ifskipping
\def\evenline{\loop\skippingfalse
\ifnum\n\lt128 \m=\n \divide\m 16 \chardef\next=\m
\expandafter\setdigs\meaning\next \testrow
\ifnum\p=1 \skippingtrue \fi\fi
\ifskipping \global\advance\n 16 \repeat
\ifnum\n=128 \let\next=\endchart\else\let\next=\morechart\fi
\next}
\def\morechart{\cr\noalign{\hrule}
\chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m}
\chartline \evenline}
\def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&}
\def\chartstrut{\lower4.5pt\vbox to14pt{}}
\def\table{$$\global\n=0
\halign to\hsize\bgroup
\chartstrut##\tabskip0pt plus10pt&
&\hfil##\hfil&\vrule##\cr
\lower6.5pt\null
&&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline}
\def\endchart{\cr\noalign{\hrule}
\raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B&
&\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$\par}
\def\:{\setbox0=\hbox{\char\n}%
\ifdim\ht0>7.5pt\reposition
\else\ifdim\dp0>2.5pt\reposition\fi\fi
\box0\global\advance\n 1 }
\def\reposition{\setbox0=\vbox{\kern2pt\box0}\dim=\dp0
\advance\dim 2pt \dp0=\dim}
\def\centerlargechars{
\def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}}
\begingreek
\def\accents{\longseries a\shortseries e\longseries h\mediumseries i
\shortseries o\mediumseries u\longseries w \rseries}
\def\longseries#1{#1 `#1 '#1 ~#1 #1| `#1| '#1| ~#1| <#1 <`#1 <'#1 <~#1 <#1|
<`#1| <'#1| <~#1| >#1 >`#1 >'#1 >~#1 >#1| >`#1| >'#1| >~#1| \par}
\def\shortseries#1{#1 `#1 '#1 <#1 <`#1 <'#1 >#1 >`#1 >'#1 \par}
\def\mediumseries#1{#1 `#1 '#1 ~#1 %
<#1 <`#1 <'#1 <~#1 >#1 >`#1 >'#1 >~#1 "#1 "`#1 "'#1 "~#1 \par}
\def\rseries{r <r >r\par}
\def\names{ >Afrod'ith Beatr'ikh Gi'annhc Dhm'htrhc E>ugen'ia
Zw'h <Hrakl~hc Je'ofiloc >Iw'anna Kl'aouc Louk~ac
Mar'ia N'ikh Xanjo'ula O>id'ipouc Pl'atwn Rox'anh S'ilbio
Ter'eza <Upat'ia F'ilippoc Qar'a Yuq'h >Wrig'enhc \par}
\def\punct{{\hyphenpenalty=10000\par\dopunct{ka'i}\dopunct{t~hs}\dopunct{<'ena}
\dopunct{<ELLAS}\par}}
\def\dopunct#1{#1, #1: #1; ''#1'' #1? #1! ((#1)) (#1) [#1] #1* #1.\par}
\def\from#1{{\sevenrm\unskip\nobreak\hfil\penalty50\hskip2em\hbox{}
\nobreak\hfil (From #1)\parfillskip=0pt\finalhyphendemerits=0 \par}}
\def\text{{\advance\baselineskip-4pt
\setbox0=\hbox{abcdefghijklmnopqrstuvwxyz}
\ifdim\hsize\gt2\wd0 \ifdim 15pc\gt2\wd0 \hsize=15pc \else \hsize=2\wd0 \fi\fi
((T'o br~hka!)) f'wnaxe. ((T'o br~hka! E>~isai <'ena pr'oswpo m'esa >ap'o
<'ena bibl'io po'u pot'e d'en gr'afthke, giat'i >eg'w prosp'ajhsa, >eg'w
m'ono, ka'i m''a>ut'h t'h nekr'h gl'wssa ka'i d'en mp'oresa n'a t'o p~w, n'a
t'o fti'axw, d'en mp'oresa pot'e, giat'i <h gl'wssa e>~inai nekr'h,
>endi'amesh, mi'a gl'wssa gi'a poiht'ec, gi'a >anjr'wpouc po'u >oneire'uontai
s'an a>ut'o t'o paid'i, t'on >Ast'erh po'u to~u f'ortwsan >'adika du'o
jan'atouc ka'i d'en m'ilhse. D'en e>~inai mi'a gl'wssa gi'a >emp'orio to'uth
>ed~w <h dik'h mou ka'i gi''a>ut'o d'en s'e >anagn'wrise kan'enac <'otan
milo~usa gi'a s'ena. D'en j'a mporo~use pot'e n'a e>~inai s'ugqronh <h pr'axh
m'e t'h fantas'ia. Pot'e >'idia <h pragmatik'h <istor'ia m'e t'h nekr'h
gl'wssa. Pot'e. T'a pr'oswpa <up'hrxane, na'i, e>~inai >al'hjeia, <up'hrxane
>all'a pot'e s'e sq'esh m'e t'hn pragmatik'othta po'u dihg'hjhka m'e t'h
nekr'h, >'aqrhsth gl'wssa t~wn qam'enwn >Etro'uskwn. <Up'hrxane s'e qr'ono
ka'i q~wro parwqhm'eno, >'asqeto, qr'ono mhd'en, pr'oswpa po'u <h
pragmatik'othta <h dik'h mac t'a e>~iqe de~i >alli~wc. Ka'i m'ono >es'u,
m'ono >es'u e>~isai mis'oc, e>~isai KANENAS, giat'i >eg'w d'en pr'oftasa
n'a s'e k'anw >al'hjeia, >eg'w d'en mp'oresa n'a s'e k'anw pr'oswpo
<uparkt'o m'esa >ap'o t'h fjor'a. E>~isai <'ena pr'oswpo m'esa >ap'o <'ena
mujist'orhma po'u pot'e d'en gr'afthke giat'i <h gl'wssa a>ut'h e>~inai
m'ono gi'a t'oso, t'oso l'igo, <'oso >~htan o<i 19 m'erec s'e ke~ino t'o
Sept'embrh ka'i >'etsi >~htan po'u s''>'afhsa mis'o, s''<'ena trago'udi
m'esa, s'e mi'a l'exh pali'a, s''<'ena >anastenagm'o, s'e mis'o >'oneiro
spasm'eno. S''>'afhsa >'etsi ka'i d'en >'eginec pot'e mi'a >al'hjeia gi'a
to'uc >'allouc, gi'a to'uc tr'itouc, gi'a to'uc logiko'uc, gi'a <'osouc
rwto~usan gi'a s'ena, gi'a t'h guna'ika sou >ak'oma po'u nom'izei p'wc s'e
x'erei ka'i d'en x'erei t'ipota >ap'o s'ena. >Eg'w fta'iw >ag'aph mou ka'i
p'ali >ag'aph j'a so~u''dina ka'i l'exeic nekr'ec, >'aqrhstec ka'i
m''a>ut'ec j'a prospajo~usa, j'a >'hjela n'a g'ineic <'ena >ast'eri ka'i mi'a
ter'astia fwtein'h gramm'h st'hn >'akrh to~u k'osmou, >en~w >es'u mo~u
mil~ac gi'a qrus'afi ka'i p'wc gi''a>ut'o t'o mis'o qrus'afi, mis'o ka'i
klemm'eno, sk'otwsec du'o >aj'wouc, du'o x'enouc, du'o zw'ec, >es'u, t'o
>'astro mou ka'i t'o f~wc mou. M'ilhs'e mou loip'on, p'ec mou p'wc >'eqw
>'adiko ka'i p'wc d'en e>~inai gi'a s'ena <'ola to~uta, p'ec mou t'hn
>al'hjeia >'h <'ena y'ema, p'ec mou, p'ec mou Za'ar >ag'aph mou...))
Logik'oc. M'e t'ic l'exeic metrhm'enec. Du'o, t'esseric, >oqt'w, d'wdeka. <O
>'erwt'ac tou kr'athse <'oso krat~ane o<i >epoq'ec. Mi'a >epoq'h. M'e broq'ec
ka'i ke~ino t'o jamp'o k'itrino <'hlio. Sept'embrhc. <'Enac. M'ono. Met'a
xanag'urise st'o sp'iti tou. X'enoc. Ka'i m'onoc. Ka'i >'emeine >eke~i.
X'eqase. >'H o>'ute ki a>ut'o. P'erase st'hn >'allh >'oqjh, st'o pot'ami,
p'anta t'o''lege p'wc <h >'allh >'oqjh e>~inai <h pi'o e>'ukolh. >'Oqi a>ut'h
>ed~w po'u t'hn perpat~ame. <H >'allh. A>ut'h po'u d'en t'hn x'eroume >ak'oma.
Za'ar, t'o d'eqthke n'a t'on l'eei m'ono >eke'inh. Na'i e>~iqe skot'wsei. Du'o
>aj'wouc. >'Enoqouc. D'en e>~iqe shmas'ia. >'Afhse n'a <upoyiasto~un t'on
>Ast'erh. >Eke~inoc >'agnwstoc. Ka'i m'ono gi'a t'o qrus'afi milo~use. <O
>Ast'erhc j'a pono~use. <'Opwc p'onese >eke'inh. >'Oqi, d'en >'hjele n'a
pon~ane o<i >'anjrwpoi. >'Oqi po'u noiaz'otan. >'Oqi po'u d'en t'o >'anteqe.
<'Omwc fob'otan. Fob'otan pol'u k'aje for'a po'u >'emene m'onoc m'e t'on
<eaut'o tou. Ka'i <h logik'h d'en >'eftane. T'ote, d'en >'eftane <h logik'h.
>'Htane gi'a to'uc pol'u >aj'wouc a>ut'h <h logik'h. A>ut'oc tetrag'wnize to'uc
k'uklouc. T'esseric gwn'iec. M'ia, d'uo, tre~ic, t'esseric. Gwn'ies. <'Olec.
Ka'i <h logik'h tou. <O >'erwt'ac tou m'ono mi'a >epoq'h.
((>Eg'w d'en >erwte'uomai)) e>~iqe pe~i. D'en t'on e>~iqe pist'eyei. >~Htan <o
k'itrinoc jamp'oc Sept'embrhc ka'i <h l'imnh ka'i o<i stajmo'i ka'i o<i n'uqtec
m'e t'on >'erwta. D'en t'on e>~iqe pist'eyei.
((T'i >'eqeic n'a mo~u pe~ic t'wra? S''t'o e>~iqa pe~i. <H gl'wssa po'u
>epim'eneic n'a mil~ac, <h dik'h sou <h gl'wssa e>~inai >'aqrhsth >entel~wc
ka'i d'en mpore~i kan'enac n'a t'hn zwntan'eyei. >Eg'w >'emeina p'anta <o
x'enoc, t'o e>~idec, t'o x'ereic, t'o''majec pi'a. Giat'i >epim'eneic? T'i
zht~ac >ap'o m'ena? >Eg'w >'etsi <'opwc e>~imai ftiagm'enoc d'en qwr'aw s'e
kan'ena >'oneiro, d'en qwr'aw s'e kami'a nekr'h di'alekto. E>~imai <o x'enoc
ka'i d'en j'a s''>anagnwr'izw s'e l'igo. D'en j'a x'erw giat'i ka'i p~wc ka'i
p'oso m''>ag'aphsec. Ka'i j'a''jela st''>al'hjeia n'a mo~u t'o pe~ic a>ut'o:
Nom'izeic <'oti m''>ag'amhsec? >Es'u, >em'ena!! M'a poi'a sq'esh j'a mporo~use
n'a <up'arqei >an'ames'a mac? M'ila mou. S'>ako'uw. E>~imai <o x'enoc. >'Emeina
<o x'enoc. K'anenac d'en kat'alabe t'hn >erhmi'a mou. Pot'e. M'onoc ka'i
x'enoc. Ka'i s'e koit'azw st'a m'atia. P~wc s'e l'ene? Poi'a e>~isai? Giat'i
s''>ar'esei n'a >epim'eneic <'oti m''>ag'aphsec? T'i x'ereic >es'u >ap'o
m'ena?))}}
\def\sample{\names\table\text}
\init
|