diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:47:01 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:47:01 +0000 |
commit | 950209b26f70aa87ed07c54f82a95b6f03b7c3a0 (patch) | |
tree | 32b2d4ab4e36aee3a9aaf41877a5c0c581de9b77 /Master/texmf-dist/doc/fonts/levy | |
parent | 71c5ce4be7e36bdc6bdda98641bc9368e28223ad (diff) |
doc/fonts
git-svn-id: svn://tug.org/texlive/trunk@83 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/fonts/levy')
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/00readme.txt | 99 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/greekhist.tex | 443 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/greekuse.tex | 248 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/grinstall.tex | 198 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/grtestfont.tex | 245 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/makeall | 20 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/makefont | 18 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/testfont | 25 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/levy/todo.txt | 9 |
9 files changed, 1305 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/levy/00readme.txt b/Master/texmf-dist/doc/fonts/levy/00readme.txt new file mode 100644 index 00000000000..000ef26a9ef --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/00readme.txt @@ -0,0 +1,99 @@ +This directory contains materials for using TeX to typeset Greek +text using Sylvio Levy's fonts. The following files are present: + +00readme.txt This file. +a.mf MF code for alpha-based characters +b.mf MF code for beta-based characters +d.mf MF code for delta-based characters +digits.mf MF code for numerals +e.mf MF code for epsilon-based characters +f.mf MF code for phi-based characters +g.mf MF code for gamma-based characters +gen_acc.mf MF code for accents +gen_sigma.mf MF code for sigma compounds +graccent.mf MF code for accents +grbase.mf MF code for base Greek macros +grbld8.mf Parameter file for 8pt Bold +grbld9.mf Parameter file for 9pt Bold +grbld10.mf Parameter file for 10pt Bold +greek.mf Driver file for Greek font +greekhist.tex History of Greek typesetting and info on + these fonts +greekmacros.tex Macros to use Greek fonts. +greekuse.tex Instructions on using the fonts. +grinstall.tex Instructions on installing the fonts. +grpunct.mf MF code for punctuation +grreg8.mf Parameter file for 8pt "Roman" +grreg9.mf Parameter file for 9pt "Roman" +grreg10.mf Parameter file for 10pt "Roman" +grtestfont.tex Testing TeX file for Greek (analagous to + testfont.tex) +grtt10.mf Parameter file for 10pt Typewriter +h.mf MF code for eta-based characters +i.mf MF code for iota-based characters +j.mf MF code for theta-based characters +k.mf MF code for kappa-based characters +l.mf MF code for lambda-based characters +lig.mf MF code for ligatures +lower.mf Driver file for lower case Greek letters +m.mf MF code for mu-based characters +makeall. Shell script to make all fonts +makefont. Shell script to generate a font. +modes.mf Mode definitions +n.mf MF code for nu-based characters +o.mf MF code for omicron-based characters +p.mf MF code for pi-based characters +q.mf MF code for chi-based characters +r.mf MF code for rho-based characters +s.mf MF code for sigma-based characters +t.mf MF code for tau-based characters +testfont. Shell script to test fonts. +todo.txt List of improvements to be made to the fonts. +u.mf MF code for upsilon-based characters. +upper.mf MF code for upper case characters +w.mf MF code for omega-based characters +x.mf MF code for xi-based characters +y.mf MF code for psi-based characters +z.mf MF code for zeta-based characters + +Copyright (C) 1987 Princeton University + +These fonts by Silvio Levy are partly based on Don Knuth's +Computer Modern family of fonts. They are distributed WITHOUT +ANY WARRANTY, express or implied. Please send comments, +suggestions, etc. to levy@princeton.edu + +IMPORTANT NOTE: + +These fonts make use of the 256-character capabilities of gf +format. They cannot be converted to the obsolete PXL format which +allows only 128 characters. If you are still using PXL format +drivers, it is time to convert. If you are using a gf format +driver with only 128 character capacity, you are missing +something. See doc/install.tex. + +Metafont must have |max_in_open| increased (to 10) to compile +these fonts as they stand. The appropriate change has been added +to the change files on the UnixTeX distribution. If you're +getting these fonts other than from the TeX distribution, and if +you don't have access to Metafont source, you'll have to merge +some files before you attempt compilation: + + In src/s.mf, replace the line readfrom("gen_sigma") by the + contents of src/gen_sigma.mf. + In src/lower.mf, replace each line by the contents of the + corresponding file; for instance, replace readfrom("a") by + the contents of src/a.mf. + In greek.mf, right after the line that says ``font_setup'' + insert the lines + + readfrom("gen_acc"); + readfrom("gen_sigma"); + +HMC: +At HMC a couple of modifications have been made to the MF files: + + The definition of readfrom has been changed so that no + directory information is present. + accent.mf has been renamed graccent.mf and punct.mf has been + renamed grpunct.mf to prevent conflicts with CM files. diff --git a/Master/texmf-dist/doc/fonts/levy/greekhist.tex b/Master/texmf-dist/doc/fonts/levy/greekhist.tex new file mode 100644 index 00000000000..044e29601e0 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/greekhist.tex @@ -0,0 +1,443 @@ +%\magnification=\magstep1 +\def\midspace#1{} +\def\caption#1{} + +\input greekmacros + +\greekdelims + +\def\plus{\math{}+{}\math} +\font\man=logo10 at 10true pt % font used for special symbols (old version) + \def\MF{{\man META}\-{\man FONT}}% +% macros for verbatim scanning +\newskip\ttglue \ttglue=.5em plus.25em minus.15em +\chardef\other=12 +\def\ttverbatim{\begingroup + \catcode`\\=\other + \catcode`\{=\other + \catcode`\}=\other + \catcode`\$=\other + \catcode`\&=\other + \catcode`\#=\other + \catcode`\%=\other + \catcode`\~=\other + \catcode`\_=\other + \catcode`\^=\other + \obeyspaces \obeylines \tt} + +\outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@ + \catcode`\|=0 \rightskip-5pc \ttfinish} +{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character + |obeylines % end of line is active + |gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}|endgroup$$}} + +\catcode`\|=\active +{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}} + +%\documentstyle{amsppt} +%\nologo +% +%\topmatter +%\title Typesetting Greek \endtitle +%\author Silvio Levy \endauthor +%\affil Princeton University \endaffil +%\address{Fine Hall, Washington Road, Princeton, NJ, 08544} +%\abstract{ +%We discuss the design, creation and use of a family of Greek fonts for +%\TeX. The fonts can be used for modern or classical +%Greek, by themselves or in combination with the Computer Modern family +%of fonts. A short historical introduction is followed by a discussion +%of special topics, including the handling of accents and breathings, +%hyphenation, and the two varieties of sigma. +%} +%\endtopmatter +%\document +% + +\font\eightpoint=cmr8 +\font\twelverm=cmr10 at 12pt +\def\heading#1\endheading{\bigskip\centerline{\twelverm#1}\medskip} + +%formatting conventions for proceedings +\catcode`@=11 +\font\titlefont=cmr17 +\font\namefont=cmcsc10 scaled \magstep1 +\font\twelvebd=cmbx10 scaled \magstep1 +\font\twelverm=cmr10 scaled \magstep1 +\font\sixrm=cmr6 +\vsize=43pc +\hsize=29pc +\parindent=16pt +\nopagenumbers +\normalbaselines +\footline={\hss\sixrm\folio\hss} +\def\makefootline{\baselineskip3pc\line{\the\footline}} +\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% + \advancepageno + \vsize=45pc + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} +\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ + \line{\vbox to8.5\p@{}\ifnum\count0=1 + \else\ifodd\count0 + \hfill\the\doctitle\ignorespaces + \else \the\authorname\hfill\fi\fi}\vss}\nointerlineskip} + +\newtoks\doctitle \newtoks\authorname + +\doctitle={Typesetting Greek} +\authorname={Silvio Levy} +\catcode`@=12 % at signs are no longer letters +\tenrm +\begingroup +\titlefont +\the\doctitle +\vskip 3pc +\namefont\the\authorname +\tenrm +\vskip 1pc +{\obeylines +Mathematics Department +Princeton University +Princeton, NJ, 08544 +} +\vskip 3pc +\line{\hfill\twelvebd ABSTRACT\hfill} +\vskip 3pc +\leftskip 4pc \rightskip 4pc +We discuss the design, creation and use of a family of Greek fonts for +\TeX. The fonts can be used for modern or classical +Greek, by themselves or in combination with the Computer Modern family +of fonts. A short historical introduction is followed by a discussion +of special topics, including the handling of accents and breathings, +hyphenation, and the two varieties of sigma. +\par +\endgroup +\vskip 3pc + +\heading A Bit of History \endheading + +During the first four centuries after the introduction of the printing +press in Europe, the printing of Greek was hampered by the relative +inadequacy of existing types, at least in comparison with the quality +and variety of the best roman fonts. This was partly a consequence +of the antiquity of the language and its consequent evolution in both +writing and pronunciation: not only did the letterforms change over time, +but they came to be adorned with a multitude of diacritical marks, a +legacy of zealous scribes and grammarians anxious to preserve the +pristine state of the language that lent them their prestige. + +In the early days we find that the few printers that attempted to cut +Greek type generally ignored all this complexity, either disregarding +the diacritics or casting them separately and setting them +above each line of text. Some texts were printed in +lowercase only; others would make do with roman capitals like `A' and +even some lowercase roman glyphs, like `v' for `$n$'. (See figures +1--12 in [Brit.~Mus.~1927], an excellent historical survey.) + +In 1495 Aldus Manutius introduced cursive greeks. +They became a resounding success, as they reproduced the florid +and idiosyncratic handwriting of the day, full of abbreviations +and ligatures. The inordinate number of ligatures is in fact the +most striking feature of such fonts: for example, Fell's ``Great +Primer Greek'' [Morison 1967, p.~102] has sorts for many +four-letter words and prefixes. + +Although skilfully typeset books using cursive fonts are undeniably +beautiful (see [Brit.~Mus.~1927], figure 29), the use of so many +ligatures was a nightmare for compositor and reader alike, since +in some cases the component letters are virtually unidentifiable. +Gradually the fonts were scaled down in size, but the practice +of imitating handwriting remained until the end of the eighteenth +century, when Bodoni, G\"oschen and Didot paved the way back to a +more sober course. + +Still problems remained. Porson's greek [Mosley 1960], first used +in 1826 and destined to become the standard of the English-speaking +world, continues the illogical tradition of mixing upright capitals +with slanted minuscules; in particular the blending of Greek and roman +text leads to poor results (figure 1). Didot's design was somewhat +more felicitous, and became standard in Italy, France and Greece itself +(figure 2), but the type is narrow and irregular, bearing, according +to Scholderer [Brit.~Mus.~1927, p.~14], the `malign mark' of Bodoni's +greeks (which were admittedly not a match for his inspired romans). +\midspace{1.1truein} +\caption{\eightpoint Figure 1} + +\midspace{1.2truein} +\caption{\eightpoint Figure 2} + +(Incidentally, the different treatment of capitals established itself +in mathematical typesetting. In English books, Greek capitals are the +only math letters that are not slanted; in French and German books +they conform with the rest. The Computer Modern Greek faces are +based on Porson. They are, of course, meant for math; when used +for text, as in [Wonneberger 1987], the results fall short of +the perfection achievable with \TeX.) + +It was not until the beginning of this century that really +well-designed Greek types became available, including Scholderer's +`New Hellenic' type (figure 3), based on a pre-Aldine model, +and the Monotype font shown in figure 4, a much improved version +of Didot's design and perhaps the typeface most favored for +high-quality printing in Greece during the last few decades. +\midspace{1.1truein} +\caption{\eightpoint Figure 3} + +\midspace{1.3truein} +\caption{\eightpoint Figure 4} + +\heading Requirements \endheading + +My main motivation in designing a family of Greek fonts is the +preparation of a Modern Greek--English dictionary. This in itself +makes the design more exacting: the fonts should not only look good +individually and in combination, but also blend well with Computer +Modern fonts; there should be at least three main styles, different +enough that no special effort to distinguish between them is required, +even in small point size; and the typing should be as painless as +possible on a standard (English) keyboard. +This last condition is, of course, open to interpretation, but I +define it to mean that each grapheme (letter, accent, etc.)~should +require as few keystrokes as possible---generally one, but +occasionally more, like accents in English. + +In esthetic terms there are a lot of details to work out, but the +foundation has been laid. I follow loosely the type shown in figure 4, +which shares several features with the Computer Modern roman: +sharp contrast between thicks and thins, similar letter widths, +and a wealth of texture and detail. (This is not surprising since +the `modern' family of fonts goes back to Bodoni and Didot.) +But it also has distinguishing features, which recapture some of the +beauty of cursive writing: its strokes are more fluid, and there +is no left-right symmetry (compare a roman `o' with a greek `$o$'). + +Modern Greek has traditionally been typeset with the diacritic +apparatus of ancient Greek, which is very rich: it contains two accents, +the acute $'$ and the grave $`$, that can go over any vowel, plus one, +the circumflex $~$, that can go over the vowels $ahiuw$; two so-called +breathings $<>$, one of which goes over every vowel or diphthong +in initial position; the diaeresis $"$, that can go over $i$ and $u$; +and the iota subscript $|$, that can go under $ahw$. An accent +plus a breathing, or an accent plus the dieresis, can coexist; +furthermore any accent, breathing or accent-breathing combination +can share a vowel with an iota subscript. Here, for example, +are the 24 possible varieties of lowercase $a$: +\display +\hbox{$a 'a `a ~a <a <'a <`a <~a >a >'a >`a >~a +a| 'a| `a| ~a| <a| <'a| <`a| <~a| >a| >'a| >`a| >~a|$} +\display + +In the last several decades the tendency has been to get rid of these +complications, and now the ``official'' system in use in Greece includes +only one accent and the dieresis, without breathings or iota subscripts. +Even though I work primarily with modern Greek, however, I thought +it short-sighted not to include the whole apparatus, having in mind +both classicists and those traditionalists who +still prefer the three-accent system, as do some publishing houses. + +It was clear right away that these diacritics should be implemented as +ligatures, not as \TeX\ accents, because in \TeX\ words that include +accents cannot be hyphenated. This implied that 128 font +positions were not enough. Fortunately \TeX\ and \MF\ are +well equipped to handle 256-position fonts, though most device +drivers are not (see the section `Other Problems'). + +Following the one-keystroke-per-grapheme rule, then, one can conjure +up the last alpha in the display above by typing |>~a|{\tt\char`\|}, +which accesses a four-character ligature. The remaining conventions +for diacritics are: |'| and |`| for the acute and grave, respectively; +|"| for the dieresis; and |<| for the rough breathing. (If you're +wondering how to produce quotation marks, or $((e>isagwgik'a))$, +it's by typing |((| and |))|.) + +\heading The Font Layout \endheading + +A further complication has to do with the letter sigma. According to +Knuth [1980], the letter `s' is in a class by itself in terms of +complexity of design; its Greek counterpart is similarly difficult, though +for different reasons. A sigma in initial or medial position in the word +is written $c$, but in final position it is written $s$. Since the +alternation is entirely conditioned, it seemed a pity to require different +characters in the \TeX\ file to represent the two varieties of sigma. + +The first solution I tried made no assumptions on the font. It +consisted in making `s' an active character, which checked the next +token and printed $c$ if it was a letter, $s$ otherwise. There were +two drawbacks to this procedure: the letter `s' could not be used +in control sequences, and the check was expensive. (It also didn't +work when the next token was a control sequence that expanded to one +or more letters.) + +A better idea is to save one position in the font for an +invisible dummy character. All punctuation marks (and the space) +are made active; they expand to the dummy end-of-word character, +plus the punctuation character. An `s' by itself prints as $c$, +while an `s' in ligature with the dummy---which is to say, at the end +of a word---prints as $s$. All other letters yield themselves when +in ligature with the dummy. This is still not ideal for two reasons: +\TeX\ is always ``obeying spaces,'' and words separated by something +other than punctuation or spaces (say |\par|) count as one. (But +this might be the only practicable solution for the Hebrew alphabet, +which has five chameleon letters.) + +The solution I chose avoids the drawbacks above, at the expense of +several positions in the font. Namely, the font contains each of +the possible combinations $sa$, $sb$, \dots, $sw$, which are +automatically accessed as ligatures when the word contains `s' +followed by a letter. + +\pageinsert +{ +\font\twelverm=cmr10 scaled \magstep1 +\font\twelvei=cmmi10 scaled \magstep1\skewchar\twelvei='177 +\font\twelvesy=cmsy10 scaled \magstep1\skewchar\twelvesy='60 +\font\twelvebf=cmbx10 scaled \magstep1 +\font\twelvett=cmtt10 scaled \magstep1\hyphenchar\twelvett=-1 +\font\twelvesl=cmsl10 scaled \magstep1 +\font\twelveit=cmti10 scaled \magstep1 + +\def\twelvepoint{\def\rm{\fam0\twelverm}% + \textfont0=\twelverm + \textfont1=\twelvei + \textfont2=\twelvesy + \textfont3=\tenex + \def\it{\fam\itfam\twelveit}% + \textfont\itfam=\twelveit + \def\sl{\fam\slfam\twelvesl}% + \textfont\slfam=\twelvesl + \def\bf{\fam\bffam\twelvebf}% + \textfont\bffam=\twelvebf \scriptfont\bffam=\sevenbf + \scriptscriptfont\bffam=\fivebf + \def\tt{\fam\ttfam\twelvett}% + \textfont\ttfam=\twelvett + \tt \ttglue=.5em plus.25em minus.15em + \normalbaselineskip=14.5pt + \setbox\strutbox=\hbox{\vrule height10.5pt depth4pt width0pt}% + \normalbaselines\rm} + +\twelvepoint +\font\my=grreg10 scaled \magstep1 +\centerline{ +\def\:{\char\count255\global\advance\count255 by 1} +\count255='0 +\vbox{ +\hbox{\hbox to 40pt{\it\hfill0\/\hfill}% +\hbox to 40pt{\it\hfill1\/\hfill}% +\hbox to 40pt{\it\hfill2\/\hfill}% +\hbox to 40pt{\it\hfill3\/\hfill}% +\hbox to 40pt{\it\hfill4\/\hfill}% +\hbox to 40pt{\it\hfill5\/\hfill}% +\hbox to 40pt{\it\hfill6\/\hfill}% +\hbox to 40pt{\it\hfill7\/\hfill}} +\vskip 4pt +\hrule +\def\^{\vrule height 10.5pt depth 4.5pt} +\halign{\hbox to 0pt{\hskip -24pt {\rm\'{}\kern-.2em\it#}\hfill}&\^ +\hbox to 40pt{\my\hfill#\hfill\^}& +&\hbox to 40pt{\my\hfill#\hfill\^}\cr +00&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +01&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +02&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +03&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +04&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +05&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +06&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +07&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +10&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +11&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +12&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +13&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +14&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +15&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +16&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +17&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +20&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +21&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +22&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +23&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +24&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +25&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +26&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +27&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +30&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +31&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +32&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +33&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +34&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +35&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +36&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +37&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule}}} +} +} +\endinsert + +With all the s\plus letter combinations and all the vowels with +diacritics, it turns out that not even 256 characters are enough. +Since I couldn't push the font size any further, I decided to +eliminate some of the vowel\plus diacritic combinations. The obvious +candidates were the combinations of breathings with grave accent, +which can only occur in a restricted number of monosyllables, and +thus can be typeset as accents, because no hyphenation is required +anyway. So I made the characters |<| and |>| active. Depending on +whether or not the next character is $`$, these active characters +expand to an |\accent| or to a |\char|, the latter meant to form +a ligature with what comes next. (Actually, things are not quite +so simple. A breathing or accent over a capital vowel is +traditionally written before the letter, so the |\accent| control +sequence is only emitted if the following character is lowercase.) + +The complete layout of the fonts is shown on the next page. There +are a few unfilled positions, two of which I'm saving for the digamma, +whose design I haven't yet tackled. + +\heading Other Problems \endheading + +In order to write continuous text, I had to prepare a modern Greek +hyphenation table, which I'm currently testing. +The hyphenation of modern Greek follows closely that of ancient Greek, +which is straightforward (that is, described by a fairly short set of +rules) because Greek had originally a phonetic script---one letter +for each phoneme and vice versa. This conservatism means that +hyphenation does not necessarily occur between syllables, as in +the word $stau-r'os$ `cross', now pronounced +[sta\'{}vros]; but this apparently doesn't bother anyone. + +One difficulty, however, cannot be resolved by means of mechanical +rules: the digraphs $mp$, $nt$ and $gk$ are sometimes pronounced as +nasal\plus voiced stop, sometimes as voiced stop alone, depending on +the word (also sometimes on the speaker). In the first case, the group +can be split, but in the second, one should hyphenate before the group. +This problem seems to be solvable only by trial and error. + +The last problem I want to discuss is that of device drivers. +We have been using various |dvi|-to-PostScript drivers in Princeton, +and I found that none of them would work with +256-character fonts, even though both \TeX\ and PostScript are +designed to handle such fonts. I was, however, able to adapt Nelson +Beebe's excellent driver |dvialw| [Beebe 1987] after making only +three changes, because the program is well written and well documented. +I exhort all those who write |dvi| drivers to include 256-character +fonts in their design, since they will certainly become more necessary +as \TeX\ extends its reach around the world. + +\heading Bibliography \endheading + +\def\\{\smallskip\hangindent=\parindent\hangafter=1\noindent\ignorespaces} +\\ +Nelson H. F. Beebe, Public domain \TeX\ DVI driver family, +{\it TUGboat}, {\bf 8}:1 (1987), 41--42. +\\ +British Museum, {\it Greek Printing Types}, London, British Museum, 1927. +\\ +Donald E. Knuth, The Letter S, {\it The Mathematical Intelligencer}, +{\bf 2} (1980), 114--122. +\\ +Stanley Morison, {\it John Fell: the University Press and the `Fell' +Types}, Oxford, Clarendon Press, 1967. +\\ +J. M. Mosley, Porson's Greek Types, {\it Penrose Annual}, {\bf 54} (1960), +36--40. +\\ +Reinhard Wonneberger, Typesetting `Normaltext', {\it TUGboat}, +{\bf 8}:1 (1987), 63--72. +\end diff --git a/Master/texmf-dist/doc/fonts/levy/greekuse.tex b/Master/texmf-dist/doc/fonts/levy/greekuse.tex new file mode 100644 index 00000000000..39c6504c13f --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/greekuse.tex @@ -0,0 +1,248 @@ +\input amstex +\documentstyle{amsppt} +\nologo +\hsize=6.5in +\vsize=9in +\widowpenalty=10000 +\clubpenalty=10000 + +\input greekmacros +\greekdelims + +\font\sc=cmcsc10 +\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} +\def\plus{\math{}+{}\math} +\def\.#1{{\tt #1}} +\def\disp#1{\line{\tt #1\hfil}} +\def\angles#1{{$\langle$\rm #1$\rangle$}} +\chardef\!`\\ +\chardef\~`\~ +\chardef\{`\{ +\chardef\}`\} +\chardef\#`\# +\def\begineight{\smallskip\bgroup\eightpoint} +\def\endeight{\par\egroup\smallskip} + +\def\verbatim{\begingroup + \def\do##1{\catcode`##1=12 } \dospecials + \parskip 0pt \parindent 0pt + \catcode`\ =13 \catcode`\^^M=13 + \tt \catcode`\?=0 \verbatimdefs \verbatimgobble} +{\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par}\let =\ }} % + \gdef\verbatimgobble#1^^M{}} +\def\beginverbatim{\smallskip\begingroup\verbatim} +\def\endverbatim{\endgroup\endgroup\smallskip} + +\topmatter +\title Using Greek Fonts with \TeX\endtitle +\author Silvio Levy \endauthor +\affil + Princeton University \\ + Fine Hall, Washington Road\\ + Princeton, NJ, 08544\\ + (\.{levy\@princeton.edu}) +\endaffil +\endtopmatter +\document + +\abovedisplayskip6pt plus3pt minus3pt +\belowdisplayskip6pt plus3pt minus3pt +\abovedisplayshortskip0pt plus3pt +\belowdisplayshortskip4pt plus3pt minus4pt + +In this document I hope to show that typesetting Greek in \TeX\ +using the \.{gr} family of fonts can be as easy as typesetting +English text, and leads to equally good results. +This is meant to be a tutorial, not an exhaustive discussion; +some \TeX nical remarks that should be useful after the reader +has acquired some familiarity with the fonts are printed in fine +print. + +\heading +The Alphabet +\endheading + +In order to typeset Greek text, you need to go into ``Greek mode.'' +This is achieved by typing \.{\!begingreek} anywhere in your document; +Greek mode will remain in effect until you type a matching \.{\!endgreek}. +While in Greek mode, the letters `a' to `z' and `A' to `Z' come out +as Greek letters, according to the following code: +\display +\hbox{\valign + {\hbox to 10pt{\hfil\strut$#$\hfil}&\hbox to 10pt{\hfil\strut\tt#\hfil}\cr + a&a\cr b&b\cr g&g\cr d&d\cr e&e\cr z&z\cr h&h\cr j&j\cr + i&i\cr k&k\cr l&l\cr m&m\cr n&n\cr x&x\cr o&o\cr p&p\cr + r&r\cr c&s\cr t&t\cr u&u\cr f&f\cr q&q\cr y&y\cr w&w\cr}} +\enddisplay + +There is no digamma yet. The same character `s' will print as +`$c$' or `$s$', depending on its position in a word. + +\begineight +The system does this by accessing a ligature of `s' with any other +letter that follows it. If, for some reason, you want to print +an initial/medial sigma by itself (as in the table above), or +at the end of a word, you should type `c'. +\endeight + +Try to typeset some simple text now. Create a file +containing the following lines: + +\beginverbatim +\input greekmacros % where \begingreek and other commands are defined +This is English text. +\begingreek +This is Greek text. +\endgreek +?endverbatim + +When you \TeX\ this file, you get the following gibberish: +\display +\hbox{ +This is English text. +\begingreek +This is Greek text. +\endgreek +} +\enddisplay + +If you say \.{\!greekdelims} near the top of your file, +the character \.{\$} can be used +in place of both \.{\!begingreek} and \.{\!endgreek}. The control +sequence \.{\!math} takes on the former meaning of \.{\$}. + +\heading +Accents and Breathings +\endheading + +To get an acute, grave or circumflex accent over a vowel, +type \.{'}, \.{`} or \.{\~}, respectively, before the vowel. +To get a rough or smooth breathing, type \.{<} or \.{>} before +the vowel (or rho) and any accent that it may have. To get an iota +subscript, type \.{|} {\it after\/} the vowel. A diaeresis is +represented by \.{"}, and if accompanied by an accent it can come +before or after the accent. + +For example, \hbox{\.{>en >arq\~h| >\~hn <o l'ogos}} +gives \hbox{$>en >arq~h| >~hn <o l'ogos$}. +Neat, ain't it? + +\begineight +Accents and breathings, too, are typeset by means of ligatures: a +vowel with a breathing, an accent and iota subscript, for example, +is realized as a four-character ligature. The only exception is +when a breathing is followed by a grave accent, in which case the +breathing\plus accent combination is typeset as a \TeX\ \.{\!accent} +over the vowel. This means that words containing such combinations +cannot be hyphenated in (standard) \TeX; but this is not a problem +because, with the exception of very rare cases of crasis, all such words +are monosyllables. +\endeight + +\heading +Punctuation +\endheading + +Here's the table of correspondences for punctuation: +\display +\hbox{\valign + {\hbox to 15pt{\hfil\strut$#$\hfil}&\hbox to 15pt{\hfil\strut\tt#\hfil}\cr + .&.\cr ,&,\cr ;&;\cr :&:\cr !&!\cr ?&?\cr ''&''\cr ((&((\cr ))&))\cr}} +\enddisplay +The last three entries represent the apostrophe and quotations marks. +The other available non-letters are the ten digits, parentheses, +brackets, hyphen, em- and en-dashes, slash, percent sign, asterisk, +plus and equal signs. All of these are accessible in the same way as +under plain \TeX. In a future release there will be tick marks for +numbers (\math\hbox{$a$}'=1\math, \math{}_\prime\hbox{$a$}=1000\math). + +\heading +Hyphenation +\endheading + +A hyphenation table for both modern and ancient Greek is currently +being debugged. For now one can use plain \TeX\ with its (English) +hyphenation table, which gives the right results about 90\% of the +time (amazing, isn't it?). Be sure to proofread your text carefully, +unless you've turned hyphenation off. + +\begineight +In standard \TeX, only one hyphenation dictionary can be used in +a job. Thus, even with a Greek hyphenation table, a file that +combines Greek and English text is likely to be incorrectly +hyphenated. Michael Ferguson's extension to \TeX\ handles multiple +hyphenation tables, and hyphenates words containing \.{\!accent}s +(cf.~the previous fine print paragraph). +\endeight + +\heading +Interaction with other macros +\endheading + +While in Greek mode you can do just about everything that you can +outside: go into math mode, create boxes, alignments, and so on. +The file \.{greekmacros.tex} sets things up so that in Greek mode +the control sequences \.{\!tt} and \.{\!bf} switch to a +typewriter and a bold Greek font, respectively: thus +\.{\{\!tt s''>agap\~w\}} gives \hbox{$\tt s''>agap~w$}. (Try it.) +On the other hand, there are no ``italic'' or slanted Greek fonts, +so \.{\!it} and \.{\!sl} will give you the same fonts as outside +Greek mode. The various constructions under +\AmSTeX\ and \LaTeX\ for increasing or decreasing point sizes don't +work yet; they will in a future release. + +The characters that form diacritics (\.{<}, \.{>}, +\.{'}, \.{`}, \.{\~}, \.{"} and \.{|}) are treated differently +depending on whether or not you're in Greek mode. More exactly, +under plain \TeX\ these characters (with the exception of +\.{\~}) have a \.{\!catcode} of 12: they print as themselves, +and they cannot appear in control words. But in Greek mode +\.{'}, \.{`}, \.{\~}, \.{"} and \.{|} are ``letters'', that is, +they have a \.{\!catcode} of 11, while \.{<} and \.{>} are +active, with a \.{\!catcode} of 13. This may be important even +for beginners because it means that \.{'}, for example, can be taken +as part of a control word. Thus the sequence +\beginverbatim +\begingreek +\line{wm'ega\hfil'alfa} +\endgreek +?endverbatim +\noindent +will cause an error message about an +undefined control sequence \.{\!hfil'alfa}, instead of printing +\display +$\line{wm'ega\hfil 'alfa}$ +\enddisplay +as you might expect. (I hope classicists will forgive this use +of the modern Greek one-accent system.) The solution, of course, +is to remember to add a blank after the \.{\!hfil}. + +\begineight +A more subtle problem arises when you use Greek text in macro +arguments, if the arguments are scanned while you're outside Greek +mode. This is because \TeX\ assigns \.{\!catcode}s to tokens +as it first reads them, so when the argument is plugged into +the body of the macro the characters above have the wrong +\.{\!catcode}. If the legendary Jonathan Horatio Quick were +to write +\display +\hbox{\.{% +\!def\!hellenize\#1\{\!begingreek \#1\!endgreek\} +\!hellenize\{d'uo >`h tre\~is,\}}} +\enddisplay +he would be unpleasantly surprised by the following output: +\display +\def\hellenize#1{\begingreek #1\endgreek} +\hbox{\hellenize{d'uo >`h tre~is,}} +\enddisplay +which can be explained as follows: the \.{\~}, which should be +a letter, is seen as an active character, and expands to a blank +as in plain \TeX; while the breathing, which should be active, +is not, and in particular it doesn't do the right thing when +next to the grave accent. Solutions to this problem require a +bit of wizardry, and will not be discussed here; see, for example, +Reinhard Wonneberger's article in the October, 1986 issue of +{\it TUGboat}, especially pages 179--180. +\endeight +\end diff --git a/Master/texmf-dist/doc/fonts/levy/grinstall.tex b/Master/texmf-dist/doc/fonts/levy/grinstall.tex new file mode 100644 index 00000000000..2a5a1c2be52 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/grinstall.tex @@ -0,0 +1,198 @@ +\magnification=\magstep1 +\def\.#1{{\tt #1}} +\def\disp#1{\line{\tt #1\hfil}} +\def\angles#1{{$\langle$\rm #1$\rangle$}} +\chardef\!`\\ + +\def\verbatim{\begingroup + \def\do##1{\catcode`##1=12 } \dospecials + \parskip 0pt \parindent 0pt + \catcode`\ =13 \catcode`\^^M=13 + \tt \catcode`\?=0 \verbatimdefs \verbatimgobble} +{\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par}\let =\ }} % + \gdef\verbatimgobble#1^^M{}} + +\centerline{INSTALLATION INSTRUCTIONS} + +\medskip + +(Note to non-UNIX sites: These instructions should be followed verbatim +only on systems running UNIX. I've tried to make the instructions +understandable to people without knowledge of UNIX, so that if you're +familiar with your own operating system it should not be hard to +figure out the right thing to do under it. If the separator between +components of a file pathname is not `/', you should change the +definition of \.{readfrom} in \.{grbase.mf}. + +See the \.{README} file for an important note concerning required +METAFONT capabilities.) + +In order to make the fonts, you need an executable version of +METAFONT, version 1.0 or newer, with the `plain' base preloaded +(see p.~279 of {\it The METAFONTbook\/} if you're not familiar with this). +You will also need the \.{cmbase.mf} file, which is distributed +with METAFONT, unless you have an executable METAFONT with that +file already preloaded. The shell script (batch file) \.{makefont} +assumes that \.{cmmf} is an executable METAFONT with \.{cmbase.mf} +preloaded; if you don't have that you can replace \.{cmmf} by +\.{mf} in \.{makefont}. (Non-UNIX sites: you'll have to edit +\.{makefont} anyway, as well as \.{testfont} and \.{makeall} below. +In each case the comments inside the file should guide you in finding +the right incantations under your operating system.) + +If METAFONT has never been used at your site before, you will +also need to create a file \.{local.mf} and preload it together +with \.{plain.mf}. (See pp.~278--9 of {\it The METAFONTbook}.) +This file +should contain the characteristics of the different output +devices that you will generate fonts for. The parameters +for many output devices can be found on page 269 of the November +1987 issue of TUGboat; and two more devices (the Apple laserwriter +and Sun workstation) which are not in that table can be found +in \.{modes.mf} (in this distribution). The values in \.{modes.mf} +are experimental; if you feel like fiddling with them and think +you can get better results, let me know. In any case, your +\.{local.mf} should contain mode definitions for all output devices +you intend to use the fonts with, and it should be preloaded +together with \.{plain.mf}, so that when you issue the command +\.{mf} or \.{cmmf} all this information is already in memory. + +Next you should test one font by saying + +\smallskip +\disp{makefont grreg10 [\angles{modename}]} +\smallskip + +(where \angles{modename} stands for \.{alw} if you're generating +for the laserwriter, for example; the default is +\.{localmode}, which should be defined in \.{local.mf}). +It will take a while to make the font, and when +it's done you can look in \.{grreg10.log} to see if everything went +smoothly. If everything is OK, move \.{grreg10.tfm} +and \.{grreg10.NNNgf} to the system's \TeX\ font directory (often +\.{/usr/lib/tex/fonts}) and do a test run: + +\smallskip +\disp{\% tex} +\disp{\angles{blurb...}} +\disp{**\!font\!test=grreg10 \!test ABC \!end} +\disp{\angles{more blurbs; hopefully no error messages}} +\disp{\%} +\smallskip + +The text typed during this test should be very simple, as above: +no accents, ligatures, etc. If you got a \.{texput.dvi} file without +problems, you should try to print it, using your local dvi driver. +Some dvi drivers cannot read font files of the form \.{*.NNNgf}, +only those of the form \.{*.NNNpk}; you can use the utility +\.{gftopk}, which comes with the METAFONT distribution, to carry +out the conversion. If your driver can only read \.{*.NNNpxl} fonts, +it's time to get a new one. + +Another problem with some dvi drivers is that they don't +take 256 character fonts, although they should, since 256 characters +is part of standard \TeX. (The reason is, presumably, that Computer +Modern fonts only have 128 characters, and programmers were counting +on all other fonts being similarly restricted.) To test this +aspect of your driver, create a dvi file with a character in the +range 128-255: + +\smallskip +\disp{\% tex} +\disp{\angles{blurb...}} +\disp{**\!font\!test=grreg10 \!test 'a \!end} +\disp{\angles{more blurbs}} +\disp{\%} +\smallskip + +When you try to print this, you may get an error message, or +a core dump, or simply a blank page. If so, you will have to +fix your driver or get a new one. Fixing your driver involves +understanding fairly well the dvi format (carefully explained +in {\it\TeX: The Program}), but should not be beyond anyone with +a modicum of systems programming experience. Getting a driver +that works is probably easier if you're well connected, +electronically speaking. I recommend Nelson Beebe's family +of drivers (page 41 of the April 1987 TUGboat). Here are +some hints from Nelson Beebe for obtaining his drivers: + +\medskip +\begingroup +\verbatim +> From BEEBE@SCIENCE.UTAH.EDU Mon Dec 21 10:28:08 1987 +> From: "Nelson H.F. Beebe" <Beebe@SCIENCE.UTAH.EDU> +> Subject: Re: dvi drivers +> X-Us-Mail: "Center for Scientific Computing, South Physics, +> University of Utah, Salt Lake City, UT 84112" +> X-Telephone: (801) 581-5254 +> +> Internet users may retrieve the DVI driver family via ANONYMOUS +> FTP to SCIENCE.UTAH.EDU; get the via 00README.TXT in the login +> directory for details. The files 00PCDOS.TXT, 00TOPS20.TXT and +> 00VMSSETUP.TXT in the same directory describe TeX and DVI +> directory layouts and system logical names on IBM PC DOS, TOPS-20 +> and VAX VMS. Compressed Unix tar files are available in several +> directories. +> +> VAX VMS BACKUP savesets (compressed and uncompressed) are +> available via ANONYMOUS FTP to CTRSCI.UTAH.EDU; the file +> 00README.TXT in the login directory has further details. +> +> Australian ACSnet users may retrieve the DVI drivers from +> LaTrobe University, Bundoora, Victoria; send mail to +> "munnari!latvax8.lat.oz.au!ccmk"@uunet.uu.net +> for retrieval details. +> +> European Bitnet users may contact $92@dhdurz1.bitnet +> at the University of Heidelberg. Here is how: +> With the command directed at LISTSERV at DHDURZ1.BITNET +> GET DRIVER FILELIST +> you will receive a directory from the driver +> subdirectory. To receive a file: +> GET filename filetype +> +> European DECNET users may retrieve the DVI drivers (and a +> large collection of other TeX-related software) from the +> University of Padova in Padova, Italy; send mail to +> CALVANI%VAXFPD.INFNET@IBOINFN.BITNET +> for retrieval details. +> +> UK Janet users should contact AbbottP@uk.ac.aston.mail (Aston +> University). Here is the latest retrieval information from +> TeXHaX #92 (03-Nov-87): +> The DVI family of drivers software is now stored +> under (and has been for some time) public.texdvi208. +> I have been notified that version 2.10 is being +> shipped and this will be made available under +> public.texdv210. The index for version 2.08 is +> aston.kirk::[public.texdvi208]000index.list +> If you want to know the latest state of the +> archive the file is +> aston.kirk::[public]000aston.readme +?endgroup +\endgroup +\medskip + +Once you've got the driver working, you can type + +\smallskip +\disp{testfont grreg10} +\smallskip + +for a full-blown test of the font \.{grreg10}. This creates +a dvi file \.{grtestfont.dvi} and moves it to \.{grreg10.dvi}, which you +should then print. + +Finally, you can say + +\smallskip +\disp{makeall [ \angles{modename} [ \angles{mag} ]]} +\smallskip + +for all modes and magnifications desired. Don't forget to move +the \.{*.tfm} and \.{*.NNNgf} files thus obtained to their destination +directory. + +The last step is to TeX the user's manual page (\.{doc/readme.tex}) +and make it available to users. +\end diff --git a/Master/texmf-dist/doc/fonts/levy/grtestfont.tex b/Master/texmf-dist/doc/fonts/levy/grtestfont.tex new file mode 100644 index 00000000000..82f5a9faaad --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/grtestfont.tex @@ -0,0 +1,245 @@ +% This file is still being written and changed frequently. +% Eventually it is supposed to provide a testbed for font evaluation. + +\tracinglostchars=0 +\tolerance=1000 +\raggedbottom +\nopagenumbers +\parindent=0pt +\newlinechar=`@ +\input greekmacros + +\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<10 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<255 \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<10pt \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<256 \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=256 \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'wrgos Dhm'htrhs E>ugen'ia + Zw'h <Hrakl~hs Je'ofilos >Iw'anna K'wstas Louk~as + Mar'ia N'ikh Xanjo'ula O>id'ipous Pl'atwn Rox'anh S'ilbio + Thl'emaqos <Upat'ia F'ilippos Qar'a Yuq'h >Wrig'enhs\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`h stigm`h to'uth ni'wjw p'oso bar'u ''nai t`o +must'hrio t~hs xomol'oghshs. <Ws t'wra, kane`is +d`en x'erei p~ws p'erasa t`a du`o qr'onia mou +st`o <'Agion >'Oros. O<i f'iloi mou jarro~un p`ws +p~hga n`a d~w buzantin`a kon'ismata >`h >ap`o +mustikop'ajeia n`a z'hsw mi`a perasm'enh >epoq'h. +Ka`i t'wra, n'a, ntr'epomai n`a mil'hsw. + +P~ws n`a t`o p~w? Jumo~umai <'ena >anoixi'atiko +deilin'o, po`u kat'ebaina t`on Ta"'ugeto, mi`a xafnik`h +j'uella m`e k'uklwse kont`a sto'us Pentaulo'us. T'oso +fober`os >anemoc'ifounas, po`u >'epesa katag~hs gi`a n`a m`hn +gkremist~w. O<i >astrap`es m'' >'exwsan <olo~uje ki >'ekleisa +t`a m'atia m`hn tuflwj~w, ka`i kat'aqama, p'istoma, per'imena. +<'Olo t`o pan'uyhlo boun`o >'etreme, ka`i du`o >'elata d'ipla mou +tsak'isthkan >ap'' t`h m'esh ka`i br'onthxan q'amou. +>'Eniwja t`o jei'afi to~u kerauno~u st`on >a'era, ka`i xafnik`a +x'espase <h mp'ora, >'epesen <o >'anemos, ka`i qontr'es, jerm`es +st'ales broq`h qt'uphsan t`a dentr`a ka`i t`o q~wma. +T`o jum'ari, <h jro'umpa, t`o fask'omhlo, t`o flisko'uni, +qtuphm'ena >ap'' t`o ner'o, t'inaxan t`is murwdi'es tous +ki <'olh <h g~hs m'urise. +\from{Kazantzakis' ``Symposium''} + +\medskip +>All'' >ako'usontai, >e'anper e>~u dok~h|s l'egein. t'ode d'e sou +>enen'ohsa <'ama l'egontos, ka`i pr`os >emaut`on skop~w; e>i +<'oti m'alist'a me E>uj'ufrwn did'axeien, <ws o<i jeo`i <'apantes +t`on toio~uton j'anaton <hgo~untai >'adikon e>~inai, t'i m~allon >eg`w +mem'ajhka par'' E>uj'ufronos, t'i pot'' >est`in t`o <'osi'on te ka`i +t`o >an'osion? jeomis`es m`en g`ar to~uto t`o >'ergon, <ws >'eoiken, +e>'ih >'an; >all`a g`ar o>u to'utw| >ef'anh >'arti <wrism'ena t`o +<'osion ka`i m'h; t`o g`ar jeomis`es >`on ka`i jeofil`es >ef'anh. +<wste to'utou m`en >af'ihm'i se, >~w E>uj'ufron; e>i bo'ulei, p'antes +a>ut`o <hge'isjwn jeo`i >'adikon ka`i p'antes miso'untwn. >all'' +>~ara to~uto n~un >epanorj'wmeja >en t~w| l'ogw|, <ws <`o m`en >`an +p'antes o<i jeo`i mis~wsin, >an'osi'on >estin, <`o d'' >`an fil~wsin, +<'osion; <`o d'' >`an o<i m`en fil~wsin, o<i d`e mis~wsin, o>ud'etera +>`h amf'otera? >~ar'' o<'utw bo'ulei <hm~in <wr'isjai n~un per`i to~u +<os'iou ka`i to~u >anos'iou? +\from{Plato's ``Euthyphro''} + +}} + +\def\sample{\text\table} + +\init diff --git a/Master/texmf-dist/doc/fonts/levy/makeall b/Master/texmf-dist/doc/fonts/levy/makeall new file mode 100644 index 00000000000..c12e1612418 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/makeall @@ -0,0 +1,20 @@ +#!/bin/sh +# In this script "$@" stands for the set of arguments passed to the +# script, as expanded by the UNIX shell; these arguments are passed, +# without further expansion, to `makefont'. For examply, typing +# +# makeall boo +# +# to the UNIX shell has the same effect as typing +# +# makefont grreg10 boo +# makefont grreg8 boo +# makefont grbld10 boo +# makefont grtt10 boo +# +# + +makefont grreg10 "$@" +makefont grreg8 "$@" +makefont grbld10 "$@" +makefont grtt10 "$@" diff --git a/Master/texmf-dist/doc/fonts/levy/makefont b/Master/texmf-dist/doc/fonts/levy/makefont new file mode 100644 index 00000000000..d071359689e --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/makefont @@ -0,0 +1,18 @@ +#!/bin/sh +# In this script $# stands for the number of arguments, not including the +# command name. $0 is the command name, $1 the first argument, and so +# on. For instance, typing +# +# makefont grreg10 alw 1 +# +# to the UNIX shell gives the same result as typing +# +# cmmf '\mode:=alw;mag:=magstep(1);batchmode;input grreg10' +# + +case $# in +0) echo $0 source [ mode [ mag ]];; +1) cmmf '\mode:=localmode;batchmode;input '$1;; +2) cmmf '\mode:='$2';batchmode;input '$1;; +3) cmmf '\mode:='$2';mag:=magstep('$3');batchmode;input '$1;; +esac diff --git a/Master/texmf-dist/doc/fonts/levy/testfont b/Master/texmf-dist/doc/fonts/levy/testfont new file mode 100644 index 00000000000..470e6835344 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/testfont @@ -0,0 +1,25 @@ +#!/bin/sh +# In this script $1 stands for the first argument passed to the +# script. The three lines preceding EOF are passed as standard +# input to the program called on the first line. For example, +# typing +# +# testfont foo +# +# to the UNIX shell has the same effect as typing +# +# tex grtestfont %this line is read by the shell +# foo %these three lines are read by TeX +# \bigtest +# \end +# mv grtestfont.dvi foo.dvi %this is again read by the shell +# +# mv means move, or rename. +# + +tex grtestfont << EOF +$1 +\bigtest +\end +EOF +mv grtestfont.dvi $1.dvi diff --git a/Master/texmf-dist/doc/fonts/levy/todo.txt b/Master/texmf-dist/doc/fonts/levy/todo.txt new file mode 100644 index 00000000000..4a6f40c34b7 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/levy/todo.txt @@ -0,0 +1,9 @@ +create digamma + +add kerning, especially between accents and capitals + +create more typefaces (italics?) + +complete hyphenation table + +create tick marks for numbers |