From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- fonts/trajan/README | 94 ++ fonts/trajan/trajan.dtx | 2387 ++++++++++++++++++++++++++++++++++++++++++++ fonts/trajan/trajan.ins | 98 ++ fonts/trajan/trajan.pdf | Bin 0 -> 123511 bytes fonts/trajan/trjnr10.afm | 340 +++++++ fonts/trajan/trjnr10.pfb | Bin 0 -> 26332 bytes fonts/trajan/trjnr10.tfm | Bin 0 -> 780 bytes fonts/trajan/trjnsl10.afm | 340 +++++++ fonts/trajan/trjnsl10.pfb | Bin 0 -> 26867 bytes fonts/trajan/trjnsl10.tfm | Bin 0 -> 820 bytes fonts/trajan/trytrajan.pdf | Bin 0 -> 61035 bytes fonts/trajan/trytrajan.tex | 50 + 12 files changed, 3309 insertions(+) create mode 100644 fonts/trajan/README create mode 100644 fonts/trajan/trajan.dtx create mode 100644 fonts/trajan/trajan.ins create mode 100644 fonts/trajan/trajan.pdf create mode 100644 fonts/trajan/trjnr10.afm create mode 100644 fonts/trajan/trjnr10.pfb create mode 100644 fonts/trajan/trjnr10.tfm create mode 100644 fonts/trajan/trjnsl10.afm create mode 100644 fonts/trajan/trjnsl10.pfb create mode 100644 fonts/trajan/trjnsl10.tfm create mode 100644 fonts/trajan/trytrajan.pdf create mode 100644 fonts/trajan/trytrajan.tex (limited to 'fonts/trajan') diff --git a/fonts/trajan/README b/fonts/trajan/README new file mode 100644 index 0000000000..04fbc1cb5e --- /dev/null +++ b/fonts/trajan/README @@ -0,0 +1,94 @@ + The trajan bundle provides fonts based on the capitals carved on +the Trajan column in Rome in 114 AD. Many typographers think these rank +first among the Roman's artistic legacy. +The font is uppercase letters together with punctuation +and some analphabetics; no lowercase or digits. + +Changes in version 1.1 (2005/06/29) +o Font supplied as Postscript Type1 as well as METAFONT + +Changes in version 1.0 (1999/04/02) +o First public release + +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 1999--2005 Peter R. Wilson + + This work may be distributed and/or modified under the + conditions of the Latex Project Public License, either + version 1.3 of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + and version 1.3 or later is part of all distributions of + LaTeX version 2003/06/01 or later. + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files: + README (this file) + trajan.dtx + trajan.ins + trajan.pdf + and the derived files + trajan.sty + t1trjn.fd + trajan.map + trjnr10.mf + trjnsl10.mf + trjnlig.mf + trjnpunct.mf + trjnromanp.mf + trjnromanu.mf + trjntitle.mf + +------------------------------------------------------------------ + The distribution consists of the following files: +README (this file) +trajan.dtx +trajan.ins +trajan.pdf (user manual) +trytrajan.tex (example usage) +trytrajan.pdf +trjnr10.afm +trjnr10.pfb +trjnr10.tfm +trjnsl10.afm +trjnsl10.pfb +trjnsl10.tfm + + To install the bundle: +o If you want MetaFont sources uncomment the appropriate lines in trajan.ins. +o run: latex trajan.ins, which will generate: + trajan.sty + *.fd files + trajan.map + and possibly several *.mf files +o Move *.sty and *.fd files to a location where LaTeX will find them + e.g., .../texmf-local/tex/latex/trajan +o Move *.afm, *.pfb and *.tfm files to where LaTeX looks for font information + e.g., .../texmf-var/fonts/afm/public/trajan/*.afm + .../texmf-var/fonts/type1/public/trajan/*.pfb + .../texmf-var/fonts/tfm/public/trajan/*.tfm +o Add the *.map information to the dvips/pdftex font maps + If you want the MetaFont version as well: + o Move the *.mf files to, e.g., .../texmf-var/fonts/source/public/trajan + o Add a line like the following to the (texmf/fontname/)special.map file: + trjn10.mf public trajan + trjnsl10.mf public trajan +o Refresh the database + (for more information on the above see the FAQ). + +o run: (pdf)latex trytrajan for a test of the font + + If you want a full manual with all the MetaFont and LaTeX code and commentry, +comment out the \OnlyDescription line in trajan.dtx. +o run: (pdf)latex trajan.dtx +o (for an index run: makeindex -s gind.ist *.idx) +o run: (pdf)latex *.dtx +o Print *.(pdf|dvi) for a hardcopy of the package manual + +2005/06/29 +Peter Wilson +herries dot press at earthlink dot net + diff --git a/fonts/trajan/trajan.dtx b/fonts/trajan/trajan.dtx new file mode 100644 index 0000000000..fac3bf4b49 --- /dev/null +++ b/fonts/trajan/trajan.dtx @@ -0,0 +1,2387 @@ +% \iffalse meta-comment +% +% trajan.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{trajan.dtx} +\end{document} +% +% +% +% \fi +% +% \CheckSum{37} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/04/02}{First public release} +% \changes{v1.0a}{2001/01/02}{Fixed missing * in .fd files} +% \changes{v1.1}{2005/06/29}{Added map file} +% \changes{v1.1}{2005/06/29}{Changed contact details} +% +% \def\fileversion{v1.0} \def\filedate{1999/04/02} +% \def\fileversion{v1.0a} \def\filedate{2001/01/02} +% \def\fileversion{v1.1} \def\filedate{2005/06/29} +% +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% +% \title{The \Lpack{Trajan} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{trajan} package provides a set of uppercase fonts as +% carved on the Trajan column in Rome in 114 \textsc{ad}. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% Around the beginning of the 16th century several authors published designs +% for uppercase characters. The more well known among these were Albrecht +% D\"{u}rer who wrote \textit{On the Just Shaping of Letters} which was +% published in Nuremberg in 1525, and Geofroy +% Tory who wrote \textit{Champ Fleury} which was published in Paris in 1529. +% Fra Luca Bartolomeo de Pacioli preceeded by of these by developing his +% recipe for uppercase characters in 1497 and which was published in +% \textit{De Divina Proportione} at Venice in 1509. Metafont versions +% of the D\"{u}rer and Pacioli fonts are available\footnote{In directories +% \texttt{duerer} and \texttt{pacioli} respectively, in the font area.} +% from CTAN. +% +% Many typographers rank the capitals carved on the Trajan column in +% Rome, dated at 114~\textsc{ad}, as the high point of the Roman's +% artistic legacy. These letter shapes were the best basic form in the +% subsequent development of uppercase fonts. The top line of the letters +% on the Trajan column are about six feet above eye level, with the letters +% being about four and a half inches tall. There are six lines of text +% and the letter height on the lowest line has been reduced to about 75\% +% of the those at the top of the inscription. +% +% Fortunately, Jan Tschichold~\cite{TSCHICHOLD92} provides +% a more accessible source for the Trajan characters, and I have used +% his work in developing this rendition of the lettering. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and source code for the package is in +% later sections. +% +% +% \section{The \Lpack{trajan} package} \label{sec:usc} +% +% The Romans did not have the J, U or W letters in their abecedary, and +% rarely used H, K or Z. Jan Tschichold designed glyphs for these six +% letters to complement the character set on the Trajan column. +% +% I have also added modified versions of Knuth's Computer Modern punctuation +% characters so that, perhaps, the Trajan font could be used as a +% titling font. +% +% Trajan's font as provided here consists of the uppercase letters, +% the punctuation marks !.,;:`'?, +% the hyphen together with the en- and em-dash, +% and the analphabetic characters ()[]\&. +% All the chacters are accessed by typing them as you usually do in \LaTeX. +% +% \DescribeEnv{trjnfamily} +% The family name is \texttt{trjn}. Use the \texttt{trjnfamily} environment +% for long stretches of text. +% +% \DescribeMacro{\texttrjn} +% Use \verb?\texttrjn{a word or two}? to typeset a \texttt{word or two} in +% the Trajan font. +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Tsc92]{TSCHICHOLD92} +% Jan Tschichold. +% \newblock \emph{Treasury of Alphabets and Lettering}. +% \newblock W.~W.~Norton, 1992. +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the two parameter files first, and start by announcing +% what they are for. +% \begin{macrocode} +%<*up|sl> +% %%% TRJNR10.MF Computer Trajan Roman at 10 point design size. +% %%% TRJNSL10.MF Computer Trajan Slanted at 10 point design size. +% +% \end{macrocode} +% Parameters from CMR10.MF are used as much as possible. We also +% make sure that \Lpack{cmbase} is loaded as well as plain Metafont. +% \begin{macrocode} +if unknown cmbase: input cmbase fi + +%font_identifier:="TRJNR"; font_size 10pt#; +%font_identifier:="TRJNSL"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{hstretch} +% \begin{macro}{vstretch} +% \begin{macro}{width-adj} +% \begin{macro}{serif-fit} +% \begin{macro}{cap-serif-fit} +% \begin{macro}{letter-fit} +% The majority of the parameters and values are the same for both +% fonts. +% \begin{macrocode} +u#:=20/36pt#; % unit width +hstretch:=1; % horizontal stretching factors; in lieu of u +vstretch:=1; % vertical stretching factor +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{body-height} +% \begin{macro}{asc-height} +% \begin{macro}{cap-height} +% \begin{macro}{fig-height} +% \begin{macro}{x-height} +% \begin{macro}{math-axis} +% \begin{macro}{bar-height} +% \begin{macro}{comma-depth} +% \begin{macro}{desc-depth} +% \begin{macro}{half-height} +% \begin{macrocode} +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders +half_height#:=1/2cap_height#; % half the height of caps + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{side} +% \begin{macro}{thickfudge} +% \begin{macro}{mediumfudge} +% \begin{macro}{thinfudge} +% \begin{macro}{thick} +% \begin{macro}{medium} +% \begin{macro}{thin} +% At the `design size' of the Trajan font, the thickest parts of the letters +% were 1/10 of the height. I have increased the thickness a bit to make +% the font look a bit more substantial at the more common printing sizes. +% \begin{macrocode} +side#:=cap_height#; % Height and width of the square +thickfudge:=1/9; mediumfudge:=1/2; thinfudge:=1/3; +thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font +medium#:=mediumfudge*thick#; % width of medium limbs +thin#:=thinfudge*thick#; % thinness of all thin limbs + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{eta} +% \begin{macro}{serif-darkness} +% \begin{macro}{sadj} +% \begin{macro}{crisp} +% \begin{macro}{tiny} +% \begin{macro}{fine} +% \begin{macro}{rule-thickness} +% \begin{macrocode} +eta:=2-sqrt2; % darkness for serifs; $\eta \approx 0.58$ +serif_darkness:=eta; +sadj:=0.6; % serif darkness adjustment +crisp#:=0pt#; % diameter of serif corners +tiny#:=0pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{cap-stem} +% \begin{macro}{stem} +% \begin{macro}{dish} +% \begin{macro}{bracket} +% \begin{macro}{jut} +% \begin{macro}{cap-jut} +% \begin{macro}{beak-jut} +% \begin{macro}{slab} +% \begin{macro}{dslab} +% \begin{macrocode} +cap_stem#:=thick#; % thickness of majuscule stems +stem#:=thick#; % thickness of minuscule stems +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=thick#; % vertical distance from serif base to tangent +jut#:=thick#; % protrusion of lowercase serifs +cap_jut#:=thick#; % protrusion of uppercase serifs for I +beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs +slab#:=eps*1pt#; % serif and arm thickness +dslab#=0; %slab value used in Trajan fonts + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{hair} +% \begin{macro}{vair} +% |hair| is the lowercase hairline breadth, and |vair| is the vertical +% diameter of hairlines. +% \begin{macrocode} +hair#:=vair#:=thin#; + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{o} +% \begin{macro}{apex-o} +% \begin{macro}{apex-corr} +% These deal with fine tuning of some aspects of the glyphs. +% \begin{macrocode} +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=thin#; % amount of overshoot for diagonal junctions +apex_corr#=0pt#; % fine tuning of overshoot + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{slant} +% |slant| is the amount the font slopes to the right. It is different +% for the two fonts. +% \begin{macrocode} +%slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +%slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$ + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{fudge} +% \begin{macro}{superness} +% \begin{macro}{superpull} +% \begin{macro}{beak-darkness} +% \begin{macrocode} +fudge:=1; % factor applied to weights of heavy characters +superness:=1/sqrt2; % parameter for superellipses +superpull:=0; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{serifs} +% \begin{macro}{monospace} +% We are generating a seriffed, variable-width font. +% \begin{macrocode} +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{dot-size} +% \begin{macro}{square-dots} +% \begin{macro}{hefty} +% \begin{macro}{ligs} +% These parameters are required for the punctation glyphs. +% \begin{macrocode} +dot_size#:=38/36pt#; % size of dots +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +ligs:=2; % level of ligatures to be included + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{flare} +% \begin{macro}{stem-corr} +% \begin{macro}{curve} +% These parameters are required for the ampersand and question mark. +% \begin{macrocode} +flare#:=33/36pt#; % diameter of bulbs or breadth of terminals +stem_corr#:=1/36pt#; % small refinement of stem breadth +curve#:=30/36pt#; % lowercase curve breadth + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{whole-font} +% We are not generating a complete font. +% \begin{macrocode} +boolean whole_font; % try generating a complete font? +whole_font:=false; + +% \end{macrocode} +% \end{macro} +% +% Finally, call the driver file for the Trajan font. +% \begin{macrocode} +generate trjntitle %% switch to the driver file---Trajan title + +% +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% To a large extent the driver file is based on Alan Hoenig's +% \Lpack{dtitle.mf}. +% +% +% \begin{macrocode} +%<*mfd> +% This is TRJNTITLE.MF, adapted from my Pacioli cpctitle.mf +% This makes a short font. +% This file also contains special macros universally needed in the +% Trajan font but either not in the cmbase.mf file or +% modifications of this. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% MACRO SECTION %%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \end{macrocode} +% +% \begin{macro}{makebox} +% This is a new version of the \Lpack{cmbase.mf} |makebox| macro. +% Essentially, as we are only generating an uppercase font, we don't +% need all the horizontals for the lowercase characters. +% +% \begin{macrocode} +% A new version of cmbase.mf makebox macro +def makebox(text rule) = + for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth: + rule((l,y)t_,(r,y)t_); endfor % horizontals + for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals + for x=u*(1+floor(1/u)) step u until r-1: + rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals + if charic<>0: + rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{proofpcbb} +% The macro |proofpcbb(S, xoff, yoff)| draws crosses at the corners of +% Pacioli's +% square, and at the bottom and top midpoints, where the point |zS| is at +% position |(xoff,yoff)| in the square. +% \begin{macrocode} + +% A macro to delineate Trajan's bounding square in proof mode. +% Point z$ is at (xoff,yoff) in the bounding square. +def proofpcbb(suffix $)(expr xoff, yoff) = +if proofing > 0: + x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner + z$br = (x$bl+cap_height, y$bl); % BRHC + z$tr = (x$bl+cap_height, y$bl+cap_height); % TRHC + z$tl = (x$bl, y$bl+cap_height); % TLHC + z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points + pair hc, vc; + hc = (2u,0); vc = (0,2u); + pickup pensquare scaled 2; + for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc: + draw s-hc--s+hc; + draw s-vc--s+vc; + endfor +fi +enddef; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{cm-arm} +% \begin{macro}{arm} +% Hoenig's modification to Knuth's |arm| macro. +% \begin{macrocode} + +let cm_arm=arm; + +vardef arm(suffix $,$$,@)(expr darkness, armjut) = % arm from |z$| to |z$$| +numeric vjut_; vjut_= abs(bot y$l-bot y$$); +x@0=good.x(x$$r-armjut); y@0=y$r; + if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0); + if x$$>=x$: x@2=x@1 - vjut_; else: x@2=x@1+vjut_; fi y@2=y$l; + filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l]]{z@2-z$$l}... + z@2if x$$>=x$: {left} else: {right} fi + ---z$l--z$r--z@0--z$$r..cycle; % arm and beak + else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm + penlabels(@0,@1,@2); enddef; + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{foot} +% A macro to draw the bottom arm of the E, L and Z characters. +% |$|, |$l| and |$r| are points at LH end of the foot, with |$r| at +% the bottom. |$$|, |$$l| and +% |$$r| are points at the tip. |armjut| is the horizontal distance between +% the tip and the flat part of the foot. |@| is a letter (not used elsewhere +% as a point suffix). +% \begin{macrocode} + +vardef foot(suffix $, $$, @)(expr darkness, armjut) = % bottom arm on E and L +numeric vjut_; vjut_= abs(bot y$-bot y$$); +x@0=good.x(x$$r-armjut); y@0=y$r; + if serifs: + y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0); + x@2=x@1-vjut_; y@2=y$l; + filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2 + ---z$l--z$r--z@0--z$$r--cycle; % arm and beak + else: + filldraw z$l--z$r--(x$$r,y$r)--(x$$r,y$l)--cycle; + fi + penlabels(@0,@1,@2); enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{pulled-super-arc} +% \begin{macro}{pulled-arc} +% Hoenig's rewrite of Knuth's macros. +% \begin{macrocode} + +vardef pulled_super_arc.l(suffix $, $$)(expr darkness)= + pair corner; + if y$=y$r: corner=(x$l, y$$l); + else: corner=(x$$l,y$l); fi + z$l{corner-z$l}...(darkness)[corner, .5[z$l, z$$l]]{z$$l-z$l} + ...{z$$l-corner}z$$l enddef; + +vardef pulled_super_arc.r(suffix $, $$)(expr darkness)= + pair corner; + if y$=y$r: corner=(x$r,y$$r); + else: corner=(x$$r, y$r); fi + z$r{corner-z$r}...(darkness)[corner, .5[z$r, z$$r]]{z$$r-z$r} + ...z$$r{z$$r-corner} enddef; + +vardef pulled_arc@#(suffix $, $$)= + pulled_super_arc@#($,$$)(eta) enddef; + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{cm-font-setup} +% \begin{macro}{slim-font-setup} +% The basic font set up. +% \begin{macrocode} + +let cm_font_setup=font_setup; % Knuth's original font_setup + +def slim_font_setup = % trimmed font_setup for use with Trajan caps only + if monospace: let adjust_fit=mono_adjust_fit; + def mfudged=fudged enddef; + mono_charic#:=body_height#*slant; + if mono_charic#<0: mono_charic#:=0; fi + mono_charwd#:=9u#; define_whole_pixels(mono_charwd); + else: let adjust_fit=normal_adjust_fit; + def mfudged= enddef; fi + define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,bar_height, + dish,bracket,beak_jut,apex_o,apex_corr); + define_whole_pixels(letter_fit,fine,crisp,tiny); + define_whole_vertical_pixels(body_height,asc_height, + cap_height,x_height,comma_depth,desc_depth); + define_whole_blacker_pixels(hair,stem,cap_stem); + define_whole_vertical_blacker_pixels(vair,dslab,slab); +if slab.9fudge*$; fudged$:=fudged$+1; endfor endfor + rule_thickness:=ceiling(rule_thickness#*hppp); + heavy_rule_thickness:=ceiling(3rule_thickness#*hppp); + oo:=vround(.5o#*hppp*o_correction)+eps; + apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps; + lowres_fix(stem) 1.3; + ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem; + dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker; + dh#:=.6designsize; + more_super:=max(superness,sqrt .77superness); + hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$ + clear_pen_memory; + if fine=0: fine:=1; fi + forsuffixes $=fine,crisp,tiny: +%%% fine $ %%%% temporary formatting convention for MFT + if $>fudged.hair: $:=fudged.hair; fi + $.breadth:=$; + pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi; + $.nib:=savepen; breadth_[$.nib]:=$; + forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor +%%% @ $ %%%% restore ordinary formatting for $ + min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth); + if min_Vround +% \end{macrocode} +% +% \subsection{The majuscule code} +% +% The following code is based on the code for the Pacioli +% characters. The geometry, of course, is different for Trajan's characters. +% +% \begin{macrocode} +%<*maj> +% TRJNROMANU.MF Program files for formal Computer Trajan fonts. +% + +def checkthin= +if thin-currentbreadth0; forsuffixes $$=l, r: x7$$:=x7$$-.1u; endfor + x7:=x7-.1u; endfor +x6r=x7r; x6l=x7l; bot y6r=ypart point t1 of p; bot y6l=ypart point t2 of p'; +z6=.5[z6r,z6l]; +p:= subpath(0,t1) of p..(z6r-xeps+yeps)--(z6l+xeps+yeps).. + subpath(t2,infinity) of p'..(z1l+xeps)--cycle; +filldraw p; +filldraw z6l--z7l--z7r--z6r--cycle; +if serifs: + serif(7,6,a,sadj*serif_darkness,-cap_jut); + serif(7,6,b,sadj*serif_darkness, cap_jut); +fi +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The letter H. With serifs, this fills the square. The two legs are +% |thick|. The cross-bar is |medium|, like the A, and the bottom of the +% bar is at the half-height; +% \begin{macrocode} + +cmchar "Trajan's letter H"; +beginchar("H", u#+side#, cap_height#,0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); +pcshiftx := u/2; +y100 = h/2; x100 = pcshiftx + y100; % center point +pickup tiny.nib; +forsuffixes t=1,2,3,4: pos.t(thick,0); endfor +lft x1l=lft x2l=pcshiftx+cap_jut; bot y2=0; top y1=h; +filldraw stroke z1e--z2e; % left vertical stem +rt x3r= rt x4r=x1l+h-2cap_jut; y3=y1; y4=y2; +filldraw stroke z3e--z4e; % right vertical stem +pos5(medium, 90); pos6(medium,90); +x5=.5[x1r,x1l]; x6=.5[x3l,x3r]; bot y5r=bot y6r=h/2; +filldraw stroke z5e--z6e; % horizontal crossbar +if serifs: + serif(1,2,a,sadj*serif_darkness,-cap_jut); % top LL + serif(1,2,b,sadj*serif_darkness,cap_jut); % top LR + serif(2,1,c,sadj*serif_darkness,-cap_jut); % bottom LL + serif(2,1,d,sadj*serif_darkness,cap_jut); % bottom LR + serif(3,4,e,sadj*serif_darkness,-cap_jut); % top RL + serif(3,4,f,sadj*serif_darkness,cap_jut); % top RR + serif(4,3,g,sadj*serif_darkness,-cap_jut); % bottom RL + serif(4,3,h,sadj*serif_darkness,cap_jut); % bottom RR +fi +proofpcbb(100, y100, y100); +labels(1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{I} +% The letter I. +% \begin{macrocode} + +cmchar "Trajan's letter I"; +beginchar("I", u#+2cap_jut#+thick#, cap_height#,0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); +pcshiftx := u/2; +y100 = h/2; x100 = pcshiftx + cap_jut + 0.5cap_stem; % center point +pickup tiny.nib; checkthin; pos1(cap_stem,0); pos2(cap_stem,0); +x1=x2=hround(w/2); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % vertical stem +if serifs: + serif(1, 2, a, sadj*serif_darkness, -cap_jut); + serif(1, 2, b, sadj*serif_darkness, cap_jut); % top lft,rt + serif(2, 1, c, sadj*serif_darkness, -cap_jut); + serif(2, 1, d, sadj*serif_darkness, cap_jut); % bot lft,rt +fi +proofpcbb(100, y100, y100); +penlabels(1, 2, 100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{J} +% The letter J. The Romans didn't use J, but Tschichold designed a matching +% J, which I use here. The J extends 2*thick below the baseline. +% \begin{macrocode} + +cmchar "Trajan's letter J"; +beginchar("J",u#+2.5thick#+cap_jut#, cap_height#, 2thick#); +adjust_fit(0, cap_serif_fit#); pickup tiny.nib; +pcshiftx := u/2; +y100 = h/2; x100 = pcshiftx + 2.5thick; % center point +pos1(thick,0); pos2(thick,0); pos3(0.5thin, -90); +top y1=h; rt x1r=w-pcshiftx-cap_jut; x2=x1; bot y2=0; +lft x3=x1-2thick; bot y3r=-d; +filldraw stroke z1e--z2e{down}..{left}z3e; +if serifs: + serif(1,2,a,sadj*serif_darkness,-cap_jut); + serif(1,2,b,sadj*serif_darkness,cap_jut); +fi +proofpcbb(100, y100, y100); +penlabels(1,2,3,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{K} +% The letter K. With serifs its width is 7/8 square. +% \begin{macrocode} + +cmchar "Trajan's letter K"; +beginchar("K", u#+0.875side#, cap_height#,0); +adjust_fit(cap_serif_fit#,0); pickup tiny.nib; +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % square center +% the stem +pos1(thick,0); pos2(thick,0); +lft x1l=lft x2l=pcshiftx+cap_jut; + top y1=h; bot y2=0; + filldraw stroke z1e--z2e; % left stem +numeric alpha; alpha=(h++(h/2))/(h); +% top arm +pos3(alpha*medium,0); pos4(alpha*medium,0); +x4l=x1r; y4=y100; +x3l=x100+medium; y3=h; +% bottom arm +pos5(alpha*thick,0); pos6(alpha*thick,0); +z5l=z4l; +x6l=x3l+cap_jut; y6=0; +z0=whatever[z6r,z5r]=whatever[z3r,z4r]; % notch point +% draw the arms +filldraw z4l--z3l--z3r--z0--z6r--z6l--cycle; +if serifs: + serif(1,2,a,sadj*serif_darkness,-cap_jut); + serif(1,2,b,sadj*serif_darkness,cap_jut); + serif(2,1,c,sadj*serif_darkness,-cap_jut); + serif(2,1,d,sadj*serif_darkness,cap_jut); + numeric old_jut, old_brack; old_jut=cap_jut; old_brack=bracket; +% serifs on top leg + bracket:=.5old_brack;cap_jut:=.5old_jut; + serif(3,4,e,serif_darkness,-cap_jut); + bracket:=2old_brack; cap_jut:=2old_jut; + serif(3,4,f,.6serif_darkness, 0.5cap_jut); +% serifs on bottom leg + bracket:=.5old_brack;cap_jut:=.5old_jut; + serif(6,5,g,serif_darkness,-cap_jut); + bracket:=2old_brack; cap_jut:=2old_jut; + serif(6,5,h,.6serif_darkness, 0.5cap_jut); + cap_jut:=old_jut; bracket:=old_brack; +fi +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{L} +% The letter L. This is identical to the left leg and +% bottom arm of Trajan's E. It extends |medium| beyond half the square. +% \begin{macrocode} + +cmchar "Trajan's letter L"; +beginchar("L", u#+0.5side#+medium#, cap_height#,0); +adjust_fit(cap_serif_fit#,0); +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % square center +pickup tiny.nib; +pos1(thick,0); pos2(thick,0); +lft x1l=lft x2l=pcshiftx+cap_jut; top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +pickup crisp.nib; % prepare for lower arm +pos8(medium,-90); pos9(dslab,0); x8=x2; bot y8r=0; +rt x9r=hround(x100+medium); +y9=1.5thick; +foot(8,9,g,serif_darkness,medium); % lower arm +if serifs: + serif(1,2,a,sadj*serif_darkness,-cap_jut); + serif(2,1,b,sadj*serif_darkness,-cap_jut); + serif(1,2,d,serif_darkness,cap_jut); + temp_:=slab; slab:=medium; tmp_:=bracket; bracket:=thick+medium; + serif(2,1,c,serif_darkness,thick); + slab:=temp_; bracket:=tmp_; +fi +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,100); endchar; % end of "L" + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{M} +% The letter M. This has slightly sloping right and left legs. The outside +% serifs at the base are outside the square. +% \begin{macrocode} + +cmchar"Trajan's letter M"; +beginchar("M", u#+2cap_jut#+side#, cap_height#, 0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib; +pcshiftx := 0.5u+cap_jut; +y100=h/2; x100=pcshiftx+y100; % square center +pos1(medium,0); pos2(medium,0); % left leg + lft x1l=pcshiftx+cap_jut; top y1=h; bot y2=0; + lft x2l = pcshiftx; +pos3(thick,0); pos4(thick,0); % right leg + x4r=pcshiftx+h; top y3=h; bot y4=0; + x3r=x4r-cap_jut; +numeric long, short, hypot, alpha; long=side; short=1/2side; +hypot=long++short; alpha=hypot/long; +pos5(alpha*thick,0); pos6(alpha*thick,0); % left inner + z5r=z1l; bot lft z6l=(x100,0); +pos7(alpha*medium,0); pos8(alpha*medium,0); % right inner + z8l=z3r; bot rt z7r=z6l; +z0=whatever[z5r,z6r]=whatever[z7l,z8l]; % bottom notch +z10=whatever[z5l,z6l]=whatever[z1r,z2r]; % left notch +z11=whatever[z7r,z8r]=whatever[z3l,z4l]; % right notch +% draw the M all in one go +filldraw z5r--z0--z8l--z3r--z4r--z4l--z11--z6l--z10--z2r--z2l--z1l--cycle; +if serifs: + serif(2,1,a,sadj*serif_darkness,-cap_jut); % left leg + serif(2,1,e,sadj*serif_darkness,cap_jut); + serif(4,3,d,sadj*serif_darkness, cap_jut); % right leg + serif(4,3,f,sadj*serif_darkness,-cap_jut); +fi +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,10,11,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{N} +% The letter N. With serifs it fills the square. The diagonal is |thick| +% and the width of the uprights is 75\% of the width of the diagonal. +% \begin{macrocode} + +cmchar "Trajan's letter N"; +beginchar("N", u#+side#, cap_height#,0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib; +pcshiftx := u/2; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric long, short, hypot, alpha; long=h; short=h; +hypot=long++short; alpha=hypot/long; +numeric legw; legw = 3/4thick; +pos1(legw,0); pos2(legw,0); lft x1l=lft x2l=pcshiftx+cap_jut; top y1=h; bot y2=0; +pos3(legw,0); pos4(legw,0); x3=x4; rt x3r=w-pcshiftx-cap_jut; y3=y1; y4=y2; +pos 5(alpha*thick,0); pos6(alpha*thick,0); +z5r=z1l; z6l=z4r; z0=whatever[z1r,z2r]=whatever[z5l,z6l]; % under notch point +z0'=whatever[z5r,z6r]=whatever[z3l,z4l]; +filldraw z1l--z2l--z2r--z0--z6l--z3r--z3l--z0'--cycle; +if serifs: + % bottom of left stem + serif(2,1,b,sadj*serif_darkness,-cap_jut); + serif(2,1,c,sadj*serif_darkness,cap_jut); + % top of right stem + serif(3,4,d,sadj*serif_darkness,-cap_jut); + serif(3,4,e,sadj*serif_darkness,cap_jut); +fi +proofpcbb(100, y100, y100); +penlabels(0,0',1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{O} +% The letter O. This includes optical adjustments at the top and bottom. +% \begin{macrocode} + +cmchar "Trajan's letter O"; +beginchar("O", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); pair trajan[]; +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +x2r=pcshiftx; x4r=x2r+h; y1r=h+o; y3r=-o; +z100=.5[z5,z6]; numeric axis_angle; +trajan1=(x2r+0.25h,y1r); trajan2=(x4r, 0.75h); +trajan3=(x2r, 0.25h); trajan4=(x2r+0.75h, y3r); +axis_angle=angle(trajan2-trajan3); +z5-z6=(thick,0)rotated axis_angle; +y2r=y6; y4r=y5; x1r=x5; x3r=x6; +forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor +x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r; +x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r; +path p,p'; +p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)& + pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle; % outer +path anti_diag; anti_diag=z100--trajan1; +z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90); +x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270); +path diag; diag=z100--trajan2; +z41r=diag intersectionpoint p; penpos41(thick, axis_angle); +x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180); +p'= z1l{left}..z21l..z2l{down}..z32l.. + z3l{right}..z43l.. + z4l{up}..z41l..{left}cycle; % inner +fill p; unfill p'; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,21,32,43,41,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{P} +% The letter P. With serifs, the inside of the bowl is at half the width. +% \begin{macrocode} + +cmchar "Trajan's letter P"; +beginchar("P", u#+0.5side#+thick#, cap_height#, 0); +adjust_fit(cap_serif_fit#, 0); +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % square center +pickup tiny.nib; +pos1(thick,0); pos2(thick,0); + top lft z1l=(pcshiftx+cap_jut,h); bot lft z2l=(pcshiftx+cap_jut,0); +filldraw stroke z1e--z2e; % vertical stem +pos3(thin,90); pos4(thin,90); pos5(thick,0); +pos6(thin,-90); +top y3r=top y4r=h; x3=x1; x4=x1r+thick; filldraw stroke z3e--z4e; +x6=x4; y6=hround(h/2); +lft x5l=x100; y5=.75h; +pos7(0.5thin,-90); +y7=y6+0.5thin; x7=.25[rt x1r, x6]; +filldraw stroke pulled_super_arc.e(4,5,eta)&pulled_super_arc.e(5,6,eta) + ..z7e; % lobe +if serifs: + serif(1,2,a,sadj*serif_darkness,-cap_jut); + serif(2,1,b,sadj*serif_darkness,-cap_jut); + serif(2,1,c,sadj*serif_darkness,cap_jut); +fi +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{Q} +% The letter Q, which is based on the O and has a much longer tail +% than modern fonts. +% \begin{macrocode} + +cmchar "Trajan's letter Q"; +beginchar("Q", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); pair trajan[]; +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +x2r=pcshiftx; x4r=x2r+h; y1r=h+o; y3r=-o; +z100=.5[z5,z6]; numeric axis_angle; +trajan1=(x2r+0.25h,y1r); trajan2=(x4r, 0.75h); +trajan3=(x2r, 0.25h); trajan4=(x2r+0.75h, y3r); +axis_angle=angle(trajan2-trajan3); +z5-z6=(thick,0)rotated axis_angle; +y2r=y6; y4r=y5; x1r=x5; x3r=x6; +forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor +x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r; +x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r; +path p,p'; +p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)& + pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle; % outer +path anti_diag; anti_diag=z100--trajan1; +z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90); +x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270); +path diag; diag=z100--trajan2; +z41r=diag intersectionpoint p; penpos41(thick, axis_angle); +x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180); +p'= z1l{left}..z21l..z2l{down}..z32l.. + z3l{right}..z43l.. + z4l{up}..z41l..{left}cycle; % inner +fill p; unfill p'; + +% now for the tail! +numeric alpha; alpha:=0.4; +z10=z43; +z10l=z10-(alpha*thick,alpha*thick); z10r=z10+(alpha*thick,alpha*thick); +z11l=(x4r,-0.175h); z11r=z11l+(0,thick); +z13l=(x4r+0.375h,-0.25h); z13r=z13l+(0,medium); +z12l=(x4r+0.875h,-0.125h); z12r=z12l+(0,0.5thin); +filldraw z10r..z11r..z13r..z12r--z12l..z13l..z11l..z10l--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,10,11,12,13,14,15,21,32,41,43,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{R} +% The letter R. Another character that, with serifs, fills the square. +% \begin{macrocode} + +cmchar "Trajan's letter R"; +beginchar("R", u#+side#, cap_height#,0); +adjust_fit(cap_serif_fit#,0); +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % square center +pickup tiny.nib; pos1(thick,0); pos2(thick,0); +top lft z1l=(pcshiftx+cap_jut,h); bot lft z2l=(pcshiftx+cap_jut,0); +filldraw stroke z1e--z2e; % vertical stem +pos3(thin,90); pos4(thin,90); pos5(thick,0); +pos6(thin, -90); +top y3r=top y4r=h; x3=x1; x4=x1r+thick; +x6=x4; y6=hround(h/2 - medium); +lft x5l=x100; y5=.5[y4,y6]; +pos7(thin, -90); +y7=y6; x7=x3; +filldraw stroke z3e--pulled_super_arc.e(4,5,eta)& + pulled_super_arc.e(5,6,eta)..z7e; % lobe +numeric half_letter_width; 2half_letter_width+1/2u=w; +if serifs: half_letter_width:=half_letter_width+1/2u; + else: half_letter_width:=half_letter_width-1.6thin; fi +path p; p=pulled_super_arc.r(5,6,eta)..z7r; +z0r=p intersectionpoint ((half_letter_width,0)--(half_letter_width,h)); +path circ_; circ_= (((halfcircle scaled 2thick) rotated 180) shifted z0r); +z0l= p intersectionpoint circ_; +z0'=(.45[half_letter_width,w],0); +numeric tail_angle; tail_angle=angle(z0l-z0'); +penpos8(thick, tail_angle-90); z8l=whatever[z0', z0l]; + x8=1/5[half_letter_width,w]; +penpos9(2/3thick,tail_angle-90); z9r=whatever[z0r, z8r]; + x9r=.5[half_letter_width, w]; +penpos10(0.5thin,90); +z10r=(w,-0.5thin); +fill z0l--z8l...{right}z10l--z10r{-w,1/4h}..z9r--z0r--cycle; % tail +if serifs: + serif(1,2,a,sadj*serif_darkness,-cap_jut); + serif(2,1,b,sadj*serif_darkness,-cap_jut); + serif(2,1,c,sadj*serif_darkness,cap_jut); fi +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,10,100); labels(0'); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{S} +% The letter S. The width is half the square. +% \begin{macrocode} + +cmchar "Trajan's letter S"; +beginchar("S", 2u#+1/2side#, cap_height#, 0); +adjust_fit(0,0); pickup tiny.nib; +pcshiftx := u; +y100 = h/2; x100 = w/2; % square center +pair trajan[]; % points to contain corner coords of Trajan square +ypart trajan3=ypart trajan4=0; ypart trajan1= ypart trajan2=h; +xpart trajan1=xpart trajan3; xpart trajan4= xpart trajan2= xpart trajan3+side; +xpart trajan3=x100-0.5side; +numeric slope, diag_angle; diag_angle=angle(trajan2-trajan3); +slope=-0.75h/(xpart trajan4-xpart trajan3); +pos0(thick,diag_angle); +x0=w/2; y0=h/2; +lft x3l=pcshiftx+o; +rt x3r=lft x3l+5/6thick; +pos2(thin,-diag_angle); top y2l=h; +if x0-x3r>thick: + x2l=x0; +else: + x2l=x0r; slope:=-1/2; +fi +ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); +pos7(thin,-diag_angle); x7r=x0; bot y7r=0; +rt x6r=w-pcshiftx; lft x6l=rt x6r-5/6thick; +ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); +pos1(max(currentbreadth+eps,5/6 thick),-90); +top y1l=h-thin; x1=x6r-o; +pos8(1.5thick,-90); +lft x8r=pcshiftx; bot y8r=medium; +filldraw z1l..z2l{left}..{down}z3l..z4l--z5l..{down}z6l..{left}z7l..z8l + --z8r..{right}z7r..{up}z6r..z5r--z4r..{up}z3r..{right}z2r..z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% The letter T. It has a jaunty crossbar. +% \begin{macrocode} + +cmchar "Trajan's letter T"; +beginchar("T",2u#+0.8side#, cap_height#,0); +adjust_fit(cap_serif_fit#,0); pickup tiny.nib; +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +pos1(thick,0); pos2(thick,0); 0.5[x1r,x1l]=0.5[x2r,x2l]=w/2; +top y1=h-thin; bot y2=0; +filldraw stroke z1e--z2e; % central stem +% prepare for the top horizontal bar +numeric top_bar; top_bar=0.4side; % half length of top bar +pos3(medium,90); pos4(dslab,0); +x1=x3; y3r=y1; rt x4l=x1+top_bar; + bot y4=vround(y1- vstretch*(medium+cap_jut)); +arm(3,4,c,sadj*serif_darkness,0); +% now the jaunty left arm +x5=x1-top_bar; +y5=h; +pos8(medium,90); +x8r=0.3[x5,x1]; y8r=0.125[y3r,y5]; +x6=x5-thin; y6=h-medium-cap_jut; +x7=x6+0.75cap_jut; y7=y3l; +x9=0.4[x6,x7]; y9=0.7[y6,y7]; +filldraw z3r--z1l{left}..z8r..z5--z6{z5-z6}..z9..z7..z8l..z3l--cycle; +if serifs: + serif(2,1,a,sadj*serif_darkness,-cap_jut); + serif(2,1,b,sadj*serif_darkness,cap_jut); +fi +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{U} +% The letter U. The Romans didn't have a U but Jan Tschichold +% designed one to match. With serifs, this just fits into the square. +% \begin{macrocode} + +cmchar "Trajan's letter U"; +beginchar("U", u#+side#, cap_height#,0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); +pcshiftx:=0.5u; +y100=h/2; x100=pcshiftx+y100; % square center +pickup tiny.nib; +x101=pcshiftx; y101=h; x102=x101+h; y102=0; % square corners +% right leg +pos5(thick,0); pos6(thick,0); +rt x5r= rt x6r= pcshiftx+h-cap_jut; +top y5=h; bot y6=0; +filldraw stroke z5e--z6e; % leg +% left leg and bowl +pos1(thick,0); pos2(thick,0); +pos3(medium,-90); pos4(thin,0); +lft x1l= hround(pcshiftx+cap_jut); x2=x1; +top y1=h; +y2=0.35h; +x3=x100; bot y3r=0; +z4l=whatever[z101,z102]=whatever[z5l,z6l]; +filldraw z1r--z2r{down}..z3l..z4l--z4r..z3r..z2l{up}--z1l--cycle; +if serifs: + serif(1,2,a,sadj*serif_darkness,-cap_jut); % top LL + serif(1,2,b,sadj*serif_darkness,cap_jut); % top LR + serif(5,6,c,sadj*serif_darkness,-cap_jut); % top RL + serif(5,6,d,sadj*serif_darkness,cap_jut); % top RR + serif(6,5,f,sadj*serif_darkness,cap_jut); % bottom RR +fi +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{V} +% The letter V. With serifs it just fills the square. +% \begin{macrocode} + +cmchar "Trajan's letter V"; +beginchar("V",u#+side#, cap_height#, 0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib; +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha; alpha=((0.5h-cap_jut)++(h))/(h); +pos1(alpha*thick,0); pos2(alpha*thick,0); +pos3(alpha*medium,0); pos4(alpha*medium,0); +top y1=top y4=h; lft x1l=pcshiftx+cap_jut; x4r=x1l+side-2cap_jut; +lft x2l=hround(pcshiftx+0.5side); x3r=x2l; bot y2=bot y3=0; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point +filldraw z0--diag_end(0,4l,1,1,4r,3r)--z2l + --diag_end(2l,1l,1,1,1r,0)--cycle; +if serifs: + bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut; + pickup tiny.nib; numeric jut_factor; + jut_factor=3/4; + serif(1,2,a,sadj*serif_darkness,-cap_jut); % top LL + serif(4,3,d,sadj*serif_darkness,cap_jut); % top RR + bracket:=jut_factor*bracket; + serif(1,2,b,sadj*serif_darkness, jut_factor*cap_jut); % top LR + serif(4,3,c,sadj*serif_darkness,-jut_factor*cap_jut); % top RL +fi +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{W} +% The letter W. Jan Tschichold provides a design for this. +% It consists of 2 Vs shifted +% 3/8 of the side of the square. +% \begin{macrocode} + +cmchar "Trajan's letter W"; +beginchar("W", u#+1.375side#, cap_height#, 0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib; +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha; alpha=((0.5h-cap_jut)++(h))/(h); +numeric beta; beta := 0.375; +% the lefthand V +pos1(alpha*thick,0); pos2(alpha*thick,0); +pos3(alpha*medium,0); pos4(alpha*medium,0); +top y1=top y4=h; lft x1l=pcshiftx+cap_jut; x4r=x1l+side-2cap_jut; +lft x2l=hround(pcshiftx+0.5side); x3r=x2l; bot y2=bot y3=0; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point +filldraw z0--diag_end(0,4l,1,1,4r,3r)--z2l + --diag_end(2l,1l,1,1,1r,0)--cycle; +% the righthand V +pos5(alpha*thick,0); pos6(alpha*thick,0); +pos7(alpha*medium,0); pos8(alpha*medium,0); +z5=(x1+beta*h,y1); z6=(x2+beta*h,y2); +z7=(x3+beta*h,y3); z8=(x4+beta*h,y4); +z10=(x0+beta*h,y0); +filldraw z10--diag_end(10,8l,1,1,8r,7r)--z6l + --diag_end(6l,5l,1,1,5r,10)--cycle; + +if serifs: + bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut; + pickup tiny.nib; numeric jut_factor; + jut_factor=3/4; + serif(1,2,a,sadj*serif_darkness,-cap_jut); % top LL left V + serif(4,3,d,sadj*serif_darkness,cap_jut); % top RR left V + serif(5,6,f,sadj*serif_darkness,-cap_jut); % top LL right V + serif(8,7,k,sadj*serif_darkness,cap_jut); % top RR right V + + bracket:=jut_factor*bracket; + serif(1,2,b,sadj*serif_darkness, jut_factor*cap_jut); % top LR left V + serif(4,3,c,sadj*serif_darkness,-jut_factor*cap_jut); % top RL left V + serif(5,6,g,sadj*serif_darkness, jut_factor*cap_jut); % top LR right V + serif(8,7,j,sadj*serif_darkness,-jut_factor*cap_jut); % top RL right V +fi +proofpcbb(100, y100, y100); +penlabels(0,,1,2,3,4,5,6,7,8,10,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{X} +% The letter X. The major leg is like the major leg (left) of the V. +% \begin{macrocode} + +cmchar "Trajan's letter X"; +beginchar("X", u#+0.5side#+thick#+2cap_jut#, cap_height#, 0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric alpha; alpha=((0.5h-cap_jut)++(h))/(h); +% major leg +pos1(alpha*thick,0); pos2(alpha*thick,0); +top y1=h; lft x1l=hround(pcshiftx+cap_jut); +bot y2=0; lft x2l=hround(pcshiftx+0.5side+cap_jut); +% minor leg +penpos3(alpha*medium,0); penpos4(alpha*medium,0); +y3=y1; lft x3l=h/2+cap_jut; +y4=y2; lft x4l=pcshiftx+cap_jut; +filldraw z1l--z1r--z2r--z2l--cycle; % draw the thick limb +filldraw z3l--z3r--z4r--z4l--cycle; % draw the other limb +if serifs: + bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut; + pickup tiny.nib; numeric jut_factor; + jut_factor=3/4; + serif(1,2,a,serif_darkness,-cap_jut); % outer serifs + serif(2,1,d,serif_darkness,cap_jut); + serif(3,4,f,serif_darkness,cap_jut); + serif(4,3,g,serif_darkness,-cap_jut); + bracket:=jut_factor*bracket; + serif(1,2,b,sadj*serif_darkness,.75cap_jut); % inner serifs + serif(2,1,c,sadj*serif_darkness,-.75cap_jut); + serif(3,4,e,sadj*serif_darkness,-.75cap_jut); + serif(4,3,h,sadj*serif_darkness,.75cap_jut); +fi +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Y} +% The letter Y. With serifs it takes 7/8 of the square width. +% \begin{macrocode} + +cmchar "Trajan's letter Y"; +beginchar("Y", u#+0.875side#, cap_height#, 0); +adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup pencircle scaled 0pt; +pcshiftx := 0.5u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric alpha, long, short, hypot; long=h/2; +short=0.5side-thick-cap_jut; + hypot=long++short; alpha=hypot/long; +% top left of V +penpos1(alpha*thick,0); +lft x1l=pcshiftx+cap_jut; +top y1=h; +% top right of V +penpos4(alpha*medium,0); y4=y1; x4r=w-pcshiftx-cap_jut; +% the stem +penpos5(thick,0); penpos6(thick,0); +rt x5r= rt x6r=x100; +y6=0; y5=h; +% bottom of left V arm +penpos2(alpha*thick,0); +x2l=x6l; y2=y100; +% bottom of right V arm +penpos3(alpha*medium,0); +x3r=x6r; y3=y100+thin; +z0=whatever[z1r, z2r]=whatever[z3l,z4l]; % notch point +filldraw z1r--z0--z4l--z4r--z3r--z6r--z6l--z2l--z1l--cycle; +if serifs: + numeric jut_factor; + serif(6,5,e,sadj*serif_darkness,-cap_jut); % stem L + serif(6,5,f,sadj*serif_darkness,cap_jut); % stem R + bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut; + jut_factor=3/4; + % top outer serifs + serif(1,2,a,serif_darkness,-cap_jut);serif(4,3,d,serif_darkness,cap_jut); + bracket:=jut_factor*bracket; + % top inner serifs + serif(1,2,b,sadj*serif_darkness,0.6cap_jut); + serif(4,3,c,sadj*serif_darkness,-0.6cap_jut); + fi +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; % End of "Y" + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Z} +% The letter Z. Jan Tschichold supplies the design for this. It takes 3/4 +% of the square in width, with the bottom arm like the E or L. +% \begin{macrocode} + +cmchar "Trajan's letter Z"; +beginchar("Z", 2u#+0.75side#+medium#, cap_height#,0); +adjust_fit(0, 0); pickup tiny.nib; +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric alpha, long, short, hypot; +long=h; short=h/2-thick; hypot=long++short; +alpha=hypot/long; +pos1(medium,90); pos2(medium,90); pos3(alpha*thick, 0); +pos4(alpha*thick, 0); +rt x3r=w-u; top y3=h; x4l=w-x3r; bot y4=0; +top y1r=h; lft x1=u; y2=y1; rt x2=x3; +filldraw stroke z1e--z2e; % top bar +filldraw stroke z3e--z4e; % diagonal +% and for the bottom bar +pos8(medium,-90); pos9(dslab,0); x8=x4; bot y8r=0; +rt x9r=hround(x100+0.25h+medium); +y9=1.5thick; +foot(8,9,g,serif_darkness,medium); % lower arm + +if serifs: + pickup crisp.nib; % prepare for arms and serifs + pos5(medium, 90); pos6(dslab,180); z5=z2; lft x6r=u; + bot y6=h-vstretch*thick; + arm(5,6,a,serif_darkness,0); % upper dropped serif +fi +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,100); endchar; + + +% +% \end{macrocode} +% \end{macro} +% +% \subsection{The punctuation file} +% +% This is essentially a copy of Knuth's Computer Modern Roman punctuation. +% +% \begin{macrocode} +%<*punct> +% TRJNPUNCT.MF This file contains punctuation marks common to +% Trajan roman and italic styles. + +% \end{macrocode} +% +% \begin{macro}{!} +% The ! character. +% \begin{macrocode} + +cmchar "Exclamation point"; +beginchar("!",5u#+width_adj#,asc_height#,0); +italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#; +adjust_fit(0,0); +pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90); +lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot +numeric bot_width; +bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi; +pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0); +x1=x2=x3; bot y2=.25[top y4r,x_height]+1; +if square_dots: top y1=h; + filldraw stroke z1e--z2e; % stem +else: top z0=(x1,h+o); y1+.5dot_size=h+o; + filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb +penlabels(0,1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{'} +% The ' character. +% \begin{macrocode} + +cmchar "Apostrophe"; +beginchar("'",5u#,asc_height#,0); +italcorr asc_height#*slant+.5dot_size#-2u#; +adjust_fit(0,0); +x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h; +if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma +else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut +penlabels(1); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{(} +% The ( character. +% \begin{macrocode} + +cmchar "Left parenthesis"; +beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#); +italcorr body_height#*slant-.5u#; +adjust_fit(0,0); pickup fine.nib; +pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0); +rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi); +top y1=h; y2=.5[y1,y3]=math_axis; +filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e + ...{3(x3e-x2e),y3-y2}z3e; % arc +penlabels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{)} +% The ) character. +% \begin{macrocode} + +cmchar "Right parenthesis"; +beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#); +italcorr math_axis#*slant-.5u#; +adjust_fit(0,0); pickup fine.nib; +pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0); +lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi); +top y1=h; y2=.5[y1,y3]=math_axis; +filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e + ...{3(x3e-x2e),y3-y2}z3e; % arc +penlabels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{,} +% The , character. +% \begin{macrocode} + +cmchar "Comma"; +numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#; +define_whole_blacker_pixels(dot_diam); +beginchar(",",5u#,dot_diam#,comma_depth#); +adjust_fit(0,0); +x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0; +comma(1,a,dot_diam,.2u,comma_depth); % dot and tail +penlabels(1); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{.} +% The . character. +% \begin{macrocode} + +cmchar "Period"; +numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#; +define_whole_blacker_pixels(dot_diam); +beginchar(".",5u#,dot_diam#,0); +adjust_fit(0,0); pickup fine.nib; +pos1(dot_diam,0); pos2(dot_diam,90); +lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot +penlabels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{/} +% The / character. +% \begin{macrocode} + +cmchar "Virgule (slash)"; +beginchar("/",9u#,body_height#,paren_depth#); +italcorr body_height#*slant-.5u#; +adjust_fit(0,0); pickup rule.nib; +rt x1=hround(w-u)+eps; top y1=h+eps; +lft x2=hround u-eps; bot y2=-d-eps; +draw z1--z2; % diagonal +penlabels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{:} +% The : character. +% \begin{macrocode} + +cmchar "Colon"; +numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#; +define_whole_blacker_pixels(dot_diam); +beginchar(":",5u#,x_height#,0); +italcorr x_height#*slant+.5dot_diam#-2u#; +adjust_fit(0,0); pickup fine.nib; +pos1(dot_diam,0); pos2(dot_diam,90); +lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot +pos3(dot_diam,0); pos4(dot_diam,90); +x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot +penlabels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{;} +% The ; character. +% \begin{macrocode} + +cmchar "Semicolon"; +numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#; +define_whole_blacker_pixels(dot_diam); +beginchar(";",5u#,x_height#,comma_depth#); +italcorr x_height#*slant+.5dot_diam#-2u#; +adjust_fit(0,0); pickup fine.nib; +pos1(dot_diam,0); pos2(dot_diam,90); +lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot +x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0; +comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail +penlabels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{[} +% The [ character. +% \begin{macrocode} + +cmchar "Left bracket"; +numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi); +beginchar("[",wd#,body_height#,paren_depth#); +italcorr body_height#*slant; +adjust_fit(0,0); +numeric top_thickness,side_thickness; +if hefty: top_thickness=vair; + side_thickness=max(crisp.breadth,stem-2stem_corr); +else: top_thickness=side_thickness=rule_thickness; fi; +pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0); +top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps; +filldraw stroke z1e--z2e; % stem +pos3(top_thickness,90); pos4(top_thickness,90); +pos5(top_thickness,90); pos6(top_thickness,90); +x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2; +filldraw stroke z3e--z4e; % upper bar +filldraw stroke z5e--z6e; % lower bar +penlabels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{]} +% The ] character. +% \begin{macrocode} + +cmchar "Right bracket"; +numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi); +beginchar("]",wd#,body_height#,paren_depth#); +italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi; +adjust_fit(0,0); +numeric top_thickness,side_thickness; +if hefty: top_thickness=vair; + side_thickness=max(crisp.breadth,stem-2stem_corr); +else: top_thickness=side_thickness=rule_thickness; fi; +pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0); +top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps; +filldraw stroke z1e--z2e; % stem +pos3(top_thickness,90); pos4(top_thickness,90); +pos5(top_thickness,90); pos6(top_thickness,90); +x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2; +filldraw stroke z3e--z4e; % upper bar +filldraw stroke z5e--z6e; % lower bar +penlabels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{`} +% The ` character. +% \begin{macrocode} + +cmchar "Reverse apostrophe"; +beginchar("`",5u#,asc_height#,0); +italcorr asc_height#*slant+.5dot_size#-2u#; +adjust_fit(0,0); +x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth; +if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc +else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc +penlabels(1); endchar; + + +% +% \end{macrocode} +% \end{macro} +% +% +% \subsection{The ligatures and dashes file} +% +% This is essentially a copy of the Computer Modern file. +% \begin{macrocode} +%<*lig> +% TRJNLIG.MF This file defines characters common to +% Trajan roman and slanted text fonts +% that appear only when |ligs>0|. + +% \end{macrocode} +% First the ligtables. +% \begin{macrocode} + +ligtable "`": "`"=:oct"134"; +ligtable "'": "'"=:oct"042", "?" kern 2u#, "!" kern 2u#; + +ligtable "-": "-"=:oct"173"; +ligtable oct"173": "-"=:oct"174"; + +% \end{macrocode} +% +% \begin{macro}{''} +% The '' ligature. +% \begin{macrocode} + +cmchar "Closing quotes"; +beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0); +italcorr asc_height#*slant+dot_size#-4.1u#; +adjust_fit(0,0); +x1-.5dot_size=hround .6u; y2+.5dot_size=h; +x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1; +comma(1,a,dot_size,.25u,comma_depth); % left dot and tail +comma(2,b,dot_size,.25u,comma_depth); % right dot and tail +penlabels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{-} +% The - character. +% \begin{macrocode} + +cmchar "Hyphen"; +beginchar("-",6u#,x_height#,0); +italcorr .5x_height#*slant-.5u#; +adjust_fit(0,0); +numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi; +pickup crisp.nib; pos1(thickness,90); pos2(thickness,90); +top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps; +if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi; +filldraw stroke z1e--z2e; % bar +penlabels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{``} +% The `` ligature. +% \begin{macrocode} + +cmchar "Opening quotes"; +beginchar(oct"134",7u#+max(2u#,dot_size#),asc_height#,0); +italcorr asc_height#*slant-.1u#; +adjust_fit(0,0); +x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth; +x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1; +ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail +ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail +penlabels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{--} +% The -- ligature. I think that the CM en-dash is too thin for the +% Trajan font, so I have thickened it a little. +% \begin{macrocode} + +cmchar "En dash"; +beginchar(oct"173",9u#,x_height#,0); +italcorr .61803x_height#*slant+.5u#; +adjust_fit(0,0); +%%pickup crisp.nib; pos1(vair,90); pos2(vair,90); +pickup crisp.nib; pos1(medium,90); pos2(medium,90); +top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps; +filldraw stroke z1e--z2e; % bar +penlabels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{---} +% The --- ligature. I think that the CM em-dash is too thin for the +% Trajan font, so I have thickened it a little. +% \begin{macrocode} + +cmchar "Em dash"; +beginchar(oct"174",18u#,x_height#,0); +italcorr .61803x_height#*slant+.5u#; +adjust_fit(letter_fit#,letter_fit#); +%%pickup crisp.nib; pos1(vair,90); pos2(vair,90); +pickup crisp.nib; pos1(medium,90); pos2(medium,90); +top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps; +filldraw stroke z1e--z2e; % bar +penlabels(1,2); endchar; + + +% +% \end{macrocode} +% \end{macro} +% +% \subsection{Extra punctuation} +% +% This is an abbreviated copy of \Lpack{romanp.mf}. +% \begin{macrocode} +%<*xp> +% TRJNROMANP.MF This file contains `\&' and `?' . + +% \end{macrocode} +% +% \begin{macro}{&} +% The \&{} character. +% \begin{macrocode} + +cmchar "Ampersand"; +beginchar("&",14u#,asc_height#,0); +italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi; +adjust_fit(0,serif_fit#); +pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o; +if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi +if serifs: pos0(fudged.hair,0); + rt x0r+jut=hround(w-.9u); top y0=x_height; + pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)]; + y1=max(y0-1.5bracket-.2x_height,2/3x_height); + filldraw stroke z0e---z1e...{left}z2e; % short diagonal +else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u); + y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l; + top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r); + filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal +pickup tiny.nib; numeric slope,theta,reduced_hair; +slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1); +reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi)); +lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u); +x3l-x3r=curve-tiny; pos6(reduced_hair,180); +pos5(vair,theta); y5=.5h; +ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r); +pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r]; +pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6; +ellipse_set(7l,6l,5',5l); +filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e + ...z7e{left}...z8e{down}; % bowls +pos10(slab,90); x10=w-3.5u; bot y10l=-o; +pos9(fudged.stem,angle(z8-z10)-90); +z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90); +filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal +if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10; + pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height; + filldraw stroke z10'e{right}...{up}z11e; % terminal + numeric inner_jut; if rt x6l+.5u +% \end{macrocode} +% \end{macro} +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{trjn}{} + \DeclareFontShape{OT1}{trjn}{m}{n}{ <-> trjnr10 }{} + \DeclareFontShape{OT1}{trjn}{bx}{n}{ <-> sub * trjn/m/n }{} + \DeclareFontShape{OT1}{trjn}{b}{n}{ <-> sub * trjn/m/n }{} + \DeclareFontShape{OT1}{trjn}{m}{sl}{ <-> trjnsl10 }{} + \DeclareFontShape{OT1}{trjn}{m}{it}{ <-> sub * trjn/m/sl }{} +% +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{trjn}{} + \DeclareFontShape{T1}{trjn}{m}{n}{ <-> trjnr10 }{} + \DeclareFontShape{T1}{trjn}{bx}{n}{ <-> sub * trjn/m/n }{} + \DeclareFontShape{T1}{trjn}{b}{n}{ <-> sub * trjn/m/n }{} + \DeclareFontShape{T1}{trjn}{m}{sl}{ <-> trjnsl10 }{} + \DeclareFontShape{T1}{trjn}{m}{it}{ <-> sub * trjn/m/sl }{} +% +% \end{macrocode} +% +% \section{The \Lpack{trajan} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{trajan}[2005/06/29 v1.1 package for Trajan fonts] +% \end{macrocode} +% +% +% \begin{macro}{\trjnfamily} +% Selects the Trajan font family in the T1 encoding. +% \changes{v1.1}{2005/06/29}{Use T1 encoding instead of OT1} +% \begin{macrocode} +\newcommand{\trjnfamily}{\usefont{T1}{trjn}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\texttrjn} +% Text command for the Trajan font family. +% \begin{macrocode} +\DeclareTextFontCommand{\texttrjn}{\trjnfamily} +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +% +% \end{macrocode} +% +% \section{The map file} +% +% Just a short file. +% \changes{v1.1}{2005/06/29}{Added the map file} +% \begin{macrocode} +%<*map> +trjnr10 Trajan-Roman +% \end{macrocode} +% +% +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/fonts/trajan/trajan.ins b/fonts/trajan/trajan.ins new file mode 100644 index 0000000000..e592f62bd8 --- /dev/null +++ b/fonts/trajan/trajan.ins @@ -0,0 +1,98 @@ +%% trajan.ins +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 1999--2005 Peter R. Wilson +%% +%% This work may be distributed and/or modified under the +%% conditions of the Latex Project Public License, either +%% version 1.3 of this license or (at your option) any +%% later version. +%% The latest version of the license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2003/06/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of the files listed in the README file. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{trajan.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 1999--2005 Peter R. Wilson + + This work may be distributed and/or modified under the + conditions of the Latex Project Public License, either + version 1.3 of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + and version 1.3 or later is part of all distributions of + LaTeX version 2003/06/01 or later. + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files listed in the README file. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{trajan.drv}{t}{\from{trajan.dtx}{driver}} + +%%% \Msg{*** Generating the Metafont files ***} +%%% \usepostamble\empty +%%% \generateFile{trjnr10.mf}{t}{\from{trajan.dtx}{up}} +%%% \generateFile{trjnsl10.mf}{t}{\from{trajan.dtx}{sl}} +%%% \generateFile{trjnromanu.mf}{t}{\from{trajan.dtx}{maj}} +%%% \generateFile{trjntitle.mf}{t}{\from{trajan.dtx}{mfd}} +%%% \generateFile{trjnpunct.mf}{t}{\from{trajan.dtx}{punct}} +%%% \generateFile{trjnlig.mf}{t}{\from{trajan.dtx}{lig}} +%%% \generateFile{trjnromanp.mf}{t}{\from{trajan.dtx}{xp}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +%%%\generateFile{ot1trjn.fd}{t}{\from{trajan.dtx}{fdot1}} +\generateFile{t1trjn.fd}{t}{\from{trajan.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{trajan.sty}{t}{\from{trajan.dtx}{usc}} + +\Msg{*** Generating the map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{trajan.map}{t}{\from{trajan.dtx}{map}} + + + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue the installation you have to move the following} +\Msg{* files into the LaTeX macro area:} +%%%\Msg{* \space\space ot1trjn.fd} +\Msg{* \space\space t1trjn.fd} +\Msg{* \space\space trajan.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/fonts/trajan/trajan.pdf b/fonts/trajan/trajan.pdf new file mode 100644 index 0000000000..1906677690 Binary files /dev/null and b/fonts/trajan/trajan.pdf differ diff --git a/fonts/trajan/trjnr10.afm b/fonts/trajan/trjnr10.afm new file mode 100644 index 0000000000..0160ef292c --- /dev/null +++ b/fonts/trajan/trjnr10.afm @@ -0,0 +1,340 @@ +StartFontMetrics 2.0 +Comment Generated by pfaedit +Comment Creation Date: Wed Jun 29 11:27:51 2005 +FontName Trajan-Roman +FullName Trajan Roman +FamilyName Trajan +Weight Regular +Notice (Generated from MetaFont bitmap by mftrace 1.1.5, http://www.cs.uu.nl/~hanwen/mftrace/ Copyright 2005 Peter R. Wilson) +ItalicAngle 0 +IsFixedPitch false +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox 0 -251 1337 751 +CapHeight 683 +StartCharMetrics 256 +C 0 ; WX 0 ; N grave ; B 0 0 0 0 ; +C 1 ; WX 0 ; N acute ; B 0 0 0 0 ; +C 2 ; WX 0 ; N circumflex ; B 0 0 0 0 ; +C 3 ; WX 0 ; N tilde ; B 0 0 0 0 ; +C 4 ; WX 0 ; N dieresis ; B 0 0 0 0 ; +C 5 ; WX 0 ; N hungarumlaut ; B 0 0 0 0 ; +C 6 ; WX 0 ; N ring ; B 0 0 0 0 ; +C 7 ; WX 0 ; N caron ; B 0 0 0 0 ; +C 8 ; WX 0 ; N breve ; B 0 0 0 0 ; +C 9 ; WX 0 ; N macron ; B 0 0 0 0 ; +C 10 ; WX 0 ; N dotaccent ; B 0 0 0 0 ; +C 11 ; WX 0 ; N cedilla ; B 0 0 0 0 ; +C 12 ; WX 0 ; N ogonek ; B 0 0 0 0 ; +C 13 ; WX 0 ; N quotesinglbase ; B 0 0 0 0 ; +C 14 ; WX 0 ; N guilsinglleft ; B 0 0 0 0 ; +C 15 ; WX 0 ; N guilsinglright ; B 0 0 0 0 ; +C 16 ; WX 0 ; N quotedblleft ; B 0 0 0 0 ; +C 17 ; WX 0 ; N quotedblright ; B 0 0 0 0 ; +C 18 ; WX 0 ; N quotedblbase ; B 0 0 0 0 ; +C 19 ; WX 0 ; N guillemotleft ; B 0 0 0 0 ; +C 20 ; WX 0 ; N guillemotright ; B 0 0 0 0 ; +C 21 ; WX 0 ; N endash ; B 0 0 0 0 ; +C 22 ; WX 0 ; N emdash ; B 0 0 0 0 ; +C 23 ; WX 0 ; N cwm ; B 0 0 0 0 ; +C 24 ; WX 0 ; N perthousand ; B 0 0 0 0 ; +C 25 ; WX 0 ; N dotlessi ; B 0 0 0 0 ; +C 26 ; WX 0 ; N dotlessj ; B 0 0 0 0 ; +C 27 ; WX 0 ; N ff ; B 0 0 0 0 ; L l ffl ; L i ffi ; +C 28 ; WX 0 ; N fi ; B 0 0 0 0 ; +C 29 ; WX 0 ; N fl ; B 0 0 0 0 ; +C 30 ; WX 0 ; N ffi ; B 0 0 0 0 ; +C 31 ; WX 0 ; N ffl ; B 0 0 0 0 ; +C 32 ; WX 0 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 86 -1 193 717 ; +C 34 ; WX 500 ; N quotedbl ; B 32 394 347 694 ; +C 35 ; WX 0 ; N numbersign ; B 0 0 0 0 ; +C 36 ; WX 0 ; N dollar ; B 0 0 0 0 ; +C 37 ; WX 0 ; N percent ; B 0 0 0 0 ; +C 38 ; WX 778 ; N ampersand ; B 42 -22 727 717 ; +C 39 ; WX 278 ; N quoteright ; B 85 394 206 694 ; +C 40 ; WX 389 ; N parenleft ; B 98 -251 333 751 ; +C 41 ; WX 389 ; N parenright ; B 54 -251 290 751 ; +C 42 ; WX 0 ; N asterisk ; B 0 0 0 0 ; +C 43 ; WX 0 ; N plus ; B 0 0 0 0 ; +C 44 ; WX 278 ; N comma ; B 84 -194 204 108 ; +C 45 ; WX 333 ; N hyphen ; B 11 184 277 248 ; +C 46 ; WX 278 ; N period ; B 85 -1 192 108 ; +C 47 ; WX 500 ; N slash ; B 55 -250 443 751 ; +C 48 ; WX 0 ; N zero ; B 0 0 0 0 ; +C 49 ; WX 0 ; N one ; B 0 0 0 0 ; +C 50 ; WX 0 ; N two ; B 0 0 0 0 ; +C 51 ; WX 0 ; N three ; B 0 0 0 0 ; +C 52 ; WX 0 ; N four ; B 0 0 0 0 ; +C 53 ; WX 0 ; N five ; B 0 0 0 0 ; +C 54 ; WX 0 ; N six ; B 0 0 0 0 ; +C 55 ; WX 0 ; N seven ; B 0 0 0 0 ; +C 56 ; WX 0 ; N eight ; B 0 0 0 0 ; +C 57 ; WX 0 ; N nine ; B 0 0 0 0 ; +C 58 ; WX 278 ; N colon ; B 85 -1 192 432 ; +C 59 ; WX 278 ; N semicolon ; B 85 -194 195 432 ; +C 60 ; WX 0 ; N less ; B 0 0 0 0 ; +C 61 ; WX 0 ; N equal ; B 0 0 0 0 ; +C 62 ; WX 0 ; N greater ; B 0 0 0 0 ; +C 63 ; WX 472 ; N question ; B 54 -1 417 706 ; +C 64 ; WX 0 ; N at ; B 0 0 0 0 ; +C 65 ; WX 822 ; N A ; B 59 0 763 682 ; +C 66 ; WX 519 ; N B ; B 42 -1 490 684 ; +C 67 ; WX 719 ; N C ; B 55 -24 665 706 ; +C 68 ; WX 753 ; N D ; B 42 -2 723 684 ; +C 69 ; WX 449 ; N E ; B 42 -2 421 683 ; +C 70 ; WX 411 ; N F ; B 42 0 384 683 ; +C 71 ; WX 808 ; N G ; B 55 -22 739 706 ; +C 72 ; WX 767 ; N H ; B 42 0 725 684 ; +C 73 ; WX 311 ; N I ; B 41 0 269 684 ; L J IJ ; +C 74 ; WX 335 ; N J ; B 27 -152 292 684 ; +C 75 ; WX 667 ; N K ; B 42 0 658 684 ; +C 76 ; WX 449 ; N L ; B 42 -2 421 684 ; +C 77 ; WX 919 ; N M ; B 42 0 876 683 ; +C 78 ; WX 767 ; N N ; B 42 0 724 684 ; +C 79 ; WX 794 ; N O ; B 55 -23 739 707 ; +C 80 ; WX 487 ; N P ; B 42 0 459 684 ; +C 81 ; WX 794 ; N Q ; B 55 -171 1337 706 ; +C 82 ; WX 753 ; N R ; B 42 -25 753 684 ; +C 83 ; WX 453 ; N S ; B 53 0 397 684 ; +C 84 ; WX 672 ; N T ; B 45 0 617 683 ; +C 85 ; WX 767 ; N U ; B 42 0 725 684 ; +C 86 ; WX 767 ; N V ; B 31 1 736 684 ; +C 87 ; WX 1023 ; N W ; B 31 1 992 684 ; +C 88 ; WX 653 ; N X ; B 31 0 627 684 ; +C 89 ; WX 681 ; N Y ; B 31 0 649 683 ; +C 90 ; WX 662 ; N Z ; B 56 -2 606 683 ; +C 91 ; WX 278 ; N bracketleft ; B 118 -250 255 750 ; +C 92 ; WX 500 ; N backslash ; B 151 394 467 694 ; +C 93 ; WX 278 ; N bracketright ; B 22 -250 159 750 ; +C 94 ; WX 0 ; N asciicircum ; B 0 0 0 0 ; +C 95 ; WX 0 ; N underscore ; B 0 0 0 0 ; +C 96 ; WX 278 ; N quoteleft ; B 71 394 192 694 ; +C 97 ; WX 0 ; N a ; B 0 0 0 0 ; +C 98 ; WX 0 ; N b ; B 0 0 0 0 ; +C 99 ; WX 0 ; N c ; B 0 0 0 0 ; +C 100 ; WX 0 ; N d ; B 0 0 0 0 ; +C 101 ; WX 0 ; N e ; B 0 0 0 0 ; +C 102 ; WX 0 ; N f ; B 0 0 0 0 ; L l fl ; L i fi ; L f ff ; +C 103 ; WX 0 ; N g ; B 0 0 0 0 ; +C 104 ; WX 0 ; N h ; B 0 0 0 0 ; +C 105 ; WX 0 ; N i ; B 0 0 0 0 ; L j ij ; +C 106 ; WX 0 ; N j ; B 0 0 0 0 ; +C 107 ; WX 0 ; N k ; B 0 0 0 0 ; +C 108 ; WX 0 ; N l ; B 0 0 0 0 ; +C 109 ; WX 0 ; N m ; B 0 0 0 0 ; +C 110 ; WX 0 ; N n ; B 0 0 0 0 ; +C 111 ; WX 0 ; N o ; B 0 0 0 0 ; +C 112 ; WX 0 ; N p ; B 0 0 0 0 ; +C 113 ; WX 0 ; N q ; B 0 0 0 0 ; +C 114 ; WX 0 ; N r ; B 0 0 0 0 ; +C 115 ; WX 0 ; N s ; B 0 0 0 0 ; +C 116 ; WX 0 ; N t ; B 0 0 0 0 ; +C 117 ; WX 0 ; N u ; B 0 0 0 0 ; +C 118 ; WX 0 ; N v ; B 0 0 0 0 ; +C 119 ; WX 0 ; N w ; B 0 0 0 0 ; +C 120 ; WX 0 ; N x ; B 0 0 0 0 ; +C 121 ; WX 0 ; N y ; B 0 0 0 0 ; +C 122 ; WX 0 ; N z ; B 0 0 0 0 ; +C 123 ; WX 500 ; N braceleft ; B 0 241 499 279 ; +C 124 ; WX 1000 ; N bar ; B 0 241 999 279 ; +C 125 ; WX 0 ; N braceright ; B 0 0 0 0 ; +C 126 ; WX 0 ; N asciitilde ; B 0 0 0 0 ; +C 127 ; WX 0 ; N sfthyphen ; B 0 0 0 0 ; +C 128 ; WX 0 ; N Abreve ; B 0 0 0 0 ; +C 129 ; WX 0 ; N Aogonek ; B 0 0 0 0 ; +C 130 ; WX 0 ; N Cacute ; B 0 0 0 0 ; +C 131 ; WX 0 ; N Ccaron ; B 0 0 0 0 ; +C 132 ; WX 0 ; N Dcaron ; B 0 0 0 0 ; +C 133 ; WX 0 ; N Ecaron ; B 0 0 0 0 ; +C 134 ; WX 0 ; N Eogonek ; B 0 0 0 0 ; +C 135 ; WX 0 ; N Gbreve ; B 0 0 0 0 ; +C 136 ; WX 0 ; N Lacute ; B 0 0 0 0 ; +C 137 ; WX 0 ; N Lcaron ; B 0 0 0 0 ; +C 138 ; WX 0 ; N Lslash ; B 0 0 0 0 ; +C 139 ; WX 0 ; N Nacute ; B 0 0 0 0 ; +C 140 ; WX 0 ; N Ncaron ; B 0 0 0 0 ; +C 141 ; WX 0 ; N Eng ; B 0 0 0 0 ; +C 142 ; WX 0 ; N Ohungarumlaut ; B 0 0 0 0 ; +C 143 ; WX 0 ; N Racute ; B 0 0 0 0 ; +C 144 ; WX 0 ; N Rcaron ; B 0 0 0 0 ; +C 145 ; WX 0 ; N Sacute ; B 0 0 0 0 ; +C 146 ; WX 0 ; N Scaron ; B 0 0 0 0 ; +C 147 ; WX 0 ; N Scedilla ; B 0 0 0 0 ; +C 148 ; WX 0 ; N Tcaron ; B 0 0 0 0 ; +C 149 ; WX 0 ; N Tcedilla ; B 0 0 0 0 ; +C 150 ; WX 0 ; N Uhungarumlaut ; B 0 0 0 0 ; +C 151 ; WX 0 ; N Uring ; B 0 0 0 0 ; +C 152 ; WX 0 ; N Ydieresis ; B 0 0 0 0 ; +C 153 ; WX 0 ; N Zacute ; B 0 0 0 0 ; +C 154 ; WX 0 ; N Zcaron ; B 0 0 0 0 ; +C 155 ; WX 0 ; N Zdotaccent ; B 0 0 0 0 ; +C 156 ; WX 0 ; N IJ ; B 0 0 0 0 ; +C 157 ; WX 0 ; N Idotaccent ; B 0 0 0 0 ; +C 158 ; WX 0 ; N dcroat ; B 0 0 0 0 ; +C 159 ; WX 0 ; N section ; B 0 0 0 0 ; +C 160 ; WX 0 ; N abreve ; B 0 0 0 0 ; +C 161 ; WX 0 ; N aogonek ; B 0 0 0 0 ; +C 162 ; WX 0 ; N cacute ; B 0 0 0 0 ; +C 163 ; WX 0 ; N ccaron ; B 0 0 0 0 ; +C 164 ; WX 0 ; N dcaron ; B 0 0 0 0 ; +C 165 ; WX 0 ; N ecaron ; B 0 0 0 0 ; +C 166 ; WX 0 ; N eogonek ; B 0 0 0 0 ; +C 167 ; WX 0 ; N gbreve ; B 0 0 0 0 ; +C 168 ; WX 0 ; N lacute ; B 0 0 0 0 ; +C 169 ; WX 0 ; N lcaron ; B 0 0 0 0 ; +C 170 ; WX 0 ; N lslash ; B 0 0 0 0 ; +C 171 ; WX 0 ; N nacute ; B 0 0 0 0 ; +C 172 ; WX 0 ; N ncaron ; B 0 0 0 0 ; +C 173 ; WX 0 ; N eng ; B 0 0 0 0 ; +C 174 ; WX 0 ; N ohungarumlaut ; B 0 0 0 0 ; +C 175 ; WX 0 ; N racute ; B 0 0 0 0 ; +C 176 ; WX 0 ; N rcaron ; B 0 0 0 0 ; +C 177 ; WX 0 ; N sacute ; B 0 0 0 0 ; +C 178 ; WX 0 ; N scaron ; B 0 0 0 0 ; +C 179 ; WX 0 ; N scedilla ; B 0 0 0 0 ; +C 180 ; WX 0 ; N tcaron ; B 0 0 0 0 ; +C 181 ; WX 0 ; N tcedilla ; B 0 0 0 0 ; +C 182 ; WX 0 ; N uhungarumlaut ; B 0 0 0 0 ; +C 183 ; WX 0 ; N uring ; B 0 0 0 0 ; +C 184 ; WX 0 ; N ydieresis ; B 0 0 0 0 ; +C 185 ; WX 0 ; N zacute ; B 0 0 0 0 ; +C 186 ; WX 0 ; N zcaron ; B 0 0 0 0 ; +C 187 ; WX 0 ; N zdotaccent ; B 0 0 0 0 ; +C 188 ; WX 0 ; N ij ; B 0 0 0 0 ; +C 189 ; WX 0 ; N exclamdown ; B 0 0 0 0 ; +C 190 ; WX 0 ; N questiondown ; B 0 0 0 0 ; +C 191 ; WX 0 ; N sterling ; B 0 0 0 0 ; +C 192 ; WX 0 ; N Agrave ; B 0 0 0 0 ; +C 193 ; WX 0 ; N Aacute ; B 0 0 0 0 ; +C 194 ; WX 0 ; N Acircumflex ; B 0 0 0 0 ; +C 195 ; WX 0 ; N Atilde ; B 0 0 0 0 ; +C 196 ; WX 0 ; N Adieresis ; B 0 0 0 0 ; +C 197 ; WX 0 ; N Aring ; B 0 0 0 0 ; +C 198 ; WX 0 ; N AE ; B 0 0 0 0 ; +C 199 ; WX 0 ; N Ccedilla ; B 0 0 0 0 ; +C 200 ; WX 0 ; N Egrave ; B 0 0 0 0 ; +C 201 ; WX 0 ; N Eacute ; B 0 0 0 0 ; +C 202 ; WX 0 ; N Ecircumflex ; B 0 0 0 0 ; +C 203 ; WX 0 ; N Edieresis ; B 0 0 0 0 ; +C 204 ; WX 0 ; N Igrave ; B 0 0 0 0 ; +C 205 ; WX 0 ; N Iacute ; B 0 0 0 0 ; +C 206 ; WX 0 ; N Icircumflex ; B 0 0 0 0 ; +C 207 ; WX 0 ; N Idieresis ; B 0 0 0 0 ; +C 208 ; WX 0 ; N Eth ; B 0 0 0 0 ; +C 209 ; WX 0 ; N Ntilde ; B 0 0 0 0 ; +C 210 ; WX 0 ; N Ograve ; B 0 0 0 0 ; +C 211 ; WX 0 ; N Oacute ; B 0 0 0 0 ; +C 212 ; WX 0 ; N Ocircumflex ; B 0 0 0 0 ; +C 213 ; WX 0 ; N Otilde ; B 0 0 0 0 ; +C 214 ; WX 0 ; N Odieresis ; B 0 0 0 0 ; +C 215 ; WX 0 ; N OE ; B 0 0 0 0 ; +C 216 ; WX 0 ; N Oslash ; B 0 0 0 0 ; +C 217 ; WX 0 ; N Ugrave ; B 0 0 0 0 ; +C 218 ; WX 0 ; N Uacute ; B 0 0 0 0 ; +C 219 ; WX 0 ; N Ucircumflex ; B 0 0 0 0 ; +C 220 ; WX 0 ; N Udieresis ; B 0 0 0 0 ; +C 221 ; WX 0 ; N Yacute ; B 0 0 0 0 ; +C 222 ; WX 0 ; N Thorn ; B 0 0 0 0 ; +C 223 ; WX 0 ; N SS ; B 0 0 0 0 ; +C 224 ; WX 0 ; N agrave ; B 0 0 0 0 ; +C 225 ; WX 0 ; N aacute ; B 0 0 0 0 ; +C 226 ; WX 0 ; N acircumflex ; B 0 0 0 0 ; +C 227 ; WX 0 ; N atilde ; B 0 0 0 0 ; +C 228 ; WX 0 ; N adieresis ; B 0 0 0 0 ; +C 229 ; WX 0 ; N aring ; B 0 0 0 0 ; +C 230 ; WX 0 ; N ae ; B 0 0 0 0 ; +C 231 ; WX 0 ; N ccedilla ; B 0 0 0 0 ; +C 232 ; WX 0 ; N egrave ; B 0 0 0 0 ; +C 233 ; WX 0 ; N eacute ; B 0 0 0 0 ; +C 234 ; WX 0 ; N ecircumflex ; B 0 0 0 0 ; +C 235 ; WX 0 ; N edieresis ; B 0 0 0 0 ; +C 236 ; WX 0 ; N igrave ; B 0 0 0 0 ; +C 237 ; WX 0 ; N iacute ; B 0 0 0 0 ; +C 238 ; WX 0 ; N icircumflex ; B 0 0 0 0 ; +C 239 ; WX 0 ; N idieresis ; B 0 0 0 0 ; +C 240 ; WX 0 ; N eth ; B 0 0 0 0 ; +C 241 ; WX 0 ; N ntilde ; B 0 0 0 0 ; +C 242 ; WX 0 ; N ograve ; B 0 0 0 0 ; +C 243 ; WX 0 ; N oacute ; B 0 0 0 0 ; +C 244 ; WX 0 ; N ocircumflex ; B 0 0 0 0 ; +C 245 ; WX 0 ; N otilde ; B 0 0 0 0 ; +C 246 ; WX 0 ; N odieresis ; B 0 0 0 0 ; +C 247 ; WX 0 ; N oe ; B 0 0 0 0 ; +C 248 ; WX 0 ; N oslash ; B 0 0 0 0 ; +C 249 ; WX 0 ; N ugrave ; B 0 0 0 0 ; +C 250 ; WX 0 ; N uacute ; B 0 0 0 0 ; +C 251 ; WX 0 ; N ucircumflex ; B 0 0 0 0 ; +C 252 ; WX 0 ; N udieresis ; B 0 0 0 0 ; +C 253 ; WX 0 ; N yacute ; B 0 0 0 0 ; +C 254 ; WX 0 ; N thorn ; B 0 0 0 0 ; +C 255 ; WX 0 ; N germandbls ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 61 +KPX quoteright question 111 +KPX quoteright exclam 111 +KPX A C -27 +KPX A O -27 +KPX A G -27 +KPX A U -27 +KPX A Q -27 +KPX A T -83 +KPX A Y -111 +KPX A V -83 +KPX A W -111 +KPX D X -27 +KPX D W -27 +KPX D A -27 +KPX D V -27 +KPX D Y -27 +KPX F A -111 +KPX F O -27 +KPX F C -27 +KPX F G -27 +KPX F Q -27 +KPX I I 27 +KPX K O -27 +KPX K C -27 +KPX K G -27 +KPX K Q -27 +KPX L T -83 +KPX L Y -111 +KPX L V -83 +KPX L W -111 +KPX O X -27 +KPX O W -27 +KPX O A -27 +KPX O V -27 +KPX O Y -27 +KPX P A -83 +KPX R C -27 +KPX R O -27 +KPX R G -27 +KPX R U -27 +KPX R Q -27 +KPX R T -83 +KPX R Y -111 +KPX R V -83 +KPX R W -111 +KPX T A -83 +KPX V A -111 +KPX V O -27 +KPX V C -27 +KPX V G -27 +KPX V Q -27 +KPX W A -111 +KPX W O -27 +KPX W C -27 +KPX W G -27 +KPX W Q -27 +KPX X O -27 +KPX X C -27 +KPX X G -27 +KPX X Q -27 +KPX Y A -83 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/fonts/trajan/trjnr10.pfb b/fonts/trajan/trjnr10.pfb new file mode 100644 index 0000000000..abd841007f Binary files /dev/null and b/fonts/trajan/trjnr10.pfb differ diff --git a/fonts/trajan/trjnr10.tfm b/fonts/trajan/trjnr10.tfm new file mode 100644 index 0000000000..32a72c2014 Binary files /dev/null and b/fonts/trajan/trjnr10.tfm differ diff --git a/fonts/trajan/trjnsl10.afm b/fonts/trajan/trjnsl10.afm new file mode 100644 index 0000000000..ce58b30cb5 --- /dev/null +++ b/fonts/trajan/trjnsl10.afm @@ -0,0 +1,340 @@ +StartFontMetrics 2.0 +Comment Generated by pfaedit +Comment Creation Date: Wed Jun 29 11:50:03 2005 +FontName Trajan-Slanted +FullName Trajan Slanted +FamilyName Trajan +Weight Regular +Notice (Generated from MetaFont bitmap by mftrace 1.1.5, http://www.cs.uu.nl/~hanwen/mftrace/ Copyright 2005 Peter R. Wilson) +ItalicAngle 0 +IsFixedPitch false +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -20 -251 1324 751 +CapHeight 683 +StartCharMetrics 256 +C 0 ; WX 0 ; N grave ; B 0 0 0 0 ; +C 1 ; WX 0 ; N acute ; B 0 0 0 0 ; +C 2 ; WX 0 ; N circumflex ; B 0 0 0 0 ; +C 3 ; WX 0 ; N tilde ; B 0 0 0 0 ; +C 4 ; WX 0 ; N dieresis ; B 0 0 0 0 ; +C 5 ; WX 0 ; N hungarumlaut ; B 0 0 0 0 ; +C 6 ; WX 0 ; N ring ; B 0 0 0 0 ; +C 7 ; WX 0 ; N caron ; B 0 0 0 0 ; +C 8 ; WX 0 ; N breve ; B 0 0 0 0 ; +C 9 ; WX 0 ; N macron ; B 0 0 0 0 ; +C 10 ; WX 0 ; N dotaccent ; B 0 0 0 0 ; +C 11 ; WX 0 ; N cedilla ; B 0 0 0 0 ; +C 12 ; WX 0 ; N ogonek ; B 0 0 0 0 ; +C 13 ; WX 0 ; N quotesinglbase ; B 0 0 0 0 ; +C 14 ; WX 0 ; N guilsinglleft ; B 0 0 0 0 ; +C 15 ; WX 0 ; N guilsinglright ; B 0 0 0 0 ; +C 16 ; WX 0 ; N quotedblleft ; B 0 0 0 0 ; +C 17 ; WX 0 ; N quotedblright ; B 0 0 0 0 ; +C 18 ; WX 0 ; N quotedblbase ; B 0 0 0 0 ; +C 19 ; WX 0 ; N guillemotleft ; B 0 0 0 0 ; +C 20 ; WX 0 ; N guillemotright ; B 0 0 0 0 ; +C 21 ; WX 0 ; N endash ; B 0 0 0 0 ; +C 22 ; WX 0 ; N emdash ; B 0 0 0 0 ; +C 23 ; WX 0 ; N cwm ; B 0 0 0 0 ; +C 24 ; WX 0 ; N perthousand ; B 0 0 0 0 ; +C 25 ; WX 0 ; N dotlessi ; B 0 0 0 0 ; +C 26 ; WX 0 ; N dotlessj ; B 0 0 0 0 ; +C 27 ; WX 0 ; N ff ; B 0 0 0 0 ; L l ffl ; L i ffi ; +C 28 ; WX 0 ; N fi ; B 0 0 0 0 ; +C 29 ; WX 0 ; N fl ; B 0 0 0 0 ; +C 30 ; WX 0 ; N ffi ; B 0 0 0 0 ; +C 31 ; WX 0 ; N ffl ; B 0 0 0 0 ; +C 32 ; WX 0 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 94 -1 303 717 ; +C 34 ; WX 500 ; N quotedbl ; B 113 395 447 695 ; +C 35 ; WX 0 ; N numbersign ; B 0 0 0 0 ; +C 36 ; WX 0 ; N dollar ; B 0 0 0 0 ; +C 37 ; WX 0 ; N percent ; B 0 0 0 0 ; +C 38 ; WX 778 ; N ampersand ; B 60 -22 799 717 ; +C 39 ; WX 278 ; N quoteright ; B 166 394 306 695 ; +C 40 ; WX 389 ; N parenleft ; B 128 -251 457 750 ; +C 41 ; WX 389 ; N parenright ; B 14 -251 344 751 ; +C 42 ; WX 0 ; N asterisk ; B 0 0 0 0 ; +C 43 ; WX 0 ; N plus ; B 0 0 0 0 ; +C 44 ; WX 278 ; N comma ; B 68 -194 206 108 ; +C 45 ; WX 333 ; N hyphen ; B 42 184 318 248 ; +C 46 ; WX 278 ; N period ; B 92 -1 202 108 ; +C 47 ; WX 500 ; N slash ; B 17 -250 567 750 ; +C 48 ; WX 0 ; N zero ; B 0 0 0 0 ; +C 49 ; WX 0 ; N one ; B 0 0 0 0 ; +C 50 ; WX 0 ; N two ; B 0 0 0 0 ; +C 51 ; WX 0 ; N three ; B 0 0 0 0 ; +C 52 ; WX 0 ; N four ; B 0 0 0 0 ; +C 53 ; WX 0 ; N five ; B 0 0 0 0 ; +C 54 ; WX 0 ; N six ; B 0 0 0 0 ; +C 55 ; WX 0 ; N seven ; B 0 0 0 0 ; +C 56 ; WX 0 ; N eight ; B 0 0 0 0 ; +C 57 ; WX 0 ; N nine ; B 0 0 0 0 ; +C 58 ; WX 278 ; N colon ; B 92 -1 256 432 ; +C 59 ; WX 278 ; N semicolon ; B 68 -194 256 432 ; +C 60 ; WX 0 ; N less ; B 0 0 0 0 ; +C 61 ; WX 0 ; N equal ; B 0 0 0 0 ; +C 62 ; WX 0 ; N greater ; B 0 0 0 0 ; +C 63 ; WX 472 ; N question ; B 149 -1 511 706 ; +C 64 ; WX 0 ; N at ; B 0 0 0 0 ; +C 65 ; WX 822 ; N A ; B 59 0 763 682 ; +C 66 ; WX 519 ; N B ; B 42 -2 524 684 ; +C 67 ; WX 719 ; N C ; B 107 -22 773 706 ; +C 68 ; WX 753 ; N D ; B 42 -2 786 684 ; +C 69 ; WX 449 ; N E ; B 42 -2 498 683 ; +C 70 ; WX 411 ; N F ; B 42 0 498 683 ; +C 71 ; WX 808 ; N G ; B 108 -23 783 706 ; +C 72 ; WX 767 ; N H ; B 42 0 838 684 ; +C 73 ; WX 311 ; N I ; B 41 0 383 684 ; L J IJ ; +C 74 ; WX 335 ; N J ; B 2 -152 406 684 ; +C 75 ; WX 667 ; N K ; B 42 0 658 684 ; +C 76 ; WX 449 ; N L ; B 42 -2 440 684 ; +C 77 ; WX 919 ; N M ; B 42 0 877 683 ; +C 78 ; WX 767 ; N N ; B 42 0 838 683 ; +C 79 ; WX 794 ; N O ; B 103 -23 804 707 ; +C 80 ; WX 487 ; N P ; B 42 0 548 684 ; +C 81 ; WX 794 ; N Q ; B 103 -171 1324 706 ; +C 82 ; WX 753 ; N R ; B 42 -25 750 684 ; +C 83 ; WX 453 ; N S ; B 62 -1 484 684 ; +C 84 ; WX 672 ; N T ; B 140 0 727 683 ; +C 85 ; WX 767 ; N U ; B 155 -1 838 684 ; +C 86 ; WX 767 ; N V ; B 145 1 850 684 ; +C 87 ; WX 1023 ; N W ; B 145 1 1106 684 ; +C 88 ; WX 653 ; N X ; B 31 0 672 684 ; +C 89 ; WX 681 ; N Y ; B 145 0 763 684 ; +C 90 ; WX 662 ; N Z ; B 56 -2 719 683 ; +C 91 ; WX 278 ; N bracketleft ; B 76 -251 380 750 ; +C 92 ; WX 500 ; N backslash ; B 233 394 566 694 ; +C 93 ; WX 278 ; N bracketright ; B -20 -251 284 750 ; +C 94 ; WX 0 ; N asciicircum ; B 0 0 0 0 ; +C 95 ; WX 0 ; N underscore ; B 0 0 0 0 ; +C 96 ; WX 278 ; N quoteleft ; B 152 394 292 694 ; +C 97 ; WX 0 ; N a ; B 0 0 0 0 ; +C 98 ; WX 0 ; N b ; B 0 0 0 0 ; +C 99 ; WX 0 ; N c ; B 0 0 0 0 ; +C 100 ; WX 0 ; N d ; B 0 0 0 0 ; +C 101 ; WX 0 ; N e ; B 0 0 0 0 ; +C 102 ; WX 0 ; N f ; B 0 0 0 0 ; L l fl ; L i fi ; L f ff ; +C 103 ; WX 0 ; N g ; B 0 0 0 0 ; +C 104 ; WX 0 ; N h ; B 0 0 0 0 ; +C 105 ; WX 0 ; N i ; B 0 0 0 0 ; L j ij ; +C 106 ; WX 0 ; N j ; B 0 0 0 0 ; +C 107 ; WX 0 ; N k ; B 0 0 0 0 ; +C 108 ; WX 0 ; N l ; B 0 0 0 0 ; +C 109 ; WX 0 ; N m ; B 0 0 0 0 ; +C 110 ; WX 0 ; N n ; B 0 0 0 0 ; +C 111 ; WX 0 ; N o ; B 0 0 0 0 ; +C 112 ; WX 0 ; N p ; B 0 0 0 0 ; +C 113 ; WX 0 ; N q ; B 0 0 0 0 ; +C 114 ; WX 0 ; N r ; B 0 0 0 0 ; +C 115 ; WX 0 ; N s ; B 0 0 0 0 ; +C 116 ; WX 0 ; N t ; B 0 0 0 0 ; +C 117 ; WX 0 ; N u ; B 0 0 0 0 ; +C 118 ; WX 0 ; N v ; B 0 0 0 0 ; +C 119 ; WX 0 ; N w ; B 0 0 0 0 ; +C 120 ; WX 0 ; N x ; B 0 0 0 0 ; +C 121 ; WX 0 ; N y ; B 0 0 0 0 ; +C 122 ; WX 0 ; N z ; B 0 0 0 0 ; +C 123 ; WX 500 ; N braceleft ; B 40 239 545 279 ; +C 124 ; WX 1000 ; N bar ; B 40 240 1045 279 ; +C 125 ; WX 0 ; N braceright ; B 0 0 0 0 ; +C 126 ; WX 0 ; N asciitilde ; B 0 0 0 0 ; +C 127 ; WX 0 ; N sfthyphen ; B 0 0 0 0 ; +C 128 ; WX 0 ; N Abreve ; B 0 0 0 0 ; +C 129 ; WX 0 ; N Aogonek ; B 0 0 0 0 ; +C 130 ; WX 0 ; N Cacute ; B 0 0 0 0 ; +C 131 ; WX 0 ; N Ccaron ; B 0 0 0 0 ; +C 132 ; WX 0 ; N Dcaron ; B 0 0 0 0 ; +C 133 ; WX 0 ; N Ecaron ; B 0 0 0 0 ; +C 134 ; WX 0 ; N Eogonek ; B 0 0 0 0 ; +C 135 ; WX 0 ; N Gbreve ; B 0 0 0 0 ; +C 136 ; WX 0 ; N Lacute ; B 0 0 0 0 ; +C 137 ; WX 0 ; N Lcaron ; B 0 0 0 0 ; +C 138 ; WX 0 ; N Lslash ; B 0 0 0 0 ; +C 139 ; WX 0 ; N Nacute ; B 0 0 0 0 ; +C 140 ; WX 0 ; N Ncaron ; B 0 0 0 0 ; +C 141 ; WX 0 ; N Eng ; B 0 0 0 0 ; +C 142 ; WX 0 ; N Ohungarumlaut ; B 0 0 0 0 ; +C 143 ; WX 0 ; N Racute ; B 0 0 0 0 ; +C 144 ; WX 0 ; N Rcaron ; B 0 0 0 0 ; +C 145 ; WX 0 ; N Sacute ; B 0 0 0 0 ; +C 146 ; WX 0 ; N Scaron ; B 0 0 0 0 ; +C 147 ; WX 0 ; N Scedilla ; B 0 0 0 0 ; +C 148 ; WX 0 ; N Tcaron ; B 0 0 0 0 ; +C 149 ; WX 0 ; N Tcedilla ; B 0 0 0 0 ; +C 150 ; WX 0 ; N Uhungarumlaut ; B 0 0 0 0 ; +C 151 ; WX 0 ; N Uring ; B 0 0 0 0 ; +C 152 ; WX 0 ; N Ydieresis ; B 0 0 0 0 ; +C 153 ; WX 0 ; N Zacute ; B 0 0 0 0 ; +C 154 ; WX 0 ; N Zcaron ; B 0 0 0 0 ; +C 155 ; WX 0 ; N Zdotaccent ; B 0 0 0 0 ; +C 156 ; WX 0 ; N IJ ; B 0 0 0 0 ; +C 157 ; WX 0 ; N Idotaccent ; B 0 0 0 0 ; +C 158 ; WX 0 ; N dcroat ; B 0 0 0 0 ; +C 159 ; WX 0 ; N section ; B 0 0 0 0 ; +C 160 ; WX 0 ; N abreve ; B 0 0 0 0 ; +C 161 ; WX 0 ; N aogonek ; B 0 0 0 0 ; +C 162 ; WX 0 ; N cacute ; B 0 0 0 0 ; +C 163 ; WX 0 ; N ccaron ; B 0 0 0 0 ; +C 164 ; WX 0 ; N dcaron ; B 0 0 0 0 ; +C 165 ; WX 0 ; N ecaron ; B 0 0 0 0 ; +C 166 ; WX 0 ; N eogonek ; B 0 0 0 0 ; +C 167 ; WX 0 ; N gbreve ; B 0 0 0 0 ; +C 168 ; WX 0 ; N lacute ; B 0 0 0 0 ; +C 169 ; WX 0 ; N lcaron ; B 0 0 0 0 ; +C 170 ; WX 0 ; N lslash ; B 0 0 0 0 ; +C 171 ; WX 0 ; N nacute ; B 0 0 0 0 ; +C 172 ; WX 0 ; N ncaron ; B 0 0 0 0 ; +C 173 ; WX 0 ; N eng ; B 0 0 0 0 ; +C 174 ; WX 0 ; N ohungarumlaut ; B 0 0 0 0 ; +C 175 ; WX 0 ; N racute ; B 0 0 0 0 ; +C 176 ; WX 0 ; N rcaron ; B 0 0 0 0 ; +C 177 ; WX 0 ; N sacute ; B 0 0 0 0 ; +C 178 ; WX 0 ; N scaron ; B 0 0 0 0 ; +C 179 ; WX 0 ; N scedilla ; B 0 0 0 0 ; +C 180 ; WX 0 ; N tcaron ; B 0 0 0 0 ; +C 181 ; WX 0 ; N tcedilla ; B 0 0 0 0 ; +C 182 ; WX 0 ; N uhungarumlaut ; B 0 0 0 0 ; +C 183 ; WX 0 ; N uring ; B 0 0 0 0 ; +C 184 ; WX 0 ; N ydieresis ; B 0 0 0 0 ; +C 185 ; WX 0 ; N zacute ; B 0 0 0 0 ; +C 186 ; WX 0 ; N zcaron ; B 0 0 0 0 ; +C 187 ; WX 0 ; N zdotaccent ; B 0 0 0 0 ; +C 188 ; WX 0 ; N ij ; B 0 0 0 0 ; +C 189 ; WX 0 ; N exclamdown ; B 0 0 0 0 ; +C 190 ; WX 0 ; N questiondown ; B 0 0 0 0 ; +C 191 ; WX 0 ; N sterling ; B 0 0 0 0 ; +C 192 ; WX 0 ; N Agrave ; B 0 0 0 0 ; +C 193 ; WX 0 ; N Aacute ; B 0 0 0 0 ; +C 194 ; WX 0 ; N Acircumflex ; B 0 0 0 0 ; +C 195 ; WX 0 ; N Atilde ; B 0 0 0 0 ; +C 196 ; WX 0 ; N Adieresis ; B 0 0 0 0 ; +C 197 ; WX 0 ; N Aring ; B 0 0 0 0 ; +C 198 ; WX 0 ; N AE ; B 0 0 0 0 ; +C 199 ; WX 0 ; N Ccedilla ; B 0 0 0 0 ; +C 200 ; WX 0 ; N Egrave ; B 0 0 0 0 ; +C 201 ; WX 0 ; N Eacute ; B 0 0 0 0 ; +C 202 ; WX 0 ; N Ecircumflex ; B 0 0 0 0 ; +C 203 ; WX 0 ; N Edieresis ; B 0 0 0 0 ; +C 204 ; WX 0 ; N Igrave ; B 0 0 0 0 ; +C 205 ; WX 0 ; N Iacute ; B 0 0 0 0 ; +C 206 ; WX 0 ; N Icircumflex ; B 0 0 0 0 ; +C 207 ; WX 0 ; N Idieresis ; B 0 0 0 0 ; +C 208 ; WX 0 ; N Eth ; B 0 0 0 0 ; +C 209 ; WX 0 ; N Ntilde ; B 0 0 0 0 ; +C 210 ; WX 0 ; N Ograve ; B 0 0 0 0 ; +C 211 ; WX 0 ; N Oacute ; B 0 0 0 0 ; +C 212 ; WX 0 ; N Ocircumflex ; B 0 0 0 0 ; +C 213 ; WX 0 ; N Otilde ; B 0 0 0 0 ; +C 214 ; WX 0 ; N Odieresis ; B 0 0 0 0 ; +C 215 ; WX 0 ; N OE ; B 0 0 0 0 ; +C 216 ; WX 0 ; N Oslash ; B 0 0 0 0 ; +C 217 ; WX 0 ; N Ugrave ; B 0 0 0 0 ; +C 218 ; WX 0 ; N Uacute ; B 0 0 0 0 ; +C 219 ; WX 0 ; N Ucircumflex ; B 0 0 0 0 ; +C 220 ; WX 0 ; N Udieresis ; B 0 0 0 0 ; +C 221 ; WX 0 ; N Yacute ; B 0 0 0 0 ; +C 222 ; WX 0 ; N Thorn ; B 0 0 0 0 ; +C 223 ; WX 0 ; N SS ; B 0 0 0 0 ; +C 224 ; WX 0 ; N agrave ; B 0 0 0 0 ; +C 225 ; WX 0 ; N aacute ; B 0 0 0 0 ; +C 226 ; WX 0 ; N acircumflex ; B 0 0 0 0 ; +C 227 ; WX 0 ; N atilde ; B 0 0 0 0 ; +C 228 ; WX 0 ; N adieresis ; B 0 0 0 0 ; +C 229 ; WX 0 ; N aring ; B 0 0 0 0 ; +C 230 ; WX 0 ; N ae ; B 0 0 0 0 ; +C 231 ; WX 0 ; N ccedilla ; B 0 0 0 0 ; +C 232 ; WX 0 ; N egrave ; B 0 0 0 0 ; +C 233 ; WX 0 ; N eacute ; B 0 0 0 0 ; +C 234 ; WX 0 ; N ecircumflex ; B 0 0 0 0 ; +C 235 ; WX 0 ; N edieresis ; B 0 0 0 0 ; +C 236 ; WX 0 ; N igrave ; B 0 0 0 0 ; +C 237 ; WX 0 ; N iacute ; B 0 0 0 0 ; +C 238 ; WX 0 ; N icircumflex ; B 0 0 0 0 ; +C 239 ; WX 0 ; N idieresis ; B 0 0 0 0 ; +C 240 ; WX 0 ; N eth ; B 0 0 0 0 ; +C 241 ; WX 0 ; N ntilde ; B 0 0 0 0 ; +C 242 ; WX 0 ; N ograve ; B 0 0 0 0 ; +C 243 ; WX 0 ; N oacute ; B 0 0 0 0 ; +C 244 ; WX 0 ; N ocircumflex ; B 0 0 0 0 ; +C 245 ; WX 0 ; N otilde ; B 0 0 0 0 ; +C 246 ; WX 0 ; N odieresis ; B 0 0 0 0 ; +C 247 ; WX 0 ; N oe ; B 0 0 0 0 ; +C 248 ; WX 0 ; N oslash ; B 0 0 0 0 ; +C 249 ; WX 0 ; N ugrave ; B 0 0 0 0 ; +C 250 ; WX 0 ; N uacute ; B 0 0 0 0 ; +C 251 ; WX 0 ; N ucircumflex ; B 0 0 0 0 ; +C 252 ; WX 0 ; N udieresis ; B 0 0 0 0 ; +C 253 ; WX 0 ; N yacute ; B 0 0 0 0 ; +C 254 ; WX 0 ; N thorn ; B 0 0 0 0 ; +C 255 ; WX 0 ; N germandbls ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 61 +KPX quoteright question 111 +KPX quoteright exclam 111 +KPX A C -27 +KPX A O -27 +KPX A G -27 +KPX A U -27 +KPX A Q -27 +KPX A T -83 +KPX A Y -111 +KPX A V -83 +KPX A W -111 +KPX D X -27 +KPX D W -27 +KPX D A -27 +KPX D V -27 +KPX D Y -27 +KPX F A -111 +KPX F O -27 +KPX F C -27 +KPX F G -27 +KPX F Q -27 +KPX I I 27 +KPX K O -27 +KPX K C -27 +KPX K G -27 +KPX K Q -27 +KPX L T -83 +KPX L Y -111 +KPX L V -83 +KPX L W -111 +KPX O X -27 +KPX O W -27 +KPX O A -27 +KPX O V -27 +KPX O Y -27 +KPX P A -83 +KPX R C -27 +KPX R O -27 +KPX R G -27 +KPX R U -27 +KPX R Q -27 +KPX R T -83 +KPX R Y -111 +KPX R V -83 +KPX R W -111 +KPX T A -83 +KPX V A -111 +KPX V O -27 +KPX V C -27 +KPX V G -27 +KPX V Q -27 +KPX W A -111 +KPX W O -27 +KPX W C -27 +KPX W G -27 +KPX W Q -27 +KPX X O -27 +KPX X C -27 +KPX X G -27 +KPX X Q -27 +KPX Y A -83 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/fonts/trajan/trjnsl10.pfb b/fonts/trajan/trjnsl10.pfb new file mode 100644 index 0000000000..096e9c4086 Binary files /dev/null and b/fonts/trajan/trjnsl10.pfb differ diff --git a/fonts/trajan/trjnsl10.tfm b/fonts/trajan/trjnsl10.tfm new file mode 100644 index 0000000000..e0bdf1299e Binary files /dev/null and b/fonts/trajan/trjnsl10.tfm differ diff --git a/fonts/trajan/trytrajan.pdf b/fonts/trajan/trytrajan.pdf new file mode 100644 index 0000000000..035544e694 Binary files /dev/null and b/fonts/trajan/trytrajan.pdf differ diff --git a/fonts/trajan/trytrajan.tex b/fonts/trajan/trytrajan.tex new file mode 100644 index 0000000000..261dc2240a --- /dev/null +++ b/fonts/trajan/trytrajan.tex @@ -0,0 +1,50 @@ +% trytrajan.tex Test Trajan fonts +\documentclass{article} +\usepackage{trajan} + +\newcommand{\ABC}{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} +\newcommand{\punct}{.,;:!?`' \&{} () []} +\newcommand{\dashes}{- -- ---} + +\title{Try Trajan Fonts} +\author{} +\date{} +\begin{document} +\maketitle + + This provides a short test of the characters in the Trajan fonts +--- the \verb|trjn| font family. + + + +\begin{center} +The Trajan Huge normal font \\ +{\trjnfamily\Huge \ABC\\ \punct{}\dashes\\ } +\end{center} +\begin{center} +The Trajan Huge slanted font \\ +{\trjnfamily\slshape\Huge \ABC\\ \punct{}\dashes\\ } +\end{center} +\begin{center} +The Trajan Large normal font \\ +{\trjnfamily\Large \ABC\\ } % \punct{}\dashes\\ } +\end{center} +\begin{center} +The Trajan Large slanted font \\ +{\trjnfamily\slshape\Large \ABC\\ } % \punct{}\dashes\\ } +\end{center} +%\begin{center} +% Some ligatures in the normal font \\ +%\texttrjn{``THE LAZY DOG --- BUT QUICK FOX?''} +%\end{center} + +\begin{center} +The font in its normal size \\ +\texttrjn{\ABC} \\ +and the Computer Modern Roman for comparison \\ +\ABC +\end{center} + + This is the end of the test file. + +\end{document} -- cgit v1.2.3