%!TEX TS-program = xetex %!TEX encoding = UTF-8 Unicode \hoffset -2.95mm \input eplain \beginpackages \usepackage{url} \usepackage{color} \endpackages \enablehyperlinks \voffset -8mm \vsize 245mm \tolerance 1414 \hbadness 1414 \hyphenpenalty 500 \finalhyphendemerits 7500 \emergencystretch 5pt \hfuzz 0.3pt \vfuzz=\hfuzz % paragraph spacing \parskip 0pt \parindent 1.2em \baselineskip 14pt \frenchspacing % line break macro; like `\\' in LaTeX or
in HTML \def\nl{\hfil\break} % for forcing a page break within a paragraph; like \pagebreak in LaTeX \def\pagebreak{\vadjust{\eject}} % like \newpage in LaTeX; could be used e.g. for the end of a chapter \def\newpage{\vfill\eject} %++++++++++++++++++++++++++++++++++++++++++++++++ % footnote macro from the TeXbook \catcode`\@=11 \def\footnote#1{\edef\@sf{\spacefactor\the\spacefactor}#1\@sf \insert\footins\bgroup\ninepoint \interlinepenalty100 \let\par=\endgraf \leftskip=0pt \rightskip=0pt \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000 \smallskip\item{#1}\bgroup\strut\aftergroup\@foot\let\next} \skip\footins=12pt plus 2pt minus 4pt % space added when footnote exists \dimen\footins=30pc % maximum footnotes per page \font\ninerm="EB Garamond 12 Regular:+lnum,mapping=tex-text" at 9.4pt \font\ninett=cmtt9 at 9.5pt \def\ninepoint{\def\rm{\fam0\ninerm}% \def\tt{\fam\ttfam\ninett}% \normalbaselineskip=11pt \setbox\strutbox=\hbox{\vrule height8pt depth3pt width\z@}% \normalbaselines\rm} \catcode`\@=12 %++++++++++++++++++++++++++++++++++++++++++++++++ %\font\tt=cmtt10 scaled \magstep1 \font\ttsmall=cmtt10 scaled \magstephalf \font\tt=cmtt10 at 11pt % a spaced smallcap font for the page header \font\headerfont="EB Garamond 12 Regular:+smcp,letterspace=6,mapping=tex-text" at 12pt \headline={\hfil} \footline={\large\hfil\folio\hfil} \font\tiny="EB Garamond 12 Regular:mapping=tex-text" at 5pt \font\scriptsize="EB Garamond 12 Regular:mapping=tex-text" at 7pt \font\footnotesize="EB Garamond 12 Regular:mapping=tex-text" at 8pt \font\small="EB Garamond 12 Regular:mapping=tex-text" at 9pt \font\normalsize="EB Garamond 12 Regular:mapping=tex-text" at 10pt \font\large="EB Garamond 12 Regular:+lnum,mapping=tex-text" at 12pt \font\largeit="EB Garamond 12 Regular/I:+lnum,mapping=tex-text" at 12pt \font\Large="EB Garamond 12 Regular:mapping=tex-text" at 14pt \font\LARGE="EB Garamond 12 Regular:mapping=tex-text" at 17pt \font\huge="EB Garamond 12 Regular:mapping=tex-text" at 20pt \font\Huge="EB Garamond 12 Regular:mapping=tex-text" at 25pt \font\sans="DejaVu Sans/B:mapping=tex-text" at 12pt% sansserif font \font\Sans="DejaVu Sans/B:mapping=tex-text" at 14pt% larger sans font %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % alterations to the plain.tex font assignments % to allow the use of EB Garamond in math mode at 12pt. % for the maths on page 4. % roman font for normal size numerals \font\tenrm="EB Garamond 12 Regular:+lnum,mapping=tex-text" at 12pt % font for superscripts, subscripts and numerators and denominators \font\sevenrm="EB Garamond 12 Regular:+lnum,mapping=tex-text" at 9pt % math italic font \font\teni="EB Garamond 12 Regular/I:+lnum,mapping=tex-text" at 12pt % math symbol font, for the multiplication symbol and minus sign \font\tensy=cmsy10 at 12pt \catcode`\@=11 \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm \def\rm{\fam\z@\tenrm} \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei \def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni} \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy \def\cal{\fam\tw@} %\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex \catcode`\@=12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\heading#1{\bigskip\centerline{\sans#1}\nobreak\smallskip\nobreak}% macro for headings %%%%%%%%%%%%%%%%%%%%%%% % START OF DOCUMENT %%%%%%%%%%%%%%%%%%%%%%% \large% set the main font for the document \centerline{\Sans Font size}\bigskip \noindent Taking advantage of the fact that \TeX\ commands are case sensitive, if you had three font sizes in a book you could name them: % these three examples are set using the \verbatim macro from Eplain \verbatim% eight point font for footnotes and index \font\pala="Palatino Linotype:mapping=tex-text" at 8pt |endverbatim\medskip \verbatim% ten point font for body text \font\Pala="Palatino Linotype:mapping=tex-text" at 10pt |endverbatim\medskip \verbatim% twelve point font for headings \font\PALA="Palatino Linotype:mapping=tex-text" at 12pt |endverbatim\bigskip \noindent If you need more sizes you could borrow LaTeX's font size naming system:\smallskip \noindent {\tiny tiny} {\scriptsize scriptsize} {\footnotesize footnotesize} {\small small} {\normalsize normalsize} {\large large} {\Large Large} {\LARGE LARGE} {\huge huge} {\Huge Huge} \bigskip \font\minikin="[lmroman5-regular]" at 3pt \font\brilliant="[lmroman5-regular]" at 4pt \font\diamond="[lmroman5-regular]" at 4.5pt \font\pearl="[lmroman5-regular]" at 5pt \font\ruby="[lmroman5-regular]" at 5.5pt \font\nonpareil="[lmroman6-regular]" at 6pt \font\emerald="[lmroman6-regular]" at 6.5pt \font\minion="[lmroman7-regular]" at 7pt \font\brevier="[lmroman8-regular]" at 8pt \font\bourgeois="[lmroman9-regular]" at 9pt \font\longprimer="[lmroman10-regular]" at 10pt \font\smallpica="[lmroman10-regular]" at 11pt \font\pica="[lmroman12-regular]" at 12pt \font\english="[lmroman12-regular]" at 14pt \font\twolinebrevier="[lmroman12-regular]" at 16pt \font\greatprimer="[lmroman17-regular]" at 18pt \font\paragon="[lmroman17-regular]" at 20pt \font\doublepica="[lmroman17-regular]" at 22pt \font\twolinepica="[lmroman17-regular]" at 24pt \font\twolineenglish="[lmroman17-regular]" at 28pt \font\twolinegreatprimer="[lmroman17-regular]" at 36pt \font\twolinedoublepica="[lmroman17-regular]" at 44pt \font\canon="[lmroman17-regular]" at 48pt \font\fivelinepica="[lmroman17-regular]" at 60pt \font\sixlinepica="[lmroman17-regular]" at 72pt {\overfullrule0pt \noindent Or make use of the traditional names for sizes of type:\nl {\minikin Minikin (3pt)} {\brilliant Brilliant (4pt)} {\diamond Diamond (4½pt)} {\pearl Pearl (5pt)} {\ruby Agate (or Ruby) (5½pt)} {\nonpareil Nonpareil (6pt)} {\emerald Emerald (6½pt)} {\minion Minion (7pt)} {\brevier Brevier (8pt)} {\bourgeois Bourgeois (9pt)} {\longprimer Long-primer (10pt)} {\smallpica Small-pica (11pt)} {\pica Pica (12pt)} {\english English (14pt)} {\twolinebrevier Two-line brevier~(16pt)} {\greatprimer Great-primer (18pt)} {\paragon Paragon~(20pt)}\nl {\doublepica Two-line small pica (or double pica) (22pt)}\nl {\twolinepica Two-line pica (24pt)}\nl {\twolineenglish Two-line english (28pt)}\nl {\twolinegreatprimer Two-line great-primer (36pt)}\nl {\twolinedoublepica Two-line double pica (44pt)}\nl {\canon French canon (48pt)}\nl {\fivelinepica Five-line pica (60pt)}\nl {\sixlinepica\spaceskip.15em Six-line pica (72pt)} } \font\latinseventeen="Latin Modern Roman 10 Regular/S=17:mapping=tex-text" at 12pt \font\latinten="Latin Modern Roman 10 Regular/S=10:mapping=tex-text" at 12pt \font\latinfive="Latin Modern Roman 10 Regular/S=5:mapping=tex-text" at 12pt \heading{Optical Sizes} \noindent In the era of metal type, each point size of a font differed slightly from every other. Fonts designed for smaller sizes, e.g. footnotes\footnote{*}{In this footnote, the text has been set in EB Garamond's 8pt variant, chosen automatically by the {\tt size} OpenType tag. This footnote is actually set in 9.4pt type. The threshold between the 12pt and the 8pt fonts seems to be 9.45pt.} (around eight point) would tend to be wider and heavier and more widely set than fonts designed for display use (eighteen points and above). With the advent of phototypesetting and later on digital outline fonts it became technically simple (and cheaper) to make different point sizes by enlarging and shrinking the font from one size of the original metal font, usually the 12pt. This is ok if the font is to be used for book sizes (around 10pt), but at display sizes the font will look too heavy, and at small sizes the font will look too thin. EB Garamond has two optical sizes: 8pt, for footnotes, and 12pt, for body text. Many Adobe fonts have a larger range of optical sizes. The Latin Modern fonts, which are OpenType derivatives of \TeX’s Computer Modern fonts also have a wide range of optical sizes. They are used in the list of names of sizes of type on the previous page. \headline={\hfil\headerfont font size and leading\hfil} \heading{Leading} \noindent {\ttsmall\string\baselineskip} sets the leading. The {\tt plain.tex} default is 12pt. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\medskip \rightline{This paragraph is set 12/14, i.e. 12pt type on 14pt leading (the default in this document).}\bigskip {\Large\baselineskip17pt Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \par}\smallskip \rightline{This paragraph is set 14/17.}\bigskip This paragraph is set using a macro: \verbatim \def\hugepar#1{{\huge\baselineskip24pt#1\par}} |endverbatim \def\hugepar#1{{\huge\baselineskip24pt#1\par}} \hugepar{ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.}\smallskip \rightline{This paragraph is set 20/24.}\bigskip Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \smallskip \rightline{Back to the default.} \def\star{\leavevmode\lower2.5pt\hbox{*}} \def\stars{\centerline{\star\qquad\star\qquad\star}} \stars \newpage \noindent Some slightly more complicated macros to take care of font size and leading. If you use {\tt\string\it} when {\tt\string\twelvepoint} is in force you get 12pt italic, if you use {\tt\string\it} when {\tt\string\tenpoint} is in force you get 10pt italic. \bigskip \verbatim \font\twerm="EB Garamond 12 Regular:mapping=tex-text" at 12pt \font\tweit="EB Garamond 12 Regular/I:mapping=tex-text" at 12pt \font\twesc="EB Garamond 12 Regular:+smcp,mapping=tex-text" at 12pt \font\tenrm="EB Garamond 12 Regular:mapping=tex-text" at 10pt \font\tenit="EB Garamond 12 Regular/I:mapping=tex-text" at 10pt \font\tensc="EB Garamond 12 Regular:+smcp,mapping=tex-text" at 10pt \def\twelvepoint{\def\rm{\twerm}\def\it{\tweit}\def\sc{\twesc}% \normalbaselineskip=15pt% \setbox\strutbox=\hbox{\vrule height10.625pt depth4.375pt width0pt}% \normalbaselines\rm} \def\tenpoint{\def\rm{\tenrm}\def\it{\tenit}\def\sc{\tensc}% \normalbaselineskip=12pt% \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width0pt}% \normalbaselines\rm} |endverbatim\bigskip \font\twerm="EB Garamond 12 Regular:mapping=tex-text" at 12pt \font\tweit="EB Garamond 12 Regular/I:mapping=tex-text" at 12pt \font\twesc="EB Garamond 12 Regular:+smcp,mapping=tex-text" at 12pt \font\tenrm="EB Garamond 12 Regular:mapping=tex-text" at 10pt \font\tenit="EB Garamond 12 Regular/I:mapping=tex-text" at 10pt \font\tensc="EB Garamond 12 Regular:+smcp,mapping=tex-text" at 10pt \def\twelvepoint{\def\rm{\twerm}\def\it{\tweit}\def\sc{\twesc}% \normalbaselineskip=15pt% \setbox\strutbox=\hbox{\vrule height10.625pt depth4.375pt width0pt}% \normalbaselines\rm} \def\tenpoint{\def\rm{\tenrm}\def\it{\tenit}\def\sc{\tensc}% \normalbaselineskip=12pt% \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width0pt}% \normalbaselines\rm} {\hsize 0.7\hsize {\twelvepoint\noindent Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut {\it labore et dolore magna aliqua}. {\sc Utc enim ad minim} veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \hfill 12/15\kern12pt }\medskip {\tenpoint\noindent Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut {\it labore et dolore magna aliqua}. {\sc Utc enim ad minim} veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \hfill 10/12\kern12pt }\medskip } These macros are adapted from the {\tt\string\twelve} macro given on page 127 of `The Advanced \TeX book' by David Salomon compared with the {\tt\string\tenpoint} and {\tt\string\ninepoint} macros in \href{http://www.ctan.org/tex-archive/macros/plain/base}{\tt manmac.tex}. \medskip\stars\medskip \noindent Since the default font size and leading of this document is 12/14 as opposed to the {\tt plain.tex} setting of 10/12, this font size/leading could be obtained by setting {\tt\string\normalbaselineskip=14pt}, and calling this at the start of the document by typing {\tt\string\normalbaselines\tt\string\large} instead of {\tt\string\large} at Line 136. The {\tt plain.tex} {\tt\string\normalbaselines} macro sets {\tt\string\baselineskip}, {\tt\string\lineskip} and {\tt\string\lineskiplimit}:\medskip \verbatim \def\normalbaselines{\lineskip\normallineskip \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} |endverbatim\medskip \noindent there is not much point in changing {\tt\string\normallineskip} and {\tt\string\normallineskiplimit} from the default values. You should also change the value of {\tt\string\strut} by altering {\tt\string\strutbox}. {\tt\string\struts} are empty boxes that are equivalent to the {\tt height} and {\tt depth}\footnote{*}{the space below the baseline, to allow for descending letters.} of a normal line. They are used in tables to maintain the correct interlinear spacing and also in the footnote macro, which puts a {\tt\string\strut} at the beginning and end of every footnote to maintain the correct spacing between footnotes.\footnote{†}{If you want to see where the {\tt\string\strut}s are in tables and footnotes, change {\tt\string width0pt} to {\tt\string width1pt} inside of {\tt\string\strutbox}.} The default Plain setting is \verbatim\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width0pt}|endverbatim\ A setting for a 14pt {\tt\string\baselineskip} would be: \verbatim \setbox\strutbox=\hbox{\vrule height9.917pt depth4.083pt width0pt} |endverbatim I used the ratios between {\tt height} and {\tt\string\baselineskip} and {\tt depth} and {\tt\string\baselineskip} in the 12pt Plain {\tt\string\strutbox} to calculate {\tt height} and {\tt depth} for the 14pt {\tt\string\strutbox}:\nl ${8.5\over12} \times 14 =$ 9.91666, ${3.5\over12} \times 14 =$ 4.08333. Other things to change would be {\tt\string\topskip} and {\tt\string\makeheadline} and {\tt\string\makefootline}. {\tt plain.tex} uses {\tt\string\topskip} to set the distance from the top of the page to the first baseline. The default setting is 10pt. (The first line of the page does not have leading above it, so {\tt\string\topskip} is equivalent to the size of the font.) Since this document uses 12pt type instead of 10pt type we could change it to \verbatim\topskip=12pt|endverbatim.\footnote{*}{In Chapter 26.2 of {\it\TeX\ by Topic} Victor Eijkhout says that a 10pt {\tt\string\topskip} can be used for font sizes up to 13pt, so adjusting {\tt\string\topskip} in this document is probably not necessary. The practical effect of changing {\tt\string\topskip} to 12pt is that it pushes down the whole text block by 2pts.} Adjusting {\tt\string\makefootline} for a 14pt {\tt\string\baselineskip} is easy:\medskip \verbatim \def\makefootline{\baselineskip28pt\lineskiplimit0pt\line{\the\footline}} |endverbatim\medskip \abovedisplayskip 6pt plus 1.5pt minus 4.5pt \belowdisplayskip 6pt plus 1.5pt minus 4.5pt Adjusting {\tt\string\makeheadline} is a bit more complicated. On page 464 of {\largeit A Plain \TeX\ Primer}, Malcolm Clark gives a formula to find $v$, the {\tt\string\vskip} in {\tt\string \makeheadline}: $$v = 2 \times b - t + h$$ where $b$ is the {\tt\string\baselineskip}, $t$ is the {\tt\string\topskip}, and $h$ is the {\tt height} of the {\tt\string\strut}. In this example \hbox{$b$ = 14pt, $t$ = 12pt and $h$ = 9.917pt: $v = 2 \times 14 - 12\ + $ 9.917 = 25.917}. So {\tt\string \makeheadline} for our 14pt {\tt\string \baselineskip} would be:\medskip \verbatim \def\makeheadline{\vbox to 0pt{\vskip-25.917pt \line{\vbox to9.917pt{}\the\headline}\vss}\nointerlineskip} |endverbatim\medskip The settings given above for {\tt\string\makeheadline} and {\tt\string\makefootline} can be used if you want to maintain the Plain page layout of having a lineskip between the header and the text block and a lineskip between the text block and the footer. You could disregard that and use whatever numbers produce a visually appealing page layout. See the file ‘210x140a.tex’ on the Page Layout page, in which {\tt\string\vsize}, {\tt\string\normalbaselineskip}, {\tt\string\strutbox}, {\tt\string\topskip}, {\tt\string\makeheadline} and {\tt\string\makefootline} have been adjusted for a 12/16 setting. \bigskip Another thing to alter for a 14pt {\tt\string\baselineskip} would be the size of {\tt\string\bigskip}, {\tt\string\medskip}, {\tt\string\smallskip}. ({\tt\string\bigskip} = a lineskip, give or take, {\tt\string\medskip} = half a lineskip, give or take, {\tt\string\smallskip} = a quarter of a lineskip, give or take.) They are defined like this in {\tt plain.tex}:\medskip \verbatim \def\smallskip{\vskip\smallskipamount} \def\medskip{\vskip\medskipamount} \def\bigskip{\vskip\bigskipamount} |endverbatim\medskip You can overwrite the {\tt plain.tex} defaults:\medskip \verbatim \smallskipamount=3pt plus 1pt minus 1pt \medskipamount=6pt plus 2pt minus 2pt \bigskipamount=12pt plus 4pt minus 4pt |endverbatim\medskip \noindent by putting new settings near the beginning of your document:\medskip \verbatim \smallskipamount=3.5pt plus 1.166pt minus 1.166pt \medskipamount=7pt plus 2.333pt minus 2.333pt \bigskipamount=14pt plus 4.666pt minus 4.666pt|endverbatim \bye