diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:47:01 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:47:01 +0000 |
commit | 950209b26f70aa87ed07c54f82a95b6f03b7c3a0 (patch) | |
tree | 32b2d4ab4e36aee3a9aaf41877a5c0c581de9b77 /Master/texmf-dist/doc/fonts/eurofont | |
parent | 71c5ce4be7e36bdc6bdda98641bc9368e28223ad (diff) |
doc/fonts
git-svn-id: svn://tug.org/texlive/trunk@83 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/fonts/eurofont')
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/README.europs | 156 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/README.eurosans | 149 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/dvidrive.txt | 189 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/eurofont.dtx | 4148 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/eurofont.ins | 451 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/eurosamp.pdf | bin | 0 -> 84595 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/eurosamp.tex | 60 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/eutest.tex | 46 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/eurofont/readme.txt | 124 |
9 files changed, 5323 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/eurofont/README.europs b/Master/texmf-dist/doc/fonts/eurofont/README.europs new file mode 100644 index 00000000000..f59e98140ac --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/README.europs @@ -0,0 +1,156 @@ +Adobe's Euro currency fonts for LaTeX +===================================== + +[ Note: this Europs package has been merged with the fonts/euro package +so the paths in this documentation aren't correct any more. You find all +support files apart from the Adobe fonts itself in the directory +CTAN:/tex-archive/fonts/euro. + +Reinhard Zierke, 09-Aug-1999 ] + + +1. Introduction +--------------- + +This is yet another attempt to provide the Euro currency symbol for LaTeX. +There are already several solutions, but each with limited possibilities: + + - The package marvosym (by Thomas Henlich) provides a PostScript font with + four glyphs: The official Euro symbol, and three not-so-official shapes + which are more convenient when using the symbol together with Times, + Helvetica or Courier. + + - The package eurosym (by Henrik Theiling) provides the Euro symbol in + several shapes, among them one that is constructed from the exact + specifications. The font itself is done with Metafont, which is not + a problem by itself. But if you want to create PDFs containing the Euro + symbol, you're bound for trouble. + + - Finally, there is a set of tfm files for Adobe's Euro fonts, which were + placed on CTAN on behalf of Y&Y. The included (plain) TeX-example works, + but leaves much to be desired. + + +2. This Package +--------------- + +So, several solutions, but every single one has it's drawbacks. So I decided +to try to hack something together, and that's what I came up with: + + - I use the twelve fonts distributed by Adobe, as the Y&Y package does. + + - The font names conform to Karl Berry's naming scheme. The following + list gives the PostScript names and the corresponding TeX names. The + two other file names in the list are used later: + + PostScript TeX PC Macintosh + + EuroSans-Regular zpeurs.pfb _1______.PFB EuroSanReg + EuroSans-Italic zpeuris.pfb _1I_____.PFB EuroSanIta + EuroSans-Bold zpeubs.pfb _1B_____.PFB EuroSanBol + EuroSans-BoldItalic zpeubis.pfb _1BI____.PFB EuroSanBolIta + + EuroSerif-Regular zpeur.pfb _3______.PFB EuroSerReg + EuroSerif-Italic zpeuri.pfb _3I_____.PFB EuroSerIta + EuroSerif-Bold zpeub.pfb _3B_____.PFB EuroSerBol + EuroSerif-BoldItalic zpeubi.pfb _3BI____.PFB EuroSerBolIta + + EuroMono-Regular zpeurt.pfb _2______.PFB EuroMonReg + EuroMono-Italic zpeurit.pfb _2I_____.PFB EuroMonIta + EuroMono-Bold zpeubt.pfb _2B_____.PFB EuroMonBol + EuroMono-BoldItalic zpeubit.pfb _2BI____.PFB EuroMonBolIta + + - I have included fd files, so that within each of the three font families + the usual NFSS commands for changing series and shape work. + + - The file europs.sty defines five commands for selecting the Euro symbol: + + \EURhv selects EuroSans + \EURtm selects EuroSerif + \EURcr selects EuroMono + \EUR selects one of the three above, depending on the current + context + \EURofc selects EuroSans Regular independent of context + N.B.: This is the only "official" Euro symbol. If you + want to conform with the rules of the EU (or + whoever), you may only use this symbol. + + The first four names are stolen from marvosym. Although the association + with Helvetica, Times and Courier is not necessarily intelligent, these + names are easy to remember. + +So, you can simply say + + \textsf{just my 2 \EUR} + \textbf{\textit{just my 2 \EUR}} + +and you get the symbol you expect. + + +3. Installation +--------------- + +This archive consists of the following files: + + dvips + zpeu.map + pdftex + zpeu.pdfmap + tex + europs.dtx europs.ins + eutest.ps eutest.tex + tfm + zpeub.tfm zpeubi.tfm zpeubis.tfm zpeubit.tfm + zpeubs.tfm zpeubt.tfm zpeur.tfm zpeuri.tfm + zpeuris.tfm zpeurit.tfm zpeurs.tfm zpeurt.tfm + +Install the tfm files in the appropriate place, depending on your TeX version. + +You will need the Type 1 files from Adobe. For legal reasons they cannot be +included in this package. You have to fetch them personally, e.g. from + + http://www.adobe.com/type/eurofont.html + +or + + ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe + ftp://ftp.adobe.com/pub/adobe/type/mac/all/eurofont.sea.hqx + +You can either unpack one of these archives on an appropriate computer, or +you can use the freely distributable "unzip" to extract the files from the +file "eurofont.exe". Once you've done this, you have to rename the fonts +according to the table shown above, i.e. _1______.PFB is renamed to +zpeurs.pfb, and so on. If you have downloaded and unpacked the Macintosh +archive, you have to extract the POST part from the resource fork of the +fonts. This can e.g. be done with the program "macfont". It is available +at your nearest CTAN mirror. Once you got the PFB files, put them into the +type1 directory of your TeX installation. + +Append(!!) zpeu.map to psfonts.map, and, if you are using pdfTeX, zpeu.pdfmap +to the appropriate mapping file, so that dvips and pdfTeX know how to handle +these fonts. Note: dvips prior to 5.80 has problems with partial font +downloading in general, and with Adobe's Euro fonts in particular. You can +say "dvips -j0 ..." to switch off partial font downloading completely, but +this may increase the size of the generated PostScript file. You should +really get the most recent version of dvips, which can be found at + + http://www.radicaleye.com/ + +Most TeX distributions include new versions of the individual programs quite +fast, so you may want to check your distribution for a recent version of +dvips. + +Process europs.ins with TeX or LaTeX. This will produce a style file and +three font definition files. Move them to a place where LaTeX can find them. + +Now you should be able to use the Euro currency symbol. + + +4. Bugs +------- + +Probably many. If you find one, or want a feature to be added, please contact + + Joern Clausen + University of Bielefeld, Faculty of Technology + joern@TechFak.Uni-Bielfeld.DE diff --git a/Master/texmf-dist/doc/fonts/eurofont/README.eurosans b/Master/texmf-dist/doc/fonts/eurofont/README.eurosans new file mode 100644 index 00000000000..e20363f1556 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/README.eurosans @@ -0,0 +1,149 @@ +============================================================ + The LaTeX package eurosans + version 3.0 +============================================================ + Walter Schmidt + was@VR-Web.de + 2002-01-09 + +Usage +----- +The LaTeX package "eurosans" provides a convenient LaTeX +interface for the free Adobe Euro symbol fonts in Type 1 +(PostScript) format. Loading of the package + + \usepackage{eurosans} + +provides a new command + + \euro + +which typesets an Euro symbol. The weight (medium or +boldface), shape (upright or oblique) and width (regular or +condensed) varies according to the font currently selected. +The symbol blends well with most typefaces, except for +typewriter fonts. The medium/upright/regular variant meets +the official design by the EC. + +The Euro Fonts can be scaled, in order to match the other +fonts in the document, by loading the package with the +option [scaled=...]. For instance, to use the Euro fonts at +90% of their `natural' size: + + \usepackage[scaled=0.9]{eurosans} + +The eurosans package requires the package keyval.sty, which +is part of the `graphics' bundle and should be available +with any decent LaTeX system. + + + +The font family "eurosans" +-------------------------- +The command \euro switches to a particular font family named +"eurosans", which is set up with the encoding "U" only. + +NFSS classification: + + series shapes PostScript FontName + -------------------------------------------------------- + m n,it,sl EuroSans-Regular, EuroSans-Italic + b,bx n,it,sl EuroSans-Bold, EuroSans-BoldItalic + mc n,it,sl EuroMono-Regular, EuroMono-Italic + sbc,bc n,it,sl EuroMono-Bold, EuroMono-BoldItalic + +(The EuroMono typefaces are actually condensed versions of +EuroSans.) + + + +Obtaning and installing the Euro Fonts +-------------------------------------- + +(1) Install the font metrics (.tfm files), to be found in +the CTAN directory fonts/euro/tfm. + +(2) Install a font map file for dvips, pdfTeX etc, to be found +in the CTAN directory fonts/euro/dvips. + +A font map file and the .tfm files for the Euro fonts may +already be provided in your TeX system, so that you need not +install them manually; please, consult its documentation! + +(3) Due to legal reasons, the actual Type1 fonts (.pfb and +.afm files) are _not_ distributed from CTAN. They can be +obtained from free from Adobe: + + <http://www.adobe.com/type/eurofont.html> + +You will receive a self-extracting archive "eurofont.exe" for +DOS/Win, which can be unpacked using Info-Zip's "unzip" +program, too. The archive file can also be downloaded +immediately: + + ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe + ftp://ftp-pac.adobe.com/pub/adobe/type/win/all/eurofont.exe + +(4) Move the .pfb and .afm files from the archive to a +suitable directory of your TeX system. When using the map +file "zpeu.map", you also have to rename the files as +follows: + + _1______.PFB -> zpeurs.pfb + _1B_____.PFB -> zpeubs.pfb + _1I_____.PFB -> zpeuris.pfb + _1BI____.PFB -> zpeubis.pfb + _2______.PFB -> zpeurt.pfb + _2B_____.PFB -> zpeubt.pfb + _2I_____.PFB -> zpeurit.pfb + _2BI____.PFB -> zpeubit.pfb + _3______.PFB -> zpeur.pfb + _3B_____.PFB -> zpeub.pfb + _3I_____.PFB -> zpeuri.pfb + _3BI____.PFB -> zpeubi.pfb + +...and ditto for the .AFM files! + +When using the map file "zpeu-origname.map", you need NOT +rename the files; however, on Unix you should make sure that +the names are lower case. + + + +Known problems +-------------- +With dvips prior to version 5.83, partial font downloading +will fail with an error message like this one: + + File <_1bi____.pfb> ended before all chars have been found + We scan 0 Chars from 226 + Lst seen token was '/Euro' + +Partial font downloading can be turned off by calling dvips +with the option -j0 or by specifying j0 in the dvips +configuration file. + +This bug has been fixed with dvips version 5.83. + + + +History +------- +v3.0 2002-01-09 + optional scaling + +v2.1 2000-06-15 + the EuroMono fonts are used for the condensed series + +v2.0 1999-07-21 + changed the font names acording to "Karl Berry" scheme + +v1.0 1999-01-19 + \euro is now robust; + documentation update + +v0.9 1998-11-09 + first public version + + +-- finis diff --git a/Master/texmf-dist/doc/fonts/eurofont/dvidrive.txt b/Master/texmf-dist/doc/fonts/eurofont/dvidrive.txt new file mode 100644 index 00000000000..05bb1bb5013 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/dvidrive.txt @@ -0,0 +1,189 @@ +%% LaTeX2e file `dvidrive.txt' +%% generated by the `filecontents' environment +%% from source `eurofont' on 1999/02/02. +%% +File dvidrive.txt +Copyright 1998 Rowland McDonnell +email rebecca@astrid.u-net.com + + +This file contains information on how to configure dvips and OzTeX to use +Adobe's Eurofonts and the Marvosym fount. I believe that pdfTeX can use +dvips entries. + +If there are any problems with the information below, or if you have +information on how to configure other dvi drivers, please let me know by +emailing: rebecca@astrid.u-net.com + + +DVI DRIVER CONFIGURATION LINES FOR ADOBE'S EUROFONTS +==================================================== + +Note that versions of dvips before v5.83 have trouble doing partial fount +downloading with Adobe's Eurofonts. Because of this, I have listed the +dvips psfont.map entries with `|<<|' and with `|<|': the `|<<|' +entries prevent dvips attempting to do partial fount downloading with +that particular fount. + +The `<<' syntax does not work with all versions of dvips; it does work +with dvips v5.78, but doesn't work with v5.70. If you're using a pre +`<<' dvips, you should use the entries with `<' and don't use partial +fount downloading with any document containing Adobe's Eurofonts; +passing the -j0 switch to dvips will prevent it from doing partial +fount downloading if this is normally turned on. + +I've asked the author of dvips when the `<<' syntax was first +introduced, and he can't remember. + +I am told that pdftex can do partial fount downloading using Adobe's +Eurofonts. + +Eurofont configuration lines for Windows/Unix/any others? +========================================================= + +(you need to re-name the *.PFB files *.pfb; thanks to Stefan Ulrich +<ulrich@cis.uni-muenchen.de> for this and the following entries) + + +psfonts.map entries for Windows/Unix/other +dvips v5.78 or similar + +zpeurs EuroSans-Regular <<_1______.pfb +zpeubs EuroSans-Bold <<_1B_____.pfb +zpeuris EuroSans-Italic <<_1I_____.pfb +zpeubis EuroSans-BoldItalic <<_1BI____.pfb +zpeurt EuroMono-Regular <<_2______.pfb +zpeubt EuroMono-Bold <<_2B_____.pfb +zpeurit EuroMono-Italic <<_2I_____.pfb +zpeubit EuroMono-BoldItalic <<_2BI____.pfb +zpeur EuroSerif-Regular <<_3______.pfb +zpeub EuroSerif-Bold <<_3B_____.pfb +zpeuri EuroSerif-Italic <<_3I_____.pfb +zpeubi EuroSerif-BoldItalic <<_3BI____.pfb + + +psfonts.map entries for Windows/Unix/other +dvips v5.70 or before, dvips v5.83 and above, and pdftex: + +(note that I don't use pdftex; this suggestion might not work) + +zpeurs EuroSans-Regular <_1______.pfb +zpeubs EuroSans-Bold <_1B_____.pfb +zpeuris EuroSans-Italic <_1I_____.pfb +zpeubis EuroSans-BoldItalic <_1BI____.pfb +zpeurt EuroMono-Regular <_2______.pfb +zpeubt EuroMono-Bold <_2B_____.pfb +zpeurit EuroMono-Italic <_2I_____.pfb +zpeubit EuroMono-BoldItalic <_2BI____.pfb +zpeur EuroSerif-Regular <_3______.pfb +zpeub EuroSerif-Bold <_3B_____.pfb +zpeuri EuroSerif-Italic <_3I_____.pfb +zpeubi EuroSerif-BoldItalic <_3BI____.pfb + + +Eurofont configuration lines for Macs +===================================== + + +Macintosh psfonts.map entries for dvips v5.78 or similar + +zpeur EuroSerif-Regular <<EuroSerReg +zpeuri EuroSerif-Italic <<EuroSerIta +zpeub EuroSerif-Bold <<EuroSerBol +zpeubi EuroSerif-BoldItalic <<EuroSerBolIta +zpeurs EuroSans-Regular <<EuroSanReg +zpeuris EuroSans-Italic <<EuroSanIta +zpeubs EuroSans-Bold <<EuroSanBol +zpeubis EuroSans-BoldItalic <<EuroSanBolIta +zpeurt EuroMono-Regular <<EuroMonReg +zpeurit EuroMono-Italic <<EuroMonIta +zpeubt EuroMono-Bold <<EuroMonBol +zpeubit EuroMono-BoldItalic <<EuroMonBolIta + + +Macintosh psfonts.map entries for +dvips v5.70 or before, dvips v5.83 and above, and pdftex: + +(note that I don't use pdftex; this suggestion might not work) + +zpeur EuroSerif-Regular <EuroSerReg +zpeuri EuroSerif-Italic <EuroSerIta +zpeub EuroSerif-Bold <EuroSerBol +zpeubi EuroSerif-BoldItalic <EuroSerBolIta +zpeurs EuroSans-Regular <EuroSanReg +zpeuris EuroSans-Italic <EuroSanIta +zpeubs EuroSans-Bold <EuroSanBol +zpeubis EuroSans-BoldItalic <EuroSanBolIta +zpeurt EuroMono-Regular <EuroMonReg +zpeurit EuroMono-Italic <EuroMonIta +zpeubt EuroMono-Bold <EuroMonBol +zpeubit EuroMono-BoldItalic <EuroMonBolIta + + +OzTeX config file entries + +zpeur EuroSerif-Regular "Euro Serif" nil +zpeuri EuroSerif-Italic "Euro Serif" nil i +zpeub EuroSerif-Bold "Euro Serif" nil b +zpeubi EuroSerif-BoldItalic "Euro Serif" nil bi +zpeurs EuroSans-Regular "Euro Sans" nil +zpeuris EuroSans-Italic "Euro Sans" nil i +zpeubs EuroSans-Bold "Euro Sans" nil b +zpeubis EuroSans-BoldItalic "Euro Sans" nil bi +zpeurt EuroMono-Regular "Euro Monospace" nil +zpeurit EuroMono-Italic "Euro Monospace" nil i +zpeubt EuroMono-Bold "Euro Monospace" nil b +zpeubit EuroMono-BoldItalic "Euro Monospace" nil bi + + +DVI DRIVER CONFIGURATION LINES FOR MARVOSYM +=========================================== + +Here are some lines to configure dvips to use the Marvosym fount: + +Dvips psfonts.map entries for the original Marvosym fount: + +fmvr8x Martin_Vogels_Symbole <marvosym.pfb +fmvri8x Martin_Vogels_Symbole " .167 SlantFont" <marvosym.pfb + + +Dvips psfonts.map entries for the Y&Y `ATM compatible' +re-worked Marvosym fount: + +fmvr8x Marvosym <marvosym.pfb +fmvri8x Marvosym " .167 SlantFont" <marvosym.pfb + + +I have assumed that all dvi drivers that can use PostScript Type 1 +founts can also produce fake italic founts by slanting an upright +version. Because of this, I have made no provision for dvi drivers +that can't do this. If you have a dvi driver that can't fake an +italic, please let me know and I'll modify the eurofont package to +take this into account, probably by adding another option and writing +a new fd file. + +Note for Macintosh users + +A Mac version of the Marvosym fount has been created in PostScript Type 1 +and TrueType versions. It uses the Y&Y names as above, and these lines are +be needed for dvips's psfonts.map file: + +fmvr8x Marvosym <Marvo +fmvri8x Marvosym " .167 SlantFont" <Marvo + +And these lines for OzTeX's default config file: + +fmvr8x Marvosym Marvosym nil +fmvri8x Marvosym Marvosym nil i + + +If a version of the original Marvosym fount is ever released for Macs, +these lines will be needed for dvips's psfonts.map file: + +fmvr8x Martin_Vogels_Symbole <MartiVogSym +fmvri8x Martin_Vogels_Symbole " .167 SlantFont" <MartiVogSym + +And these lines for OzTeX's default config file: + +fmvr8x MartiVogSym "Martin Vogels Symbole" nil +fmvri8x MartiVogSym "Martin Vogels Symbole" nil i diff --git a/Master/texmf-dist/doc/fonts/eurofont/eurofont.dtx b/Master/texmf-dist/doc/fonts/eurofont/eurofont.dtx new file mode 100644 index 00000000000..57800578f5f --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/eurofont.dtx @@ -0,0 +1,4148 @@ +%%\iffalse +%% File eurofont.sty +%% copyright Rowland McDonnell 1998 +%% email rebecca@astrid.u-net.com +%%\This file is part of the eurofont distribution. You can distribute it +%% freely provided that you include the rest of the eurofont distribution +%% with this file and make no more than a nominal charge to cover the +%% costs of distributing it. +%% +%% If you would like to change the contents of this file, please make a +%% copy of it under a different name and change that instead. Keep my +%% copyright notice attached, but make it clear that the new file is your +%% responsibility so you get the credit for the improvements and I don't +%% get blamed for the bugs. +% +% Remove \OnlyDescription to get the code typeset. +% +% Note to me: comment out \OnlyDescription to get the checksum right, +% and then uncomment it. Maybe. +% +%\fi +%\iffalse +%<*driver> +\documentclass[a4paper,10pt]{ltxdoc} +\usepackage{tabularx,varioref,xspace} +\usepackage[OT1]{fontenc} +% \OnlyDescription +\begin{document} + \DocInput{eurofont.dtx} +\end{document} +%</driver> +%\fi +%\iffalse +%<*package> +%\fi +%% \CheckSum{1267} +%% \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 \~} +% +% \author{Rowland McDonnell\\ \texttt{rebecca@astrid.u-net.com}} +% \title{The \packname{eurofont} package v1.1.3} +% \date{30th January 1999} +% +% \newcommand*{\packname}[1]{{\sffamily #1}} +% \newcommand*{\classname}[1]{{\ttfamily #1}} +% \newcommand*{\optname}[1]{{\ttfamily #1}} +% \newcommand*{\lfntname}[1]{{\ttfamily #1}} +% \newcommand*{\filename}[1]{{\ttfamily #1}} +% \DeclareRobustCommand*{\filename}[1]{{\ttfamily#1}} +% \newcommand*{\OzTeX}{O\kern-.03em z\kern-.15em\TeX} +% \newcommand{\PS}{PostScript\xspace} +% \newcommand{\dvidriver}{dvi driver\xspace} +% \newcommand{\Dvidriver}{Dvi driver\xspace} +% +%\makeatletter +%\iffalse +% The instances of ^^A are `real' comment characters to suppress the +% end-of-line space in the middle of the command definitions. +%\fi +% +%\newcommand{\ttlb}{{\ttfamily\def\@tempcmda{OT1}^^A +%\ifx\f@encoding\@tempcmda\char"7B\else\{\fi}} +% +%\newcommand{\ttrb}{{\ttfamily\def\@tempcmda{OT1}^^A +%\ifx\f@encoding\@tempcmda\char"7D\else\}\fi}} +% +%\newcommand{\ttbs}{{\ttfamily\def\@tempcmda{OT1}^^A +%\ifx\f@encoding\@tempcmda\char`\\\else\textbackslash\fi}} +% +%\newcommand*{\comname}[2][VF500F2E]{{\ttfamily\ttbs #2^^A +%\def\@tempcmda{VF500F2E}\def\@tempcmdb{#1}^^A +%\ifx\@tempcmda\@tempcmdb\else\comarg{#1}\fi}} +% +%\newcommand*{\comarg}[1]{{\ttfamily\ttlb$\langle$^^A +%{\rmfamily\itshape#1}\/$\rangle$\ttrb}} +% +%\newcommand*{\comoptarg}[1]{{\ttfamily[$\langle$^^A +%{\rmfamily\itshape#1}\/$\rangle$]}} +% +%\makeatother +% +% \maketitle +% +% \tableofcontents +% +% \section{Introduction} +% +% The \packname{eurofont} package was written to do two complementary +% jobs: firstly, to automate the process of using a euro symbol from any +% source in any fount\footnote{I am one of the last people in the world +% to use this spelling of the word to refer to `a set of type in one +% size and style'.}; secondly, to generate a `faked' euro symbol from a C +% with two lines across it, which can be used automatically when no +% suitable real euro symbol exists. +% +% Despite the name, the \packname{eurofont} package does not itself +% have a fount containing euro symbols: it's meant to help you use +% founts with euro symbols. +% +% The \packname{eurofont} package defines two commands meant to be used +% in documents: the \comname{euro} command which prints a euro symbol, +% and the \comname[amount]{euros} command which prints a euro symbol +% next to its argument -- normally a number -- with a small space in +% between the two. The particular euro symbol printed depends on the way +% \packname{eurofont} has been set up: the decision made is based on the +% fount in use at the time you use the command. The \comname{euros} +% command uses the \comname{euro} command to print the euro symbol, so +% these commands print the same symbol under the same circumstances. +% +% There are several ways of controlling which particular euro symbol you +% get with any given fount; the idea is that -- with a bit of luck -- +% most users won't need to do anything more complicated than passing +% options to \packname{eurofont} and making minor changes to the +% configuration file, \filename{eurofont.cfg}. +% +% Note for \OzTeX\ users (and perhaps others): throughout this document, +% I refer to the standard set of \PS Type 1 founts (Times, Helvetica, +% Courier, etc). If, like me, you use TrueType versions of Times, +% Palatino, etc., instead of \PS Type 1 versions, the difference doesn't +% matter. +% +% This is the second public release of the \packname{eurofont} package; +% as I had expected, at least one bug did escape my notice in the first +% release (it was a problem with the advice given on configuring dvips). +% I've fixed the problem reported, but there's probably a few more bugs +% lurking in the package; if you do spot any bugs, have any trouble with +% the documentation, you'd like to tell me how to configure the +% \dvidriver \emph{you} use (I'd love to hear from Amiga or Archimedes +% \TeX\ users in particular), or you'd just like to make a comment or +% suggestion about the \packname{eurofont} package, I'd appreciate an +% email at: |rebecca@astrid.u-net.com|. +% +% \subsection{What else do I need?} +% +% The only thing you must have to use the \packname{eurofont} package is +% a working \LaTeX2e\ installation. This package has only been tested +% with the June 1998 release of \LaTeX2e, but will probably work +% correctly with earlier versions. \packname{Eurofont} will not work +% with \LaTeX~2.09. +% +% The \packname{eurofont} package can be configured to produce useful +% euro symbols in the absence of any founts containing real euro +% symbols, but you will need to edit the configuration file if you want +% this; an introduction to configuring this package can be found in +% section~\vref{sec:config_intro}. +% +% In its default configuration, \packname{eurofont} expects to find +% Adobe's Eurofonts installed. If you want to avoid these, you can pass +% the \optname{marvosym} option to \packname{eurofont} and it'll expect +% the Marvosym fount instead. Adobe's Eurofonts have italic, bold, and +% bold italic variants which Marvosym lacks. +% +% Both Marvosym and the Eurofonts are \PS Type 1 founts: you can use +% them if you have a \PS printer, ATM (Adobe Type Manager), or a \PS +% emulator like Ghostscript. Section~\vref{sec:getPSfounts} has more on +% these founts and how to get them. +% +% The \packname{eurosym} and \packname{China2e} packages both have euro +% symbols in Metafont format which can be used by \packname{eurofont}. +% You'll get \packname{eurosym}'s euro symbol if you pass the +% \optname{eurosym} option to \packname{eurofont} -- this gives you +% \packname{eurosym}'s euro symbol instead of Adobe's Eurofonts or +% Marvosym's euro symbols, and also replaces the euro symbols you get +% with the Computer Modern founts. You will need to edit the +% configuration file if you want to use the euro symbol from the China2e +% fount. +% +% +% \subsection{How to install the package -- in brief} +% +% \begin{enumerate} +% \item Run \LaTeX\ on \filename{eurofont.ins}. +% \item Put \filename{eurofont.sty}, \filename{eurofont.cfg}, and all +% the files ending in \filename{.fd} into a directory on your +% tex-inputs search path. +% \item (optional) Get and install Adobe's Eurofonts, and/or the +% marvosym fount, and/or the \packname{China2e} package, and/or the EC +% founts (the T1 encoded re-working of the original Computer Modern +% founts), and/or the \packname{Eurosym} package. See +% section~\vref{sec:getfounts} for details. +% \item (optional) If you want to use Adobe's Eurofont's, put the +% \filename{zpeu...tfm} files into a directory on your tex-fonts search +% path, and the \filename{zpeu...vf} files into a directory on your vf +% (virtual founts) search path. +% \item (optional) If you intend to use the marvosym fount, put one +% of the two files \filename{fmvri8x.tfm} into a directory on your +% tex-fonts search path; put it with the file \filename{fmvr8x.tfm} that +% comes with the \packname{marvosym} distribution. +% \item (optional) Copy the appropriate lines from +% \filename{dvidrive.txt} to the appropriate file on your system to +% configure your \dvidriver to use marvosym and/or Adobe's Eurofonts. +% This procedure is also covered in section~\vref{sec:dvidriver_config}. +% \item (optional) Modify the file \filename{eurofont.cfg} as you like. +% \end{enumerate} +% +% \subsection{How to use the package -- a brief introduction} +% +% This is how to use \packname{eurofont} in your document: +%\begin{verbatim} +% \documentclass[a4paper]{article} +% \usepackage{eurofont} +% \begin{document} +% The euro symbol looks like this: \euro. A sum of money can +% be written like this: \euros{500}. +% \end{document} +%\end{verbatim} +% The \comname{euro} command prints the euro symbol; the \comname{euros} +% command is meant to be used to typeset a sum of money in euros: it +% prints the euro symbol to the left (by default) of its argument, with +% a small amount of space between the symbol and the text of the +% argument. If you give the \packname{eurofont} package the +% \optname{right} option, the euro symbol will be on the right. +% +% The \packname{eurofont} package's default setup assumes that you've +% got Adobe's Eurofonts installed. If you want use to euro symbols from +% the Marvosym fount instead, use the \optname{marvosym} option: +%\begin{verbatim} +% \usepackage[marvosym]{eurofont} +%\end{verbatim} +% +% The next question is: what do you get when you use the \comname{euro} +% or \comname{euros} command? The \packname{eurofont} package decides +% which euro symbol to use depending on the fount in use at the place +% where the \comname{euro} command is encountered. The way the package +% is set up initially, you get this: +% \begin{itemize} +% \item All bar one of the `standard' set of \PS founts get a +% euro symbol from one of Adobe's Eurofonts: Bookman, Times, Palatino, New +% Century Schoolbook, and Utopia use Euroserif; Avant Garde, Helvetica, +% Symbol, and Zapf Dingbats use Eurosans; and Courier uses Euromono. +% \item Zapf Chancery (the one exception) uses a euro symbol faked with +% medium rules. +% \item Each of the three Computer Modern text fount families (Computer +% Modern Roman, Computer Modern Sanserif, and Computer Modern +% Typewriter (\lfntname{cmr}, \lfntname{cmss}, and \lfntname{cmtt}) uses +% either the appropriate euro symbol from the matching `text companion' (TC) +% fount (if installed); or, if the TC founts appear to be missing, +% \packname{eurofont} will print a faked euro symbol instead. +% \item Everything else gets a euro symbol faked with medium weight +% rules. +% \end{itemize} +% The \optname{marvosym} option tells \packname{eurofont} to use the +% Marvosym fount's euro symbols in place of Adobe's Eurofonts. +% +% The faked euro symbols I refer to above are euro symbols produced by +% superimposing a pair of horizontal lines over a letter `C'. The +% result can be surprisingly tolerable in some cases. +% +% \subsubsection{Options} +% +% This is my best guess at the options most new users are likely to +% want to know about first, not a full list of all the options -- you +% can find that in section~\vref{sec:all_options}. +% \begin{description} +% \item[\optname{left}] This option makes the \comname{euros} command +% print the euro symbol to the left of its argument, which is normally a +% number; the \comname{euros} command is meant for typesetting sums of +% money. This is the default behaviour. +% +% \item[\optname{right}] This option makes the \comname{euros} command +% print the euro symbol to the right of its argument, which is normally +% a number; the \comname{euros} command is meant for typesetting sums of +% money. +% +% \item[\optname{marvosym}] This option tells \packname{eurofont} to use +% the Marvosym fount's euro symbols for the standard set of \PS +% Type 1 founts. The \packname{eurofont} package automatically fakes a +% bold version when needed, and you'll also get a decent faked +% italic/slanted version if your \dvidriver can slant a fount. +% +% \item[\optname{eurosym}] This option tells \packname{eurofont} to use +% the \packname{eurosym} package's euro symbol for the Computer Modern +% families and for the standard set of \PS Type 1 founts. If the +% \packname{eurosym} package isn't available, \packname{eurofont} +% complains and all euro symbols are created using the normal +% \packname{eurofont} code for printing faked euro symbols. +% \end{description} +% +% \subsection{Some founts with euro symbols}\label{sec:someeurofounts} +% +% It's a good idea to get some founts containing the euro symbol. +% Section~\vref{sec:getfounts} has more details of some freely available +% founts. In brief, the founts with euro symbols in that I know about are: +% \begin{center} +% \begin{tabularx}{\textwidth}{@{}ll>{\raggedright\arraybackslash}X@{}} +% \textbf{Fount} & \textbf{Format} & \textbf{Notes} \\[1ex] +% Adobe Eurofonts & PS Type 1 & Seriffed, sanserif, and +% monospaced all in upright, +% italic, bold, and bold italic\\ +% Marvosym & pfa and pfb only & Seriffed, sanserif, and monospaced +% in upright medium only\\[0.5ex] +% China2e & Metafont & A single beautiful upright euro +% symbol \\[0.5ex] +% Eurosym & Metafont & The official euro and an +% alternative approach to printing a +% faked euro\\[0.5ex] +% Text Companion & Metafont & Founts containing extra +% symbols that come with the T1 +% encoded version of the Computer +% Modern founts \\ +% \end{tabularx} +% \end{center} +% If you know of other founts containing euro symbols that are used +% with \LaTeX\, do please let me know and I'll add them to this list. +% +% The \packname{china2e} and \packname{marvosym} packages come with +% founts in one shape and weight only: medium upright. Despite this, the +% \packname{eurofont} package will print what looks like a bold euro symbol +% from either fount, and can (with a bit of help from your \dvidriver) +% also manage italic and bold italic euro symbols from \packname{marvosym}. +% +% The way it works is this: \packname{eurofont} comes with two +% \filename{tfm} files -- both called \filename{fmvri8x.tfm} -- for a +% slanted version of the Marvosym fount\footnote{Use the \filename{tfm} +% file from the \filename{original} directory if you're using the +% original version of Marvosym (the \filename{pfa} or \filename{pfb} +% files from CTAN or the TrueType version from Martin Vogel's Web site); +% and use the \filename{tfm} file from the \filename{yandy} folder if +% you're using the Y\&Y version of Marvosym -- either downloaded from +% the Y\&Y Web site, or the Macintosh version from CTAN.}. This fount +% doesn't really exist, but some \dvidriver{}s can create a slanted +% fount from an upright one by leaning it to one side. +% +% Assuming your \dvidriver can create a slanted fount (dvips can -- see +% section~\ref{sec:dvidriver_config:mvs} for more details), this extra +% \filename{tfm} file means you can use the Marvosym fount's euro +% symbols with slanted or italic founts: the results you get with this +% should be good enough for all practical purposes. \packname{Eurofont} +% also has two commands to print a `poor man's bold' version of a euro +% symbol; one of these is used automatically to print bold versions of +% the Marvosym or China2e euro symbols, which are missing bold variants. +% These poor man's bold commands print six copies of the requested +% symbol, each offset from the others by a very small amount in a +% hexagonal arrangement. There's a bit more detail in +% section~\vref{sec:howitworks:EFpmb}. +% +% If you want to use the euro symbol from China2e, you could do worse +% than to read section~\vref{sec:config_intro}. +% +% \subsection{How to change what you get -- a brief +% intro}\label{sec:config_intro} +% +% The \packname{eurofont} package comes with a configuration file called +% \filename{eurofont.cfg}. The idea is that you can change this file as +% much as you like to meet your preferences. +% +% But before diving in and changing anything, there are several options +% that can change what the package does. There's a brief description of +% some of them in section~\vref{sec:someeurofounts}, and +% section~\vref{sec:all_options} tells all. +% +% The basic idea behind \packname{eurofont}'s \comname{euro} command is +% this: there are several lists which have their contents defined in the +% file \filename{eurofont.cfg}. When you use the \comname{euro} or +% \comname{euros} command, the current fount family is checked against +% each list in turn. If the fount family matches an entry in a list, +% then the command corresponding to that list is executed. This command +% prints a particular euro symbol. The first match you get decides which +% euro symbol you get: you can't get two euro symbols if one fount +% family is listed in, say, the \comname{chinaelist} and the +% \comname{seriflist} +% +% So, for example, the fount family \lfntname{ptm} (Adobe Times) is +% listed in \comname{seriflist}. If you use the \comname{euro} command +% in the middle of some text typeset in Times, the command +% \comname{makeserifeuro} is executed, and you get a euro symbol from +% Adobe's Euroserif fount (by default, that is; if you've used the +% \optname{marvosym} option, you'll get Marvosym's seriffed euro +% symbol). I'll explain how to find out the internal fount family name +% of each fount in a bit. +% +% The configuration file (\filename{eurofont.cfg}) contains this by +% default: +%\begin{verbatim} +%% +%% List contents Corresponding command +%% +% \EFaddtolist{\userlist}{}% \makeusereuro +% \EFaddtolist{\texteurolist}{}% \maketexteuro +% \EFaddtolist{\chinaelist}{}% \makechinaeeuro +% \EFaddtolist{\cmlist}{cmr,cmss,cmtt}% \makecmeuro +% \EFaddtolist{\seriflist}{pbk,pnc,ppl,ptm,put}% \makeserifeuro +% \EFaddtolist{\sanslist}{pag,phv,psy,pzd}% \makesanseuro +% \EFaddtolist{\monolist}{pcr}% \makemonoeuro +% \EFaddtolist{\fakemediumlist}{pzc}% \makefakemediumeuro +% \EFaddtolist{\fakelightlist}{}% \makefakelighteuro +% \EFaddtolist{\fakeheavylist}{}% \makefakeheavyeuro +%\end{verbatim} +% The lists are created at the start of the \packname{eurofont} +% package with nothing in them: the code above tells you +% the full story about what's in each list. You can use the +% \comname{EFaddtolist} command anywhere after the \packname{eurofont} +% package has been loaded; you can use it in individual document +% preambles if you like, as well as in \filename{eurofont.cfg}. +% +% Each fount in \LaTeX\ belongs to a fount family. For example, Bookman +% Roman, Bookman Italic, Bookman Bold, and Bookman Bold Italic are all +% different founts, but they belong to the Bookman family. This family +% has an internal \LaTeX\ name: \lfntname{pbk}. One way of discovering +% the name of a fount family is to use \packname{eurofont}'s +% \comname{showfontfamily} command in your document: it displays the +% internal name of the current fount family on the screen and in the log +% file. +% +% Before going any further, remember this: each list is a list of fount +% family names. If you're using a fount family that's in a particular +% list, you get the euro symbol generated by the command corresponding +% to that list. Section~\vref{sec:fountfamilies} has more notes on +% \LaTeX\ fount families. +% +% If, for example, you don't like the euro symbol that you get with +% Computer Modern Roman, and you'd rather have the euro symbol from +% China2e with Computer Modern Roman, you can do this by changing two lines. +% Where the configuration file says this: +%\begin{verbatim} +% \EFaddtolist{\chinaelist}{} +% \EFaddtolist{\cmlist}{cmr,cmss,cmtt} +%\end{verbatim} +% you should change it to this: +%\begin{verbatim} +% \EFaddtolist{\chinaelist}{cmr} +% \EFaddtolist{\cmrlist}{cmss,cmtt} +%\end{verbatim} +% +% You might have a new \PS fount that you'd like to use Adobe's +% Euroserif euro symbol with. If that fount is, say, Monotype Joanna +% (fount family name \lfntname{mjo}), you can do this by adding +% \lfntname{mjo} to the \comname{seriflist}: +%\begin{verbatim} +% \EFaddtolist{\seriflist}{pbk,pnc,ppl,ptm,put,mjo} +%\end{verbatim} +% +% Or you might be using (say) Bitstream Bernhard Modern (family name +% \lfntname{bb7}) which you might think doesn't go well with any of the +% real euro symbols on offer. You might prefer a euro symbol faked with +% light rules in this case. You can get this by saying: +%\begin{verbatim} +% \EFaddtolist{\fakelightlist}{bb7} +%\end{verbatim} +% +% Then again, you might have a fount that has a real euro symbol in it: +% call it Adobe Xyzzy (\lfntname{pxy}) for the sake of argument. If this +% fount has been set up properly for use with \LaTeX, the euro symbol +% will be available using the \comname{texteuro} command. Rather than +% having to use a different command to select the euro symbol if you're +% using this fount family, you can say: +%\begin{verbatim} +% \EFaddtolist{\texteurolist}{pxy} +%\end{verbatim} +% +% There are mechanisms that allow you to bypass the standard behaviours. +% You can, for example, use \comname{newcommand} in the configuration +% file to define any of the \comname{make...euro} commands to anything +% you like. You could, for example, say: +%\begin{verbatim} +% \newcommand{\makesanseuro} +% {{\fontfamily{phv}\selectfont\makefakeeuro}} +%\end{verbatim} +% and all fount families in the \comname{sanseurolist} would have a euro +% symbol faked from a C in Helvetica with two rules drawn across it. +% +% Alternatively, you could put a fount in \comname{usereurolist}, and +% you'd get a euro symbol generated by the \comname{makeusereuro} +% command. This is meant to be defined by you: by default, it prints a +% euro symbol faked with medium weight rules and displays on the screen a +% message explaining that you should have defined the +% \comname{makeusereuro} command to do what you want it to do. For +% example, the following lines in the configuration file: +%\begin{verbatim} +% \newcommand{\makeusereuro} +% {EUR} +%\end{verbatim} +% will give you `EUR' -- the standard international currency +% abbreviation for the euro currency unit -- for the euro symbol in all +% fount families listed in the \comname{usereurolist}. +% +% \comname{usereurolist} is the first list looked at: if a fount +% family is listed in the \comname{usereurolist} as well as another +% list, what you get is the euro symbol produced by +% \comname{makeusereuro}. +% +% Immediately after \comname{usereurolist} is examined, the +% \comname{euro} command looks to see if a command of the form +% \comname{<fam>euro} exists (where |<fam>| is the name of the +% current fount family). If it does, this command is executed and the +% \comname{euro} command finishes. For example, assume you've designed a +% euro symbol to match URW's Arnold Boecklin fount (family name +% \lfntname{uab}). Let's say you've written a command +% \comname{arnoldboecklineuro} to print this symbol. You could say this: +%\begin{verbatim} +% \newcommand{\uabeuro}{\arnoldboecklineuro} +%\end{verbatim} +% and the \comname{euro} command would print your new euro symbol +% whenever you were using Arnold Boecklin. +% +% \subsection{About this package and document} +% +% The original aim of the \packname{eurofont} package was to provide a +% trivial interface to allow one to use the euro symbols from Adobe's +% Eurofonts with any fount. The package has grown a bit since the +% original idea, which might explain a few things. While their +% contributions to the final code might look small, this package +% couldn't have been started (let alone finished) without the help of +% Donald Arseneau and Stefan Ulrich (in alphabetical order, in case +% you're wondering). They provided the list handling code which is at +% the heart of the package. +% +% The biggest problem I had with this package was documenting it. I've +% no idea whether or not the documentation has `hit the right note' -- +% if you've any comments at all to make about the documentation (or the +% package for that matter), do please email me and let me know what you +% think. Comments, suggestions, and bug reports are all very much +% welcome. To say that writing the documentation was a headache is +% putting it mildly. If you read the documentation from start to +% finish, you'll notice that there's a certain amount of repetition. +% This is deliberate, and is meant to make it easier to use the +% documentation. +% +% One problem that this package will face is that more and more founts +% containing euro symbols will appear as time goes on. With a bit of +% luck, it's flexible enough for you to be able to configure it to deal +% with these new founts. If not, or if you've had a thought about what +% might be done with one or more of these new founts, do please let me +% know by email -- if it's practical, it would be nice to modify this +% package to make it more useful. +% +% \section{Installing the \packname{eurofont} package} +% \label{sec:installation} +% +% The \packname{eurofont} package proper comes in two files: +% \filename{eurofont.dtx} and \filename{eurofont.ins}. Running +% \LaTeX\ on \filename{eurofont.dtx} produces this document, so I'll +% assume you've done that. Running \LaTeX\ on \filename{eurofont.ins} +% generates: +% \begin{center} +% \begin{tabularx}{\textwidth}{@{}l>{\raggedright\arraybackslash}X@{}} +% \filename{dvidrive.txt}& Information on configuring \dvidriver{}s to +% use Adobe's Eurofonts and the Marvosym fount. \\ +% \filename{eurofont.cfg}& The configuration file: edit this file to change +% \packname{eurofont}'s behaviour. \\ +% \filename{eurofont.sty}& The package file proper. \\ +% \filename{uzmvs.fd} & \LaTeX\ code for selecting the Marvosym fount. \\ +% \filename{uzpeur.fd} & \LaTeX\ code for selecting Adobe's Euroserif fount.\\ +% \filename{uzpeuss.fd} & \LaTeX\ code for selecting Adobe's Eurosans fount.\\ +% \filename{uzpeutt.fd} & \LaTeX\ code for selecting Adobe's Euromono fount.\\ +% \end{tabularx} +% \end{center} +% \filename{eurofont.cfg} and \filename{eurofont.sty} should be put in +% a directory on your tex-inputs search path: they're both essential. +% If you're using either Adobe's Eurofonts or the Marvosym fount, read +% \filename{dvidrive.txt}. Once you've used it, you can discard it. +% +% The \filename{fd} files are only needed if you're using the founts in +% question. What they're for is this: \TeX\ can only typeset text in a +% particular fount if it has a \filename{tfm} file corresponding to that +% fount to look at. \LaTeX\ \filename{fd} files contain code to select a +% \filename{tfm} file when you ask for a particular fount using \LaTeX\ +% commands. For example, you might ask for `U encoded Adobe Euroserif in +% bold italic'. \LaTeX\ would then look at the file +% \filename{uzpeur.fd}, and discover that this request corresponded to +% \filename{zpeubi.tfm}. +% +% If you intend to use the Marvosym fount, put the file +% \filename{uzmvs.fd} into a directory on your tex-inputs search path. +% This file is named so that it won't clash with the original Marvosym +% fount definitions: you don't have to worry about the +% \packname{marvosym} package getting confused because the +% \packname{eurofont} package uses the \packname{marvosym} fount +% differently. +% +% If you intend to use Adobe's Eurofonts, put the three +% \filename{uzpeu...fd} files into a directory on your tex-inputs search +% path. If you already have files with these names from a different +% source, I suggest that you replace the older files with the +% \filename{fd} files that come with \packname{eurofont}. If this causes +% any problems, please let me know by emailing +% \texttt{rebecca@astrid.u-net.com}. +% +% \subsection{Using Marvosym and Adobe's Eurofonts} +% +% How to get these founts is covered in section~\vref{sec:getfounts}. To +% use them with the \packname{eurofont} package, you need to install the +% appropriate \filename{fd} files and configure your \dvidriver, as +% explained above. Assuming you have installed the actual fount files on +% your computer, you then need \filename{tfm} files for these founts: +% these are the files that tells \TeX\ exactly what size each letter is, +% and allows it to produce output with a given fount. +% +% The \packname{eurofont} package comes with suitable \filename{tfm} +% files for Adobe's Eurofonts, and two extra \filename{tfm} files for +% the Marvosym fount. Which of these two \filename{tfm} files you should +% use depends on which version of the Marvosym fount you have. +% +% \subsubsection{Using Adobe's Eurofonts} +% +% If you intend to use Adobe's Eurofonts, you should put all 12 files in +% the \filename{adobeuro/tfmfiles/} directory into a tex-fonts +% directory. These files should exist happily alongside any other +% \filename{tfm} files generated for Adobe's Eurofonts: being generated +% by \packname{afm2tfm}, they should be identical to any others you +% might have. I suggest that you remove any other \filename{tfm} files +% you might have for these founts unless you know that you need to keep +% them installed. If this advice causes you any problems, please email +% me and let me know. +% +% \subsubsection{Using the Marvosym fount} +% +% The Marvosym fount comes with a \filename{tfm} file of its own, and +% the \packname{eurofont} package includes two extra \filename{tfm} +% files: you should use one of these to allow you access to a faked +% italic/slanted version of Marvosym, assuming that your \dvidriver can +% produce a faked italic by slanting an upright fount. Both dvips and +% \OzTeX\ can do this. +% +% If you are using a version of the original Marvosym fount (the +% original \filename{pfa} or \filename{pfb} files from CTAN, or the +% Truetype version from Martin Vogel's Web site), then you should take +% the file \filename{fmvri8x.tfm} from the directory +% \filename{marvosym/tfmfiles/original}, and put it in the same +% tex-fonts directory as the file \filename{fmvr8x.tfm} which came with +% the \packname{marvosym} package. +% +% If you are using one of the ATM-compatible versions of the Marvosym +% fount from Y\&Y (either from Y\&Y's Web site or any of the Mac +% versions from CTAN), things are slightly more complicated. In this +% case, you might be using the Y\&Y supplied \filename{tfm} file +% \filename{marvosym.tfm} to use this fount. If so, leave +% \filename{marvosym.tfm} alone: take the files \filename{fmvr8x.tfm} +% and \filename{fmvri8x.tfm} from the directory +% \filename{marvosym/tfmfiles/yandy}, and put them in the tex-fonts +% directory which contains \filename{marvosym.tfm}. If you have changed +% the name of the Y\&Y supplied \filename{tfm} file to +% \filename{fmvr8x.tfm}, just add \filename{fmvri8x.tfm}. +% +% Note that you should not use the file \filename{fmvr8x.tfm} supplied +% for the original Marvosym fount with any of the Y\&Y versions of +% Marvosym, or vice versa: the founts are very, very similar, but differ +% in tiny details which affect the metrics file very slightly. You +% should therefore use the \filename{tfm} file supplied with the +% particular fount you're using. If you're not sure of the source of the +% Marvosym \filename{tfm} file already installed on your computer, you +% might prefer to replace it with the appropriate version of +% \filename{fmvr8x.tfm} supplied with the \packname{eurofont} package. +% +% The original \PS version of the Marvosym fount has the \PS name +% \texttt{Martin\_Vogels\_Symbole}, while the Y\&Y re-worked version has +% the \PS name \texttt{Marvosym}; this leads to different \dvidriver +% configuration file entries which should help you avoid any confusion +% over which version you've got. +% +% \section{All the options}\label{sec:all_options} +% +% Here are all of \packname{eurofont}'s options, presented in no +% particular order. +% \begin{description} +% \item[\optname{left}] This option makes the \comname{euros} command +% print the euro symbol to the left of its argument. When you use this +% option, it's also passed to the \packname{eurosym} package, so that +% \packname{eurosym}'s \comname{EUR} command will also print the euro +% symbol to the left of its argument. This is the default behaviour. +% +% \item[\optname{right}] This option makes the \comname{euros} command +% print the euro symbol to the right of its argument. When you use this +% option, it's also passed to the \packname{eurosym} package, so that +% \packname{eurosym}'s \comname{EUR} command will also print the euro +% symbol to the right of its argument. +% +% \item[\optname{marvosym}] This option tells \packname{eurofont} to use +% the Marvosym fount's euro symbols for the standard set of \PS +% Type 1 founts. The \packname{eurofont} package automatically fakes a +% bold version when needed, and you'll also get a decent faked +% italic/slanted version if your \dvidriver can slant a fount. This +% option counteracts the \optname{adobeeurofonts} option, and can be +% over-ridden by the \optname{eurosym} option. +% +% \item[\optname{adobeeurofonts}] This option tells \packname{eurofont} +% to use Adobe's Eurofonts to supply the euro symbols for the standard +% set of \PS Type 1 founts; this setting is used by default. This +% option counteracts the \optname{marvosym} option, and can be +% over-ridden by the \optname{eurosym} option. +% +% \item[\optname{eurosym}] This option tells \packname{eurofont} to use +% the \packname{eurosym} package's euro symbol for the Computer Modern +% families, and the standard set of \PS Type 1 founts. If the +% \packname{eurosym} package isn't available, \packname{eurofont} +% complains and all euro symbols are created using the normal +% \packname{eurofont} code for printing faked euro symbols. +% +% \item[\optname{noeurosym}] This option counteracts the +% \optname{eurosym} option; if (for example) you have a configuration +% file that says \comname{ExecuteOptions\ttlb eurosym\ttrb}, you can tell +% \packname{eurofont} \emph{not} to use \packname{eurosym}'s euro +% symbols, and use the normal founts -- typically Adobe's Eurofonts and +% the Text Companion founts. This is the default behaviour. +% \end{description} +% +% These next four options only affect what you get when you've given the +% \packname{eurofont} package the \optname{eurosym} option. See the +% \packname{eurosym} package's documentation for more details. +% \begin{description} +% \item[\optname{official}]This option is passed to the +% \packname{eurosym} package, and tells it to give you the official euro +% symbol. +% +% \item[\optname{gen}]This option is passed to the \packname{eurosym} +% package, and tells it to give you a faked euro symbol. +% +% \item[\optname{gennarrow}] This option is passed to the +% \packname{eurosym} package, and tells it to give you a faked euro +% symbol with narrow cross-strokes. +% +% \item[\optname{genwide}]This option is passed to the +% \packname{eurosym} package, and tells it to give you a faked euro +% symbol with wide cross-strokes. +% \end{description} +% +% The following three options affect how \packname{eurofont} produces +% faked euro symbols. +% \begin{description} +% \item[\optname{noslantfakeeuro}] \packname{Eurofont}'s faked euro +% symbols are produced with two rules of the same length. +% +% \item[\optname{normalslantfakeeuro}] \packname{Eurofont}'s faked euro +% symbols are produced with two rules of slightly different length: the +% lower rule is the shorter of the two. This is the default +% behaviour; it approximates the difference in length of the two rules +% in the official euro symbol. +% +% \item[\optname{bigslantfakeeuro}] \packname{Eurofont}'s faked euro +% symbols are produced with two rules of greatly different length: the +% lower rule is by far the shorter of the two. This was inspired by +% the China2e fount's euro symbol. +% \end{description} +% +% And finally, some options which don't seem to belong with anything +% else. +% \begin{description} +% \item[\optname{notextcomp}] This option tells the \packname{eurofont} +% package not to load the \packname{textcomp} package; it counteracts +% the \optname{textcomp} option. You might want to use this option if +% you find that some characters or accents are unexpectedly wrong when +% using the \packname{eurofont} package -- this sort of thing can be +% caused by loading the \packname{textcomp} package. See also the +% \optname{fixtieaccent} option. +% +% \item[\optname{textcomp}] This option tells the \packname{eurofont} +% package to load the \packname{textcomp} package (part of the standard +% \LaTeX\ distribution) if it is available. This package defines the +% \comname{texteuro} command (amongst other things). Trying to load +% \packname{textcomp} is the default behaviour. One possibly unwanted +% effect of loading \packname{textcomp} is that tie accents are +% typically messed up if you're using \PS Type 1 founts; the +% \optname{fixtieaccent} option can help out with this. +% +% \item[\optname{fixtieaccent}] This option counteracts the +% \optname{nofixtieaccent} option: it makes \packname{eurofont} define +% the tie accent to work the way it does as standard when the +% \packname{textcomp} package hasn't been loaded. If you find tie +% accents no longer work when using \packname{eurofont}, you can use +% either this option or the \optname{notextcomp} option to fix things. +% +% \item[\optname{nofixtieaccent}] This option counteracts the +% \optname{fixtieaccent} option: it stops \packname{eurofont} defining +% the tie accent to work the way it does as standard when the +% \packname{textcomp} package hasn't been loaded. This is the default +% behaviour. +% +% \item[\optname{debugreport}] This option tells the +% \packname{eurofont} package to print all sorts of debugging +% information out when you use its commands. I added this option for my +% own benefit, but you might find it useful if you're configuring +% \packname{eurofont} in strange fashions and not getting what you want. +% +% \item[\optname{nodebugreport}]This option tells the +% \packname{eurofont} package not to print out any debugging +% information. This is the default behaviour. +% \end{description} +% +% For those who might be interested: the following lines are executed +% just before loading the configuration file: +%{\small +%\begin{verbatim} +% \ExecuteOptions{adobeeurofonts}% Use Adobe's Eurofonts +% \ExecuteOptions{noeurosym}% Don't use eurosym +% \ExecuteOptions{left}% Euro symbol on left +% \ExecuteOptions{normalslantfakeeuro}% Fake euros with slight slant +% \ExecuteOptions{nodebugreport}% No debugging reports +% \ExecuteOptions{textcomp}% Load the textcomp package +% \ExecuteOptions{nofixtieaccent}% Don't modify tie accents +%\end{verbatim} +%} +% You can therefore over-ride any of these defaults by placing a +% subsequent \comname{ExecuteOptions} statement in the configuration +% file. For example, to make the \comname{euros} command place the +% euro symbol on the right of the sum by default, add: +%\begin{verbatim} +% \ExecuteOptions{right} +%\end{verbatim} +% to the configuration file, \filename{eurofont.cfg}. +% +% \section{Configuring the \packname{eurofont} package}\label{sec:config} +% +% There are three main mechanisms for changing the behaviour of +% \packname{eurofont}'s \comname{euro} command: passing an option to +% the \packname{eurofont} package, adding a fount family name to one +% of \packname{eurofont}'s lists, and re-defining the \comname{make...} +% commands used by the \comname{euro} command to print euro symbols. +% Options have been covered in section~\vref{sec:all_options}; the +% other two are covered here. +% +% The \packname{eurofont} package comes with a configuration file -- +% \filename{eurofont.cfg} -- that's meant to be changed to match your +% preferences. If you want to add a fount family to a list, or re-define +% some commands, you can make the changes in the configuration file. You +% can also put code to do these jobs in a document file if you like. +% Please don't change \filename{eurofont.sty} itself, unless you change +% its name to something else. +% +% The way the \comname{euro} command works is this: when you use the +% \comname{euro} command, it compares the current fount family name with +% the contents of a series of lists. If the current fount family name is +% in a given list, the command corresponding to that list is executed. +% This prints a particular euro symbol, and the \comname{euro} command +% finishes. If you don't know what a fount family name is in \LaTeX, +% have a look at section~\vref{sec:fountfamilies}. +% +% The lists are created at the start of the \packname{eurofont} package, +% and have fount family names entered into them by the +% \comname{EFaddtolist} command. There's more than just the lists I've +% mentioned in section~\ref{sec:config_intro}, though. The configuration +% file contains the following lines by default: +%\begin{verbatim} +%% +%% List contents Corresponding command +%% +% \EFaddtolist{\userlist}{}% \makeusereuro +% \EFaddtolist{\texteurolist}{}% \maketexteuro +% \EFaddtolist{\chinaelist}{}% \makechinaeeuro +% \EFaddtolist{\cmlist}{cmr,cmss,cmtt}% \makecmeuro +% \EFaddtolist{\seriflist}{pbk,pnc,ppl,ptm,put}% \makeserifeuro +% \EFaddtolist{\sanslist}{pag,phv,psy,pzd}% \makesanseuro +% \EFaddtolist{\monolist}{pcr}% \makemonoeuro +% \EFaddtolist{\fakemediumlist}{pzc}% \makefakemediumeuro +% \EFaddtolist{\fakelightlist}{}% \makefakelighteuro +% \EFaddtolist{\fakeheavylist}{}% \makefakeheavyeuro +% +% \EFaddtolist{\faketexteurolist}{} +% +%% Put all the standard LaTeX weights (and likely extras) +%% into one of the following lists: +% +% \EFaddtolist{\EFlightserieslist}{ul,el,l,ulc,elc,lc,ulx,elx,lx} +% \EFaddtolist{\EFmediumserieslist} +% {m,mb,db,sb,mc,mbc,dbc,sbc,mx,mbx,dbx,sbx} +% \EFaddtolist{\EFboldserieslist}{b,bx,bc} +% \EFaddtolist{\EFultraboldserieslist}{eb,ub,ebc,ubc,ebx,ubx} +%\end{verbatim} +% The point of the configuration file is that you should change it any +% way you like. But what do all these lines mean? In brief, what goes on +% is this: when you use the \comname{euro} command (and remember that +% the \comname{euro} command is used by the \comname{euros} command so +% this discussion applies to both commands), the current \LaTeX\ fount +% family name is compared to the contents of each of the lists above, in +% the order given, with an extra test I'll mention in a bit. If, for +% example, you're using New Century Schoolbook (fount family name +% \lfntname{pnc}), what happens with the default settings is this: +% \begin{enumerate} +% \item \comname{userlist} is examined. It's empty, so no match is +% found, and the command continues. +% \item This is the extra test mentioned above: a test is made to see if +% the command \comname{pnceuro} exists (in general, the command +% \comname{<fam>euro} is looked for, where |<fam>| is the \LaTeX\ fount +% family name of the current fount). If this command exists, it's +% executed and the \comname{euro} command terminates. In this case, the +% command doesn't exist, so the command continues. +% \item \comname{texteurolist} is examined. It's empty, so the +% \comname{euro} command continues. +% \item \comname{chinaelist} is examined. It's empty, so the +% \comname{euro} command continues. +% \item \comname{cmlist} is examined. It's not empty: the current fount +% family is \lfntname{pnc}, but the list contains \lfntname{cmr}, +% \lfntname{cmss}, and \lfntname{cmtt}. No match is found, so the +% \comname{euro} command continues. +% \item \comname{seriflist} is examined. It's not empty: the current +% fount family is \lfntname{pnc}, and the list contains \lfntname{pbk}, +% \lfntname{pnc}, \lfntname{ppl}, \lfntname{ptm}, and \lfntname{put}. A +% match is found, so \comname{makeserifeuro} -- the command +% corresponding to this list -- is executed, which prints a euro symbol +% from one of Adobe's Euroserif founts, and the \comname{euro} command +% finishes. +% \end{enumerate} +% You might be wondering what the \comname{faketexteuro} list is for. If +% a fount family is listed in \comname{faketexteuro}, the +% \comname{maketexteuro} command will always execute the +% \comname{makefakeeuro} command to generate a faked euro symbol for +% that fount family. It prevents the \comname{euro} command from +% printing a euro symbol using the \comname{texteuro} command. I'm not +% sure that this is particularly useful, but it seemed like a good idea +% at the time. +% +% Another unanswered question is: what happens if the \comname{euro} +% command has made all its tests and not printed a euro symbol? In this +% case, the \comname{makedefaulteuro} command is executed. By default, +% this command executes the \comname{makefakeeuro} command which prints +% a euro symbol faked with medium weight rules. You can of course +% re-define the \comname{makedefaulteuro} and \comname{makefakeeuro} +% commands any way you like. +% +% The \comname{EF...serieslist} commands are used by the commands that +% print faked euro symbols; these commands are slightly more involved +% than you might think. I'll deal with this in detail in a bit. +% +% \subsection{The \comname{make...euro} commands}\label{sec:config-makeeuro} +% +% It might be that you want to do something that can't be done +% conveniently by just changing which fount families are listed in the +% lists above. If so, you'll probably find it most convenient to play +% around with the definitions of the various \comname{make...euro} +% commands; please do cut-and-paste the original definitions into the +% configuration file and modify them there if you think this will help. +% I used the \comname{providecommand} command to define all the +% \comname{make...euro} commands so that the definitions in +% \filename{eurofont.sty} won't have any effect if the commands have +% been defined earlier. There's more detail on what these commands do in +% section~\vref{sec:how_it_works} and in the commented source code. +% +% The \comname{euro} command works like this: the current fount family +% name is compared against the contents of a series of lists. If the +% current fount family is present in a particular list, the command +% corresponding to that list is executed. The first match ends the +% execution of the \comname{euro} command: you'll not get two euro +% symbols if the current fount family is in two lists. You can see what +% I mean in section~\vref{sec:how_euro_works}. +% +% One anomaly is the second test made in the \comname{euro} command, +% directly after looking in \comname{userlist}: this second test doesn't +% check for a match in a list, but instead checks for the existence of a +% command \comname{<fam>euro}, where |<fam>| is the current fount family +% name. If this command exists, it's executed and the \comname{euro} +% command ends. For example, if you define: +%\begin{verbatim} +% \newcommand{\pcreuro}{EUR} +%\end{verbatim} +% every time you use the \comname{euro} or \comname{euros} command while +% using Courier -- which has the fount family name \lfntname{pcr} -- +% you'll get `EUR' printed (the standard international abbreviation for +% the euro) rather than a euro symbol of any sort. +% +% This table is a partial summary of what goes on: +% \begin{center}\small +% \begin{tabularx}{\textwidth}{@{}ll>{\raggedright\arraybackslash}X@{}} +% \textbf{List name} & \textbf{Command executed} +% & \textbf{What you get by default} \\[1ex] +% \comname{userlist} & \comname{makeusereuro} +% & Fakes a euro and prints a warning. \\ +% & \comname{<fam>euro} +% & If it exists, \comname{<fam>euro} is +% executed. \\ +% \comname{texteurolist } & \comname{maketexteuro} +% & Prints a euro symbol from the current +% fount or a faked euro symbol. \\ +% \comname{chinaelist} & \comname{makechinaeeuro} +% & Prints the euro from the China2e fount. \\ +% \comname{cmlist} & \comname{makecmeuro} +% & Prints a euro symbol from the current +% fount or a faked euro symbol. \\ +% \comname{seriflist} & \comname{makeserifeuro} +% & Prints a euro from Adobe Euroserif. \\ +% \comname{sanslist} & \comname{makesanseuro} +% & Prints a euro from Adobe Eurosans. \\ +% \comname{monolist} & \comname{makemonoeuro} +% & Prints a euro from Adobe Euromono. \\ +% \comname{fakelightlist} & \comname{makefakelighteuro} +% & Fakes a euro with light weight rules. \\ +% \comname{fakemediumlist} & \comname{makefakemediumeuro} +% & Fakes a euro with medium weight rules. \\ +% \comname{fakeheavylist} & \comname{makefakeheavyeuro} +% & Fakes a euro with heavy weight rules. \\ +% \end{tabularx} +% \end{center} +% What happens when you use the \comname{euro} command is that each list +% is considered in turn, starting with the \comname{userlist}. If the +% fount family being used at that point in the document is in that list, +% a euro symbol is generated by the specified command and that's the end +% of the command. If the fount family being used isn't in the first +% list, the next list is looked at and so on. If this explanation is +% less than crystal clear, you might find it useful to read +% section~\vref{sec:how_euro_works}. +% +% If each list has been checked and the current fount family hasn't been +% found in any of them, the \comname{makedefaulteuro} command is +% executed. This produces a faked euro symbol: the \packname{eurofont} package +% has commands to make these by drawing two rules over a letter C; they +% can be surprisingly acceptable particularly if made with a sanserif +% fount. +% +% A brief description of what each of the \comname{make...euro} command +% does is: +% +% \begin{description} +% \item[\comname{makefakeeuro}] This command doesn't correspond to a +% list, but is used by the \comname{makedefaulteuro} command and other +% parts of the \packname{eurofont} package. What it does is this: it +% first checks to see if the command \comname{<fam>fakeeuro} exists, +% where |<fam>| is the current \LaTeX\ fount family name. If this +% command exists, it's executed; if not, the current fount family name +% is checked against (in this order) the \comname{fakelightlist}, +% \comname{fakemediumlist}, and \comname{fakeheavylist}. If there's a +% match, it executes \comname{makefakelighteuro}, +% \comname{makefakemediumeuro}, or \comname{makefakeheavyeuro} +% (depending on which list had the match). If it finds no match, it +% executes \comname{makefakemediumeuro}. +% +% The \comname{makefake...euro} commands produce euro symbols faked by +% placing a pair of rules over a letter `C'. +% +% For example, if you were using Zapf Chancery, which has an internal +% \LaTeX\ fount family name of \lfntname{pzc}, and +% \comname{makefakeeuro} were executed, the first test would be to see +% if \comname{pzcfakeeuro} existed. Since \packname{eurofont} does +% define this command, it exists, and is executed. +% +% \item[\comname{makeusereuro}] Meant to be defined by you; by default, +% this command generates an on-screen warning and executes the +% \comname{fakemediumrule\-euro} command which prints a euro symbol +% faked with medium rules. +% +% \item[\comname{maketexteuro}]\label{item:maketexteuro:config} +% This command executes the \comname{texteuro} command if these three +% conditions are met: the current \LaTeX\ fount family is not listed in +% the \comname{faketexteurolist}, the \comname{texteuro} command exists +% (it's defined by the \packname{textcomp} package which +% \packname{eurofont} tries to load by default), and the fount +% definition file |ts1<fam>.fd| exists (where |<fam>| is the current +% \LaTeX\ fount family name -- this \filename{fd} file will normally +% exist if the fount does have a euro symbol available). If these +% conditions are not met, it executes \comname{makefakeeuro} instead of +% \comname{texteuro}. +% +% The \comname{texteuro} command, defined by \packname{textcomp}, prints +% a euro symbol from the current fount, assuming everything's working +% right; the \comname{makefakeeuro} command prints a euro symbol faked +% by placing two rules over a letter `C'. +% +% \item[\comname{makechinaeeuro}] This command prints the euro symbol +% from the China2e fount. If the current fount series is listed as light +% or medium by being in either \comname{EFlightserieslist} or +% \comname{EFmediumserieslist} you'll get the straight China2e euro +% symbol; if the current fount series is listed as bold or ultra bold by +% being in either \comname{EFbold\-series\-list} or +% \comname{EFultraboldserieslist} you'll get a faked bold China2e euro +% symbol. If the current fount series isn't listed in any of these +% lists, you'll get a straight China2e euro symbol. +% +% The \comname{makechinaeeuro} command checks for the \packname{china2e} +% package: if it's missing, you'll get a warning message and a faked +% euro symbol. +% +% \item[\comname{makecmeuro}] This command normally has the same effect +% as \comname{maketexteuro}: it executes the \comname{texteuro} command +% if the three conditions are met (see above, in the +% \comname{maketexteuro} entry on +% page~\pageref{item:maketexteuro:config}); otherwise, it executes +% \comname{makefakeeuro} -- this command fakes a euro symbol from a C +% over-printed with two rules. This behaviour can be changed using an +% option: if you've passed the \packname{eurosym} option to +% \packname{eurofont}, the \comname{makecmeuro} command prints Eurosym's +% euro symbol instead. +% +% \item[\comname{makeserifeuro}] +% This command normally prints a euro symbol from one of Adobe's +% Euroserif founts (medium, italic, bold, or bold italic). If you've +% passed the \optname{marvosym} option to \packname{eurofont}, you'll +% get a seriffed euro symbol from the Marvosym fount instead. Since +% Marvosym doesn't have real bold euro symbols, you'll get a faked bold +% euro symbol if the current fount series is listed in +% \comname{EFboldserieslist} or \comname{EFultraboldserieslist} (as +% with the \comname{makechinaeeuro} command). +% +% If you've passed the \optname{eurosym} option to \packname{eurofont}, +% you'll get a euro symbol generated by \packname{eurosym}'s +% \comname{euro} command: this option over-rides both the +% \optname{marvosym} option and the default \optname{adobeeurofonts} +% option. +% +% The commands \comname{makeserifeuro}, \comname{makesanseuro}, and +% \comname{makemonoeuro} are very similar. +% +% \item[\comname{makesanseuro}] +% This command normally prints a euro symbol from one of Adobe's +% Eurosans founts (medium, italic, bold, or bold italic). If you've +% passed the \optname{marvosym} option to \packname{eurofont}, you'll +% get a sanserif euro symbol from the Marvosym fount instead. Since +% Marvosym doesn't have real bold euro symbols, you'll get a faked bold +% euro symbol if the current fount series is listed in +% \comname{EFboldserieslist} or \comname{EFultraboldserieslist} (as +% with the \comname{makechinaeeuro} command). +% +% If you've passed the \optname{eurosym} option to \packname{eurofont}, +% you'll get a euro symbol generated by \packname{eurosym}'s \comname{euro} +% command: this option over-rides both the \optname{marvosym} option and +% the default \optname{adobeeurofonts} option. +% +% The commands \comname{makeserifeuro}, \comname{makesanseuro}, and +% \comname{makemonoeuro} are very similar. +% +% \item[\comname{makemonoeuro}] +% This command normally prints a euro symbol from one of Adobe's +% Euromono founts (medium, italic, bold, or bold italic). If you've +% passed the \optname{marvosym} option to \packname{eurofont}, you'll +% get a monospaced euro symbol from the Marvosym fount instead. Since +% Marvosym doesn't have real bold euro symbols, you'll get a faked bold +% euro symbol if the current fount series is listed in +% \comname{EFboldserieslist} or \comname{EFultraboldserieslist} (as +% with the \comname{makechinaeeuro} command). +% +% If you've passed the \optname{eurosym} option to \packname{eurofont}, +% you'll get a euro symbol generated by \packname{eurosym}'s \comname{euro} +% command: this option over-rides both the \optname{marvosym} option and +% the default \optname{adobeeurofonts} option. +% +% The commands \comname{makeserifeuro}, \comname{makesanseuro}, and +% \comname{makemonoeuro} are very similar. +% +% \item[\comname{makefakelighteuro}] +% First checks to see if the command \comname{<fam>fakeeuro} exists +% (where |<fam>| is the name of the current fount family); if so, it +% executes \comname{<fam>fakeeuro} (as with \comname{makefakeeuro}). If +% not, it executes \comname{fakelighteuro} -- this gives you a euro +% symbol faked with light rules. +% +% The particular weight (or thickness) of these rules varies depending +% on which \comname{EF...serieslist} the current fount series is in: the +% rules are lightest if the current fount series is listed in +% \comname{EFlightserieslist}, progressively heavier if listed in +% \comname{EFmediumseries} and \comname{EFboldseries}, and heaviest if +% listed in \comname{EFultraboldseries}. If the current fount series +% isn't listed in any of these lists, you get the rules you'd get if the +% current series were listed in \comname{EFmediumseries}. +% +% This command is very similar to the commands +% \comname{makefakemediumeuro} and \comname{makefakeheavyeuro}. +% +% \item[\comname{makefakemediumeuro}] +% First checks to see if the command \comname{<fam>fakeeuro} exists +% (where |<fam>| is the name of the current fount family); if so, it +% executes \comname{<fam>fakeeuro} (as with \comname{makefakeeuro}). If +% not, it executes \comname{fakemediumeuro} -- this gives you a euro +% symbol faked with medium weight rules. +% +% The particular weight (or thickness) of these rules varies depending +% on which \comname{EF...serieslist} the current fount series is in: the +% rules are lightest if the current fount series is listed in +% \comname{EFlightserieslist}, progressively heavier if listed in +% \comname{EFmediumseries} and \comname{EFboldseries}, and heaviest if +% listed in \comname{EFultraboldseries}. If the current fount series +% isn't listed in any of these lists, you get the rules you'd get if the +% current series were listed in \comname{EFmediumseries}. +% +% This command is very similar to the commands +% \comname{makefakemediumeuro} and \comname{makefakeheavyeuro}. +% +% \item[\comname{makefakeheavyeuro}] +% First checks to see if the command \comname{<fam>fakeeuro} exists +% (where |<fam>| is the name of the current fount family); if so, it +% executes \comname{<fam>fakeeuro} (as with \comname{makefakeeuro}). If +% not, it executes \comname{fakeheavyeuro} -- this gives you a euro +% symbol faked with heavy rules. +% +% The particular weight (or thickness) of these rules varies depending +% on which \comname{EF...serieslist} the current fount series is in: the +% rules are lightest if the current fount series is listed in +% \comname{EFlightserieslist}, progressively heavier if listed in +% \comname{EFmediumseries} and \comname{EFboldseries}, and heaviest if +% listed in \comname{EFultraboldseries}. If the current fount series +% isn't listed in any of these lists, you get the rules you'd get if the +% current series were listed in \comname{EFmediumseries}. +% +% This command is very similar to the commands +% \comname{makefakemediumeuro} and \comname{makefakeheavyeuro}. +% +% \item[\comname{makedefaulteuro}] +% This command normally prints a faked euro symbol generated with the +% \comname{makefakeeuro} command. +% +% If you've passed the \optname{eurosym} option to \packname{eurofont}, +% the \comname{makedefaulteuro} command prints a euro symbol generated +% by \packname{eurosym}'s \comname{euro} command. Otherwise, the +% \comname{makedefaulteuro} command prints a faked euro symbol generated +% with the \comname{makefakeeuro} command. +% +% For the curious: \packname{eurofont} defines the \comname{ESeuro} +% command to be whatever \packname{eurosym} defined the \comname{euro} +% command to be. \packname{Eurofont} can then define the \comname{euro} +% command to be something else, but \packname{eurosym}'s \comname{euro} +% code is still accessible by using the \comname{ESeuro} command. +% +% \end{description} +% +% \section{Founts containing euro symbols}\label{sec:getfounts} +% +% This section was written in October 1998: I know that there are founts +% other than the ones I've noted below that contain euro symbols, but +% these are the only ones I know of that are convenient to use with +% \LaTeX. As far as I know, the founts currently included with `euro +% compatible' versions of MS-Windows and the MacOS have a euro symbol +% that is close to the official euro symbol. This doesn't match the +% fount it's included with in most cases. It seems to me that there is +% nothing to be gained by using these euro symbols with \LaTeX. I expect +% this situation will change in time, and matching euro symbols are +% designed for more founts. +% +% Aside from the Text Companion founts which accompany the EC founts +% (the relatively new T1 encoded versions of the standard Computer +% Modern founts used by \LaTeX -- I think they are included with all +% recent \LaTeX\ distributions), Metafont euro symbols are included in +% two other founts available from CTAN: China2e, which has a single very +% lovely euro symbol; and Eurosym, which has the official euro symbol. +% You can find out how to get all of these in +% section~\vref{sec:getMFfounts}. +% +% The euro symbols in the Text Companion founts were designed before +% the final official euro symbol was decided on, and might be considered +% a bit eccentric by some. +% +% I know of two sets of \PS Type 1 founts containing euro +% symbols: Adobe's Eurofonts, a set of 12 founts providing seriffed, +% sanserif, and monospaced euro symbols in medium upright, italic, bold, +% and bold italic version; and the Marvosym fount, which has three euro +% symbols, very similar to the medium upright seriffed, sanserif, and +% monospaced euro symbols from Adobe. +% +% Your \TeX\ system's documentation should tell you if you can use \PS +% Type 1 founts. Typically, you need either: a \PS printer or \PS +% interpreter on your computer such as Ghostscript; or Adobe Type +% Manager (ATM) installed on your computer and a \dvidriver (such as +% \OzTeX's) which can take advantage of this. +% +% \subsection{Getting Marvosym or Adobe's Eurofonts}\label{sec:getPSfounts} +% +% Adobe's Eurofonts are available (October 1998) in a Mac version +% from here: +%\begin{verbatim} +% ftp://ftp.adobe.com/pub/adobe/type/mac/all/eurofont.sea.hqx +% ftp://ftp-pac.adobe.com/pub/adobe/type/mac/all/eurofont.sea.hqx +%\end{verbatim} +% Textures users on Macs should also download these files from CTAN: +%\begin{verbatim} +% systems/mac/textures/contrib/IdealFonts/EuroDefs.sit.hqx +% systems/mac/textures/contrib/IdealFonts/README.IF +%\end{verbatim} +% You should still download Adobe's Eurofonts separately. +% +% Adobe's Eurofonts are available (October 1998) in a version suitable +% for MS-Windows PCs and Unix from here: +%\begin{verbatim} +% ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe +% ftp://ftp-pac.adobe.com/pub/adobe/type/win/all/eurofont.exe +%\end{verbatim} +% These files are self-extracting archives on MS-Windows computers which +% can be decompressed on Unix computers with the \verb|unzip| command. +% +% The Marvosym fount is available from CTAN in \filename{pfb} and +% \filename{pfa} versions, and I gather these versions won't work with +% ATM. There are also Mac versions based on the Y\&Y re-working of +% Marvosym mentioned below -- a Truetype version and a Mac PS Type 1 +% version that will work with ATM. +% +% The Marvosym fount and package are (October 1998) in this location at +% CTAN: +% site (October 1998): +%\begin{verbatim} +% /fonts/psfonts/marvosym/ +%\end{verbatim} +% +% A version which is apparently ATM compatible (implying the original +% version from CTAN isn't) is available from here: +%\begin{verbatim} +% http://www.YandY.com/download/marvosym.zip +%\end{verbatim} +% Note that the metrics for this version of Marvosym are slightly +% different to the original; to use this version of Marvosym with +% \packname{eurofont}, you should re-name the file +% \filename{marvosym.tfm} to \filename{fmvr8x.tfm} and put it on your +% tex-fonts path. +% +% Martin Vogel's Web page contains a TrueType version of Marvosym, in +% a format suitable for MS-Windows computers: +%\begin{verbatim} +% http://www.fh-bochum.de/fb1/vogel/marvosym.html +%\end{verbatim} +% +% \subsection{\Dvidriver configuration for +% Adobe's Eurofonts and the Marvosym fount} \label{sec:dvidriver_config} +% +% This section contains information on how to configure dvips and +% \OzTeX\ to use Adobe's Eurofonts and the Marvosym fount. I believe +% that pdf\TeX\ can use dvips entries. +% +% You might find it useful to refer to the file \filename{dvidrive.txt} +% that is created by running \LaTeX\ on \filename{eurofont.ins}: +% \filename{dvidrive.txt} contains a plain text version of this +% \dvidriver configuration information, so you can cut and paste the +% lines you need to the appropriate file on your computer. +% +% If you have any problems with this information, or if you have +% information on how to configure other \dvidriver{}s, please let me +% know by email. +% +% \subsubsection{\Dvidriver configuration lines for Adobe's Eurofonts} +% +% This section contains information for configuring \dvidriver{}s to use +% these \PS Type 1 founts; what you need to do is add the given +% lines to a file so that your \dvidriver knows which \PS Type 1 fount +% file (and so on) corresponds to a particular \filename{tfm} file in a +% \filename{dvi} file. In the case of dvips, the file you add lines to +% is typically called \filename{psfonts.map}. In the case of \OzTeX, you +% will normally add lines to the \filename{Default} configuration file +% -- if you also use dvips, you'll add lines to \filename{psfonts.map} +% as well. +% +% Note that versions of dvips before v5.83 have trouble doing partial fount +% downloading with Adobe's Eurofonts. Because of this, I have listed the +% dvips psfont.map entries with `|<<|' and with `|<|': the `|<<|' +% entries prevent dvips attempting to do partial fount downloading with +% that particular fount. +% +% The `|<<|' syntax does not work with all versions of dvips; it does +% work with dvips~v5.78, but doesn't work with v5.70. If you're using a +% pre `|<<|' dvips, you should use the entries with `|<|' and don't use +% partial fount downloading with any document containing Adobe's +% Eurofonts; passing the |-j0| switch to dvips will prevent it from +% doing partial fount downloading if this is normally turned on. +% +% I've asked the author of dvips when the `|<<|' syntax was first introduced, +% and he can't remember. +% +% I am told that pdf\TeX\ can do partial fount downloading using Adobe's +% Eurofonts. +% +% \paragraph{Eurofont configuration lines for MS-Windows and Unix} +% +% The following lines were supplied by Stefan Ulrich +% |<ulrich@cis.uni-muenchen.de>|, who tells me that you need to re-name +% the \filename{PFB} files \filename{pfb}. +% +% If these lines work with computers other than those running +% MS-Windows and Unix, please let me know so I can change the +% documentation to suit. +% +% The following entries are for dvips~v5.78 and possibly some other +% versions: +%\begin{verbatim} +% zpeurs EuroSans-Regular <<_1______.pfb +% zpeubs EuroSans-Bold <<_1B_____.pfb +% zpeuris EuroSans-Italic <<_1I_____.pfb +% zpeubis EuroSans-BoldItalic <<_1BI____.pfb +% zpeurt EuroMono-Regular <<_2______.pfb +% zpeubt EuroMono-Bold <<_2B_____.pfb +% zpeurit EuroMono-Italic <<_2I_____.pfb +% zpeubit EuroMono-BoldItalic <<_2BI____.pfb +% zpeur EuroSerif-Regular <<_3______.pfb +% zpeub EuroSerif-Bold <<_3B_____.pfb +% zpeuri EuroSerif-Italic <<_3I_____.pfb +% zpeubi EuroSerif-BoldItalic <<_3BI____.pfb +%\end{verbatim} +% +% The following entries are for dvips~v5.70 or earlier, probably dvips +% v5.79 and above, and pdf\TeX. Since that I don't use pdf\TeX, this +% suggestion might not work -- please let me know if you have any +% problems. +%\begin{verbatim} +% zpeurs EuroSans-Regular <_1______.pfb +% zpeubs EuroSans-Bold <_1B_____.pfb +% zpeuris EuroSans-Italic <_1I_____.pfb +% zpeubis EuroSans-BoldItalic <_1BI____.pfb +% zpeurt EuroMono-Regular <_2______.pfb +% zpeubt EuroMono-Bold <_2B_____.pfb +% zpeurit EuroMono-Italic <_2I_____.pfb +% zpeubit EuroMono-BoldItalic <_2BI____.pfb +% zpeur EuroSerif-Regular <_3______.pfb +% zpeub EuroSerif-Bold <_3B_____.pfb +% zpeuri EuroSerif-Italic <_3I_____.pfb +% zpeubi EuroSerif-BoldItalic <_3BI____.pfb +%\end{verbatim} +% +% \paragraph{Eurofont configuration lines for Macs} +% +% Macintosh \filename{psfonts.map} entries for dvips v5.78 and possibly +% some other versions: +%\begin{verbatim} +% zpeur EuroSerif-Regular <<EuroSerReg +% zpeuri EuroSerif-Italic <<EuroSerIta +% zpeub EuroSerif-Bold <<EuroSerBol +% zpeubi EuroSerif-BoldItalic <<EuroSerBolIta +% zpeurs EuroSans-Regular <<EuroSanReg +% zpeuris EuroSans-Italic <<EuroSanIta +% zpeubs EuroSans-Bold <<EuroSanBol +% zpeubis EuroSans-BoldItalic <<EuroSanBolIta +% zpeurt EuroMono-Regular <<EuroMonReg +% zpeurit EuroMono-Italic <<EuroMonIta +% zpeubt EuroMono-Bold <<EuroMonBol +% zpeubit EuroMono-BoldItalic <<EuroMonBolIta +%\end{verbatim} +% +% +% Macintosh \filename{psfonts.map} entries for dvips~v5.70 or before, +% probably dvips v5.79 and above, and pdf\TeX. Since that I don't use +% pdf\TeX, this suggestion might not work -- please let me know if you +% have any problems. +%\begin{verbatim} +% zpeur EuroSerif-Regular <EuroSerReg +% zpeuri EuroSerif-Italic <EuroSerIta +% zpeub EuroSerif-Bold <EuroSerBol +% zpeubi EuroSerif-BoldItalic <EuroSerBolIta +% zpeurs EuroSans-Regular <EuroSanReg +% zpeuris EuroSans-Italic <EuroSanIta +% zpeubs EuroSans-Bold <EuroSanBol +% zpeubis EuroSans-BoldItalic <EuroSanBolIta +% zpeurt EuroMono-Regular <EuroMonReg +% zpeurit EuroMono-Italic <EuroMonIta +% zpeubt EuroMono-Bold <EuroMonBol +% zpeubit EuroMono-BoldItalic <EuroMonBolIta +%\end{verbatim} +% +% +% \OzTeX\ config file entries: these lines are normally added to the +% \filename{Default} config file in \OzTeX's \filename{Configs} folder. +% These lines should work with any version of \OzTeX\ from at least +% version~1.7 onwards. Please let me know if you have any problems. +%\begin{verbatim} +% zpeur EuroSerif-Regular "Euro Serif" nil +% zpeuri EuroSerif-Italic "Euro Serif" nil i +% zpeub EuroSerif-Bold "Euro Serif" nil b +% zpeubi EuroSerif-BoldItalic "Euro Serif" nil bi +% zpeurs EuroSans-Regular "Euro Sans" nil +% zpeuris EuroSans-Italic "Euro Sans" nil i +% zpeubs EuroSans-Bold "Euro Sans" nil b +% zpeubis EuroSans-BoldItalic "Euro Sans" nil bi +% zpeurt EuroMono-Regular "Euro Monospace" nil +% zpeurit EuroMono-Italic "Euro Monospace" nil i +% zpeubt EuroMono-Bold "Euro Monospace" nil b +% zpeubit EuroMono-BoldItalic "Euro Monospace" nil bi +%\end{verbatim} +% +% \subsubsection{\Dvidriver configuration lines for +% Marvosym}\label{sec:dvidriver_config:mvs} +% +% I have been greatly confused while trying to work out how to configure +% \dvidriver{}s to use Marvosym. I think I've got it right, but I can't +% test on anything but my Mac. I'd appreciate an email if you find that +% any of the information below turns out to be wrong. +% +% There are two versions of the Marvosym out there in network land: the +% original, and a version that's been re-worked by Y\&Y. As far as I can +% work out, the Y\&Y version of Marvosym has identical glyphs to the +% original, and differs in that it works properly with ATM and has +% better hinting. This means that the new version should render better +% at low and medium resolutions. In other words, I think the Y\&Y +% version is better than the original. The metrics for the two +% versions are very slightly different to each other, so you should make +% sure you're using the \filename{tfm} file that came with the version +% of the Marvosym fount that you're using. +% +% Dvips \filename{psfonts.map} entries for the original Marvosym fount: +%\begin{verbatim} +% fmvr8x Martin_Vogels_Symbole <marvosym.pfb +% fmvri8x Martin_Vogels_Symbole " .167 SlantFont" <marvosym.pfb +%\end{verbatim} +% +% Dvips \filename{psfonts.map} entries for the Y\&Y `ATM compatible' +% re-worked Marvosym fount: +%\begin{verbatim} +% fmvr8x Marvosym <marvosym.pfb +% fmvri8x Marvosym " .167 SlantFont" <marvosym.pfb +%\end{verbatim} +% +% I have assumed that all \dvidriver{}s that can use \PS Type 1 founts +% can also produce fake italic founts by slanting an upright version. +% Because of this, I have made no provision for \dvidriver{}s that can't +% do this. If you have a \dvidriver that can't fake an italic, please +% let me know and I'll modify the \packname{eurofont} package to take +% this into account, probably by adding another option and writing a +% new \filename{fd} file. +% +% \paragraph{Note for Macintosh users} +% +% A Mac version of the Marvosym fount has been created in \PS Type 1 and +% TrueType versions. It uses the Y\&Y names as above, and +% these lines are be needed for dvips's \filename{psfonts.map} file: +%\begin{verbatim} +% fmvr8x Marvosym <Marvo +% fmvri8x Marvosym " .167 SlantFont" <Marvo +%\end{verbatim} +% And these lines for \OzTeX's default config file: +%\begin{verbatim} +% fmvr8x Marvosym Marvosym nil +% fmvri8x Marvosym Marvosym nil i +%\end{verbatim} +% +% If a version of the original Marvosym fount is ever released for Macs, +% these lines will be needed for dvips's \filename{psfonts.map} file: +%\begin{verbatim} +% fmvr8x Martin_Vogels_Symbole <MartiVogSym +% fmvri8x Martin_Vogels_Symbole " .167 SlantFont" <MartiVogSym +%\end{verbatim} +% And these lines for \OzTeX's default config file: +%\begin{verbatim} +% fmvr8x MartiVogSym "Martin Vogels Symbole" nil +% fmvri8x MartiVogSym "Martin Vogels Symbole" nil i +%\end{verbatim} +% +% \subsection{Metafont founts containing euro symbols}\label{sec:getMFfounts} +% +% The three Metafont sources of euro symbols that I know of are the +% Text Companion founts, the China2e fount, and the Eurosym fount. If +% you know of others, I'd appreciate an email to tell me about them. +% +% The current (October 1998) version of \LaTeX\ is set up to work with +% the relatively new T1 (and TS1) encoded versions of the usual Computer +% Modern founts. If you don't have the `European Computer Modern' and +% `Text Companion' founts -- otherwise known as the EC and TC founts -- +% it might be a good idea to get them now: the TS1 encoded Text +% Companion founts are the ones containing euro symbols. +% +% If the above paragraph doesn't make much sense to you, you can find +% out if your \LaTeX\ has access to the European Computer Modern and +% Text Companion founts by \LaTeX ing this file: +%\begin{verbatim} +% \documentclass{article} +% \usepackage[T1]{fontenc} +% \usepackage{textcomp} +% \begin{document} +% Hello world. \texteuro. +% \end{document} +%\end{verbatim} +% If you get no error messages, you have access to both the European +% Computer Modern (EC) and Text Companion (TC) founts. +% +% If not, you can get these founts, as well as the Eurosym and China2e +% founts and packages, from these locations at your nearest CTAN +% site: +%\begin{verbatim} +% /fonts/ec/ +% /fonts/eurosym/ +% /macros/latex/contrib/supported/china2e/ +%\end{verbatim} +% +% \section{Potentially useful extra information} +% +% Most of the ideas in the \packname{eurofont} package are not my own +% invention, and are documented elsewhere. \LaTeX's fount selection +% scheme, for example, is documented in the file +% \filename{fntguide.tex} which is part of the standard \LaTeX\ +% distribution. The file \filename{simple-nfss.tex} kept in the +% \filename{info/} directory at CTAN is also useful. +% +% If you're interested in understanding the details of the source code, +% you'll probably find it useful to read \filename{clsguide.tex} (also +% part of the standard \LaTeX\ distribution), as well as Leslie +% Lamport's `\LaTeX, a document preparation system', 2nd edition, +% Addison-Wesley. Donald Knuth's `The \TeX book', also published by +% Addison-Wesley, is probably essential reading. Goosens, Mittlebach, +% and Samarin's `The \LaTeX\ Companion', published by Addison-Wesley, is +% apparently a useful source of documentation on the internals of +% \LaTeX; I've found the commented \LaTeX\ source code an adequate +% substitute for this book. +% +% \subsection{Fount families and series}\label{sec:fountfamilies} +% +% \LaTeXe\ comes with a way of selecting founts called the New Fount +% Selection Scheme (NFSS). Each fount you use is specified by five +% things: encoding, family, series, shape, and size. A typical +% specification is |OT1/ptm/m/n at 12pt|. This means an \lfntname{OT1} +% encoded version of \lfntname{ptm} (Adobe Times) family, \lfntname{m} +% (medium) series, \lfntname{n} (normal upright roman) shape, in a size +% of 12pt. The point of the NFSS is to take a particular fount +% specification -- like |OT1/ptm/m/n at 12pt| -- and work out which +% \filename{tfm} file should be used. +% +% This job is essential, because as far as \TeX\ is concerned, a +% \filename{tfm} file \emph{is} a fount: without a \filename{tfm} file, +% you get no letters on the page. A \filename{tfm} file is just a list +% of sizes of each letter and things like that; the actual letter shapes +% are kept elsewhere. The \dvidriver needs to know which \filename{tfm} +% file corresponds to which `real' fount, which is what dvips's +% \filename{psfonts.map} is for. +% +% What the NFSS does is add a high-level interface to let you select a +% particular \filename{tfm} file without having to deal with any of the +% awkward details -- \LaTeX\ has always had some sort of interface to +% allow this sort of thing, but the NFSS is much better than earlier +% efforts, and much, much easier to set up for a new set of founts. +% +% The precise details of exactly which \filename{tfm} file is to be used +% for each fount specification are contained in the various +% \filename{fd} files installed on your computer (they're kept somewhere +% on the tex-inputs path). \filename{ot1ptm.fd}, for example, is +% consulted in the above example. It says that \filename{ptm7t.tfm} +% should be used for |OT1/ptm/m/n| at all sizes. This doesn't mean that +% you can only get Adobe Times in one size, because \TeX\ will scale the +% fount to the appropriate size -- the instruction to do this is +% included in the \filename{fd} file. +% +% You might be wondering what an encoding is. Well, when you type +% information into a computer, each character you type is given a number +% and this number is stored in memory: this number `is' the character +% you have just typed. The relationship between the characters and +% numbers is called an encoding. ASCII encoding, for example, says that +% the letter `A' has the number 65; `B' has the number 66, and so on. In +% the case of \LaTeX, you have two encodings: the input encoding -- +% which is used to translate the input file into \TeX's internal +% encoding (which you can forget about for now); and the output +% encoding, which is used to create the \filename{dvi} file. For +% example, a Mac user might type an \"{o} (number 194) into a +% \filename{tex} file. Assuming that he'd said +% \comname{usepackage[applemac]\ttlb inputenc\ttrb}, that would result +% in the appropriate character appearing in the \filename{dvi} file. +% This character would be represented in the \filename{dvi} file by a +% number 246 if you were using a \lfntname{T1} encoded fount at that +% point. If you were using an \lfntname{OT1} encoded fount, it would be +% represented by a combination of character number 128 (umlaut) placed +% over character number 111 (the letter o). There are many other output +% and input encodings that are commonly used. It is, for example, common +% to use ASCII input encoding, so you have to type |\"{o}| to get \"{o}. +% \LaTeX\ usually sorts out all the details for you so you don't have +% to think about encodings that often. +% +% From the point of view of configuring the \packname{eurofont} package, +% you can probably ignore encodings. The two most common text fount +% encodings used with \LaTeX\ are \lfntname{OT1} and \lfntname{T1}: +% the original 7-bit standard encoding and the newer 8-bit standard +% encoding respectively. +% +% What \packname{eurofont} is most interested in is the fount family +% name. This comes after the encoding: |OT1/ptm|, and is usually a three +% letter abbreviation like \lfntname{ptm} for Adobe Times. The full +% explanation of the naming scheme is presented in the fontname +% documentation\footnote{Available from CTAN: \texttt{/info/fontname/}}. +% In brief, the first letter of this family usually indicates the firm +% that made the fount. Adobe is indicated by a `\lfntname{p}' (for \PS, +% because Adobe created \PS). The next two letters indicates the name of +% the fount. Times is indicated by `\lfntname{tm}'. Not all fount +% families follow this pattern: the Computer Modern families pre-date +% the fontname naming scheme, so (for example) the Computer Modern +% Sanserif family has the name `\lfntname{cmss}'. And some fount families +% named according to the fontname scheme have very strange names. The +% Adobe Euroserif family has the name `\lfntname{zpeur}', the letter +% \lfntname{z} being a prefix meaning `bizarre'. +% +% There's effectively an unlimited range of fount family names. One way +% of finding out what the name is of a particular fount family is using +% \packname{eurofont}'s \comname{showfontfamily} command in your +% document: it'll print the current fount family on the console and in +% the log file. For example, if you \LaTeX\ this file: +%\begin{verbatim} +% \documentclass{article} +% \usepackage{otherfont}% A fictitious package to select a fount +% \usepackage{eurofont} +% \begin{document} +% Blah blah blah +% \showfontfamily +% \end{document} +%\end{verbatim} +% You'll get a message in the log file and the terminal output telling +% you what the fount family used to typeset `Blah blah blah' is. +% +% Another way of finding out a particular fount family name is this: +% files for using different founts with \LaTeX\ -- such as +% \filename{times.sty} -- tend to contain lines like: +%\begin{verbatim} +% \renewcommand{\sfdefault}{phv} +% \renewcommand{\rmdefault}{ptm} +% \renewcommand{\ttdefault}{pcr} +%\end{verbatim} +% This means that the \lfntname{phv} (Adobe Helvetica) family is used +% for \comname{sffamily}, the \lfntname{ptm} family (Adobe Times) family +% is used for \comname{rmfamily}, and the \lfntname{pcr} family (Adobe +% Courier) is used for \comname{ttfamily}. This means you can find out +% which fount family is used by examining the package file you use to +% select it. +% +% If you're interested in the details of producing faked euro +% symbols, the fount series becomes relevant. The normally available +% fount series are just different weights: +% \begin{center} +% \begin{tabular}{ll|ll} +% ul & ultra light & sb & semi bold \\ +% el & extra light & b & bold \\ +% l & light & bx & bold extended\\ +% m & normal (medium) & eb & extra bold \\ +% mb & medium bold & ub & ultra bold \\ +% db & demi bold & \\ +% \end{tabular} +% \end{center} +% Of these, only two are selectable with normal commands. +% \comname{bfseries}, for example, selects the \lfntname{bx} (bold +% extended) series; and \comname{mdseries} selects the \lfntname{m} +% (normal `medium' weight). Most fount families come in two different +% weights only. No normal founts are available in the range of weights +% just listed, although Multiple Master founts (those with a weight +% design axis) can be used in any number of different weights over +% almost any range. If you have produced a Multiple Master fount setup +% that gives you access to the full standard range of \LaTeX\ fount +% series, you are clearly mad\footnote{And probably called something +% like Melissa or Sebastian} and equally clearly don't need me to +% explain anything about the NFSS. +% +% If you want to select something like ultrabold, one way is to say: +%\begin{verbatim} +% \fontseries{ub}\selectfont +%\end{verbatim} +% +% A complication is that some fount families have condensed versions, +% and this has to be indicated by the fount series too. This means +% that the list of `standard' series can be extended to include: +% \begin{center} +% \begin{tabular}{ll|ll} +% ulc & ultra light condensed & dbc & demi bold condensed \\ +% elc & extra light condensed & sbc & semi bold condensed \\ +% lc & light condensed & bc & bold condensed \\ +% mc & normal (medium) condensed & ebc & extra bold condensed \\ +% mbc & medium bold condensed & ubc & ultra bold condensed \\ +% \end{tabular} +% \end{center} +% Likewise, a fount family might have extended version of some weights +% (Computer Modern Roman's Bold Extended is an example of this), so the +% `standard' list of series must also include variants like +% \lfntname{ulx} for ultra light extended. This is only relevant to +% \packname{eurofont} when it's asked to create a faked euro symbol: it +% has to know which series are bold (or whatever) to decide what +% thickness lines to draw across the C. +% +% \section{How \packname{eurofont} works -- in detail} +% \label{sec:how_it_works} +% +% This section is not meant to be a replacement for the rest of the +% documentation for \TeX nical people. The idea is that this is an +% intermediate step between the usual user documentation and the rather +% eccentrically-commented source code -- it's probably a good idea to +% read the earlier parts of this document before digging in to this +% section. +% +% The \packname{eurofont} package provides two commands meant to be used +% in documents for generating a euro symbol: \comname{euro} which just +% prints a euro symbol, and \comname[amount]{euros} which prints a euro +% symbol (generated by the \comname{euro} command) next to the argument +% of the command, with a small space between the two. The euro symbol is +% to the left of the argument by default: if you pass the +% \optname{right} option to the \packname{eurofont} package, the euro +% symbol is printed to the right of the argument of the command. +% +% The \comname{euros} command uses the \comname{euro} command to +% generate the euro symbol, so everything that applies to the +% \comname{euro} command also applies to the \comname{euros} command. +% +% I see the package code as being in several main parts: the code for +% handling the lists, the \comname{euro} command and supporting +% \comname{make...} commands, the other commands for selecting and +% printing euro symbols, and the code to construct fake euro symbols. +% This is an entirely arbitrary division; I mention it in the hope that +% it might explain the way I've divided up this part of the documentation. +% +% Note that the \comname{make...euro} commands are all meant to be +% called directly by the \comname{euro} command; the idea is to give you +% a `top level' set of commands to modify in the configuration file any +% way you like, while still allowing access to any of the euro symbols +% the \packname{eurofont} package is set up to work with by default: +% the \comname{make...euro} commands are all defined in terms of other +% commands, and it's these other commands that do the job of actually +% printing a euro symbol. You might, for example, change the +% \comname{makechinaeeuro} command to print `EUR': +%\begin{verbatim} +% \newcommand{\makechinaeeuro}{EUR} +%\end{verbatim} +% and use entries in the \comname{chinaeeuro} list to select this, rather +% than the euro symbol I intended. Even so, the `lower level' command +% \comname{chinaeeuro} will be unaffected: it will still produce the +% euro symbol from the China2e fount, and you will still be able to use +% it. For example, you might say: +%\begin{verbatim} +% \newcommand{\pgyeuro}{\chinaeeuro} +%\end{verbatim} +% to get a euro symbol from the China2e fount with Adobe Goudy (family +% name \lfntname{pgy}) +% +% A point that might be useful to know is this: the \packname{eurofont} +% package doesn't define the \comname{euro} command when it's loaded +% using the \comname{usepackage\ttlb eurofont\ttrb} command. What +% happens is that \packname{eurofont} defines the \comname{EFeuro} +% command to begin with: \comname{EFeuro} is just \packname{eurofont}'s +% \comname{euro} command under a different name. The \packname{eurofont} +% package arranges for the \comname{euro} command that you use in your +% document to be created later. The way it's done is this: +% \packname{eurofont} adds some code to the \comname{AtBeginDocument} +% hook. This code uses \TeX's \comname{let} command to make the +% \comname{euro} command identical to \comname{EFeuro} at the +% \comname{begin\ttlb document\ttrb} command. Immediately before this, +% the code added by \packname{eurofont} uses \TeX's \comname{let} +% command again to make the \comname{oldeuro} command identical to the +% \comname{euro} command. This means that \packname{eurofont}'s +% definition of \comname{euro} will over-ride any earlier definitions, +% while saving any earlier definitions for you to use. This might also +% explain strange behaviour you encounter if trying to re-define +% \comname{euro} yourself in a document preamble. It's probably best to +% do something like this: +% \label{sec:how_it_works:redefine_euro} +%\begin{verbatim} +% \documentclass{whateveryouwant} +% ... +% \usepackage{eurofont} +% \newcommand{\myeuro}{Some code} +% \AtBeginDocument{\let\euro\myeuro} +% ... +% \begin{document} +%\end{verbatim} +% The \packname{eurosym} package is a special case: if you pass the +% \optname{eurosym} option to \packname{eurofont}, \packname{eurofont} +% uses \comname{let} to make the \comname{ESeuro} command identical to +% \packname{eurosym}'s \comname{euro} command just after +% \packname{eurofont} has loaded \packname{eurosym}. This +% \comname{ESeuro} command appears in \packname{eurofont}'s code in +% various places: remember that it's defined to be whatever the +% \packname{eurosym} package defined the \comname{euro} command to be. +% +% \subsection{The \comname{euro} command}\label{sec:how_euro_works} +% +% The \comname{euro} command works like this: it looks at the current +% fount family (I shall call this \verb|<fam>| for now -- \lfntname{ptm} +% for Adobe Times, \lfntname{cmr} for Computer Modern Roman, and so on), +% and performs the following sequence of tests: +%\begin{verbatim} +%If <fam> is in \userlist, \makeusereuro +% else +% if \<fam>euro exists, \<fam>euro +% else +% if <fam> is in \texteurolist, \maketexteuro +% else +% if <fam> is in \chinaelist, \makechinaeeuro +% else +% if <fam> is in \cmlist, \makecmeuro +% else +% if <fam> is in \serifeurolist, \makeserifeuro +% else +% if <fam> is in \sanseurolist, \makesanseuro +% else +% if <fam> is in \monoeurolist, \makemonoeuro +% else +% if <fam> is in \makefakelighteurolist, \makefakelighteuro +% else +% if <fam> is in \makefakemediumeurolist, \makefakemediumeuro +% else +% if <fam> is in \makefakeheavyeurolist, \makefakeheavyeuro +% else \makedefaulteuro +% fi fi fi fi fi fi fi fi fi fi fi +%\end{verbatim} +% In other words, it first looks to see if the current fount family is +% listed in the \comname{usereurolist}. If it is, it executes the +% \comname{usereuro} command and finishes. If not, it looks to see if a +% command \comname{<fam>euro} exists. For example, if you're typesetting +% with Adobe Times at that point (family name \lfntname{ptm}), it'll +% look for the \comname{ptmeuro} command. If this command exists, it is +% executed and the \comname{euro} command finishes. If not, it looks to +% see if the current fount family is in the \comname{texteurolist}. If +% it is, the \comname{texteuro} command is executed, and the +% \comname{euro} command finishes. This continues to the final test: if +% the current fount family is in the \comname{makefakeheavyeurolist}, +% the \comname{makefakeheavyeuro} command is executed, and the +% \comname{euro}command finishes. If it's got to the end of the tests +% and no match has been found, the \comname{defaulteuro} command is +% executed. +% +% It's up to you to define the \comname{makeusereuro} and +% \comname{<fam>euro} commands. All the other \comname{make...euro} +% commands may be re-defined as you see fit, but are defined by the +% \packname{eurofont} package to produce euro symbols. +% +% \subsection{The \comname{make...euro} commands} +% +% What each of these commands does by default is this: +% +% \subsubsection{\comname{maketexteuro}} +% Executes either the \comname{texteuro} command or the +% \comname{makefakeeuro} command. The \comname{texteuro} command is +% normally defined by the \packname{textcomp} package (part of the +% standard \LaTeX\ distribution) to print a euro symbol from the TS1 +% encoded complement to the current fount. This TS1 encoded complement +% often does not exist, and even if it does exist, it usually (October +% 1998) does not have a euro symbol. The \comname{makefakeeuro} command +% is described in section~\vref{sec:howitworks:makefakeeuro}. The +% \packname{eurofont} package tries to load the \packname{textcomp} +% package by default; see section~\vref{sec:all_options} for more +% details. +% +% The decision on whether to execute \comname{texteuro} or +% \comname{makefakeeuro} is made like this: the \comname{texteuro} +% command is executed if these three conditions are met: 1)~the current +% fount family is not listed in \comname{faketext\-eurolist}, 2)~the +% \packname{textcomp} package has been loaded, and 3)~that the fount +% definition file \filename{ts1<fam>.fd} exists (where |<fam>| is the +% current fount family name). That \filename{fd} file is the thing that +% tells \LaTeX\ where to find the symbol asked for in the +% \comname{texteuro} command defined by the \packname{textcomp} package: +% if it doesn't exist, the current fount family certainly doesn't have a +% euro symbol available in the expected place. +% +% The decision isn't foolproof: there's no way that \TeX\ can check for +% the existence of a real glyph in a fount (the matter is complicated +% greatly by virtual founts and `missing glyph' rule boxes), so +% \comname{maketexteuro}'s checks mustn't be relied on. +% +% \subsubsection{\comname{makefakeeuro}} +% \label{sec:howitworks:makefakeeuro} +% This command first checks to see if the command +% \comname{<fam>fakeeuro} exists, where |<fam>| is the name of the +% current fount family; if this command exists, it's executed. If not, +% \comname{makefakeeuro} then checks for the presence of the current +% fount family name in (in this order) \comname{EFfakelightlist}, +% \comname{EFfakemediumlist}, and \comname{EFfake\-heavylist}. If it finds +% a match, it executes the corresponding \comname{makefake...euro} +% command; these are explained below. If it finds no match, it executes +% the \comname{makefakemediumeuro} command. \comname{makefakeeuro} +% doesn't appear directly in the definition of the \comname{euro} +% command. +% +% \subsubsection{\comname{makechinaeeuro}} +% \label{sec:howitworks:makechinaeeuro} +% Executes the \comname{chinaeeuro} command, which prints a fake +% bold euro symbol created from the China2e fount's euro symbol if the +% current \comname{fontseries} is listed in the +% \comname{EFbold\-serieslist} or the \comname{EFultraboldserieslist}, +% and a straight euro symbol from the China2e fount otherwise. The +% \comname{chinaeeuro} command is described in +% section~\vref{sec:howitworks:chinaeeuro}. +% +% \subsubsection{\comname{makecmeuro}} +% \label{sec:howitworks:makecmeuro} +% If you've given the \optname{eurosym} option to the +% \packname{eurofont} package and the \packname{eurosym} package has +% been loaded successfully, \comname{makecmeuro} executes the +% \comname{ESeuro} command which prints the specified \packname{eurosym} +% euro symbol, as described in section~\vref{sec:howitworks:makecmeuro}. +% Otherwise, the \comname{cmeuro} command is executed, which gives you +% either a euro symbol from the text companion founts, or a faked euro +% symbol; this faked euro symbol is made with light rules for Computer +% Modern Roman and medium weight rules for Computer Modern Sanserif +% and Typewriter. The \comname{cmeuro} command is described in +% section~\vref{sec:howitworks:cmeuro}. +% +% \subsubsection{\comname{makeserifeuro}} +% \label{sec:howitworks:makeserifeuro} +% This executes the \comname{serifeuro} command, described in +% section~\vref{sec:howitworks:serifeuro}. By default, +% \comname{serifeuro} executes the \comname{zpeureuro} command, +% described in section~\vref{sec:howitworks:zpeureuro}, which prints a +% euro symbol from Adobe's Euroserif fount. If you have given the +% \optname{marvosym} option to \packname{eurofont} and you have not used +% the \optname{eurosym} option, the \comname{serifeuro} command will +% instead execute the \comname{marvosymserifeuro} command, described in +% section~\vref{sec:howitworks:marvosymserifeuro}: this will try to +% print a seriffed euro symbol from the Marvosym fount. If the current +% fount series is in \comname{EFboldserieslist} or +% \comname{EFultraboldserieslist}, you'll get a faked bold euro from the +% Marvosym fount. The default setup assumes that your \dvidriver can +% print a faked italic version of the Marvosym fount. +% +% If you've given the \optname{eurosym} option to the +% \packname{eurofont} package and the \packname{eurosym} package has +% been loaded successfully, the \comname{serifeuro} command prints the +% specified \packname{eurosym} euro symbol by executing the +% \comname{ESeuro} command. The \comname{ESeuro} command is described in +% section~\vref{sec:howitworks:ESeuro}. +% +% \subsubsection{\comname{makesanseuro}} +% \label{sec:howitworks:makesanseuro} +% This executes the \comname{sanseuro} command, described in +% section~\vref{sec:howitworks:sanseuro}. By default, \comname{sanseuro} +% executes the \comname{zpeusseuro} command, described in +% section~\vref{sec:howitworks:zpeusseuro}, which prints a euro symbol +% from Adobe's Eurosans fount. If you have given the \optname{marvosym} +% option to \packname{eurofont} and you have not used the +% \optname{eurosym} option, the \comname{sanseuro} command will instead +% execute the \comname{marvosymsanseuro} command, described in +% section~\vref{sec:howitworks:marvosymsanseuro}: this will try to print +% a sanserif euro symbol from the Marvosym fount. If the current fount +% series is in \comname{EFboldserieslist} or the +% \comname{EFultraboldserieslist}, you'll get a faked bold euro from the +% Marvosym fount. The default setup assumes that your \dvidriver can +% print a faked italic version of the Marvosym fount. +% +% If you've given the \optname{eurosym} option to the +% \packname{eurofont} package and the \packname{eurosym} package has +% been loaded successfully, the \comname{sanseuro} command prints the +% specified \packname{eurosym} euro symbol by executing the \comname{ESeuro} +% command. +% +% \subsubsection{\comname{makemonoeuro}} +% \label{sec:howitworks:makemonoeuro} +% This executes the \comname{monoeuro} command, described in +% section~\vref{sec:howitworks:monoeuro}. By default, +% \comname{monoeuro} executes the \comname{zpeutteuro} command, +% described in section~\vref{sec:howitworks:zpeutteuro}, which prints a +% euro symbol from Adobe's Euroserif fount. If you have given the +% \optname{marvosym} option to \packname{eurofont} and you have not used +% the \optname{eurosym} option, the \comname{monoeuro} command will +% instead execute the \comname{marvosymmonoeuro} command, described in +% section~\vref{sec:howitworks:marvosymserifeuro}: this will try to +% print a monospaced euro symbol from the Marvosym fount. If the current +% fount series is in \comname{EFboldserieslist} or +% \comname{EFultraboldserieslist}, you'll get a faked bold euro from the +% Marvosym fount. The default setup assumes that your \dvidriver can +% print a faked italic version of the Marvosym fount. +% +% If you've given the \optname{eurosym} option to the +% \packname{eurofont} package and the \packname{eurosym} package has +% been loaded successfully, the \comname{sanseuro} command prints the +% specified \packname{eurosym} euro symbol by executing the \comname{ESeuro} +% command. +% +% \subsubsection{\comname{makefakelighteuro}} +% \label{sec:howitworks:makefakelighteuro} +% If the command \comname{<fam>fakeeuro} exists (where |<fam>| is the +% name of the current fount family), execute it. Otherwise, execute the +% \comname{fakelighteuro} command, which prints a euro symbol faked from +% a letter C with two light rules printed over it; you can find out more +% about this in section~\vref{sec:howitworks:fakelighteuro}. The +% \comname{makefakelighteuro} command is unaffected by the +% \optname{eurosym} option. +% +% +% \subsubsection{\comname{makefakemediumeuro}} +% \label{sec:howitworks:makefakemediumeuro} +% If the command \comname{<fam>fakeeuro} exists (where |<fam>| is the +% name of the current fount family), execute it. Otherwise, execute the +% \comname{fakemediumeuro} command, which prints a euro symbol faked +% from a letter C with two light rules printed over it; you can find out +% more about this in section~\vref{sec:howitworks:fakemediumeuro}. The +% \comname{makefakemediumeuro} command is unaffected by the +% \optname{eurosym} option. +% +% \subsubsection{\comname{makefakeheavyeuro}} +% \label{sec:howitworks:makefakeheavyeuro} +% If the command \comname{<fam>fakeeuro} exists (where |<fam>| is the +% name of the current fount family), execute it. Otherwise, execute the +% \comname{fakeheavyeuro} command, which prints a euro symbol faked +% from a letter C with two light rules printed over it; you can find out +% more about this in section~\vref{sec:howitworks:fakeheavyeuro}. The +% \comname{makefakeheavyeuro} command is unaffected by the +% \optname{eurosym} option. +% +% \subsubsection{\comname{makedefaulteuro}} +% \label{sec:howitworks:makedefaulteuro} +% Executes the \comname{makefakeeuro} command. This usually prints a +% euro faked with medium weight rules. See +% section~\vref{sec:howitworks:makefakeeuro} for more details. +% +% \subsection{Other commands to print euro symbols} +% +% \subsubsection{\comname{chinaeeuro}} +% \label{sec:howitworks:chinaeeuro} +% +% This prints the euro symbol from the China2e fount. There is only one +% euro character available, in the upright shape and medium weight only. +% This command uses the \comname{SelectOnWeight} command to print either +% a China2e euro symbol in its natural state (for light and medium +% weights), or a `poor man's bold' version for bold and ultra bold +% weights. +% +% The \comname{SelectOnWeight} command is described in +% section~\vref{sec:howitworks:selectonweight}. +% +% \subsubsection{\comname{cmeuro}} +% \label{sec:howitworks:cmeuro} +% +% The \comname{cmeuro} command executes the \comname{texteuro} command to +% print a euro symbol from the TS1 encoded complement of the current +% fount if these three conditions are met: 1) the current fount family +% is not in the \comname{faketexteurolist}; 2) the command +% \comname{texteuro} exists; and 3) the file \filename{ts1<fam>.fd} +% exists, where \filename{<fam>} is the name of the current fount +% family. If all three conditions are not met, \comname{cmeuro} executes +% the \comname{makefakeeuro} command to print a faked euro symbol; this +% command is described in section~\vref{sec:howitworks:makefakeeuro}. +% +% \subsubsection{\comname{EFeuro}} +% \label{sec:howitworks:EFeuro} +% +% This is the name under which the \comname{euro} command is defined +% originally; the \packname{eurofont} package adds some code to the +% standard \LaTeX\ \comname{AtBeginDocument} hook that makes the +% \comname{euro} command equivalent to the \comname{EFeuro} command +% (using the primitive \TeX\ \comname{let} command). This code added to +% the \comname{AtBeginDocument} hook is executed, unsurprisingly, at the +% \comname{begin\ttlb document\ttrb} command. It's best not to use the +% \comname{EFeuro} command yourself unless you have a particular need +% to, but if you're writing a class or package file that uses +% \packname{eurofont}, you might have such a need. +% +% The \comname{EFeuro} command is identical to the \comname{euro} +% command, but they are different commands. If you want to change the +% \comname{euro} command in your document, you should do so after the +% \comname{begin\ttlb document\ttrb} command. One suggestion on how to +% do this is in section~\vref{sec:how_it_works:redefine_euro}. This way +% of re-defining the \comname{euro} command means you still have access +% to \packname{eurofont}'s original \comname{euro} command under the +% name \comname{EFeuro}. The \comname{EFeuro} command shouldn't be used +% directly in a \LaTeX\ document. It's not that anything terrible will +% happen if you do, just that \LaTeX\ convention states that commands +% with mixed-case names are meant for use by class and package writers +% only, and it seemed right to me to add this restriction to the +% \comname{EFeuro} command. +% +% \subsubsection{\comname{ESeuro}} +% \label{sec:howitworks:ESeuro} +% +% If you tell the \packname{eurofont} package to load the +% \packname{eurosym} package, \packname{eurofont} makes the +% \comname{ESeuro} command identical to the \comname{euro} command +% defined by \packname{eurosym}. This means that \packname{eurosym}'s +% \comname{euro} command is still available as \comname{ESeuro}, even +% though \packname{eurofont} re-defines the \comname{euro} command to be +% something completely different. It's probably best not to use the +% \comname{ESeuro} command unless you have no choice in the matter, as +% is often the case when writing package files. +% +% In case you're wondering, the \comname{ESeuro} command will be the +% same as the \comname{oldeuro} command if \packname{eurofont} has +% loaded \packname{eurosym}. +% +% \subsubsection{\comname{oldeuro}} +% \label{sec:howitworks:oldeuro} +% +% The \packname{eurofont} package adds another bit of code to the +% \comname{AtBeginDocument} hook: this code not only sets the +% \comname{euro} command to be whatever \comname{EFeuro} has been +% defined as (as mentioned in section~\vref{sec:howitworks:EFeuro}), but +% just before that, the code sets the \comname{oldeuro} command to be +% whatever the \comname{euro} command was at that instant. This means +% that any package which has defined a \comname{euro} command has not +% wasted its effort: its command is still available as +% \comname{oldeuro}. +% +% As mentioned above, the \comname{ESeuro} command will be the +% same as the \comname{oldeuro} command if \packname{eurofont} has +% loaded \packname{eurosym}. +% +% +% \subsubsection{\comname{sanseuro}} +% \label{sec:howitworks:sanseuro} +% +% Depending on what you've asked for in the options to the +% \packname{eurofont} package, this command executes one of three +% commands. By default, or if you've used the \optname{adobeeurofonts} +% option, it executes \comname{zpeusseuro}; if you've used the +% \optname{marvosym} option, it executes \comname{marvosymsanseuro}; and +% if you've used the eurosym option (which over-rides the other two), it +% executes \comname{ESeuro}. +% +% The \comname{zpeusseuro} command is described in +% section~\vref{sec:howitworks:zpeusseuro}; the +% \comname{marvosymsans\-euro} is described in +% section~\vref{sec:howitworks:marvosymsanseuro}; and the +% \comname{ESeuro} command is described in +% section~\vref{sec:howitworks:ESeuro}. +% +% \subsubsection{\comname{serifeuro}} +% \label{sec:howitworks:serifeuro} +% +% Depending on what you've asked for in the options to the +% \packname{eurofont} package, this command executes one of three +% commands. By default, or if you've used the \optname{adobeeurofonts} +% option, it executes \comname{zpeureuro}; if you've used the +% \optname{marvosym} option, it executes \comname{marvosymserifeuro}; and +% if you've used the eurosym option (which over-rides the other two), it +% executes \comname{ESeuro}. +% +% The \comname{zpeureuro} command is described in +% section~\vref{sec:howitworks:zpeureuro}; the +% \comname{marvosymserif\-euro} is described in +% section~\vref{sec:howitworks:marvosymserifeuro}; and the +% \comname{ESeuro} command is described in +% section~\vref{sec:howitworks:ESeuro}. +% +% \subsubsection{\comname{monoeuro}} +% \label{sec:howitworks:monoeuro} +% +% Depending on what you've asked for in the options to the +% \packname{eurofont} package, this command executes one of three +% commands. By default, or if you've used the \optname{adobeeurofonts} +% option, it executes \comname{zpeutteuro}; if you've used the +% \optname{marvosym} option, it executes \comname{marvosymmonoeuro}; and +% if you've used the eurosym option (which over-rides the other two), it +% executes \comname{ESeuro}. +% +% The \comname{zpeutteuro} command is described in +% section~\vref{sec:howitworks:zpeureuro}; the +% \comname{marvosymmono\-euro} is described in +% section~\vref{sec:howitworks:marvosymmonoeuro}; and the +% \comname{ESeuro} command is described in +% section~\vref{sec:howitworks:ESeuro}. +% +% \subsubsection{\comname{zpeureuro}} +% \label{sec:howitworks:zpeureuro} +% +% This command prints a euro symbol from one of Adobe's four Euroserif +% founts (Roman, Italic, Bold, or Bold Italic). The selection is done +% using \LaTeX's usual fount selection mechanism. +% +% \subsubsection{\comname{zpeusseuro}} +% \label{sec:howitworks:zpeusseuro} +% +% This command prints a euro symbol from one of Adobe's four Eurosans +% founts (Roman, Italic, Bold, or Bold Italic). The selection is done +% using \LaTeX's usual fount selection mechanism. +% +% \subsubsection{\comname{zpeutteuro}} +% \label{sec:howitworks:zpeutteuro} +% +% This command prints a euro symbol from one of Adobe's four Euromono +% founts (Roman, Italic, Bold, or Bold Italic). The selection is done +% using \LaTeX's usual fount selection mechanism. +% +% \subsubsection[\comname{marvosymeuro}] +% {\comname{marvosymeuro}\comarg{char}} +% \label{sec:howitworks:marvosymeuro} +% +% This command is used by \comname{marvosymserifeuro} (and friends) to +% print a euro symbol from the Marvosym fount. Like the +% \comname{chinaeeuro} command, it uses the \comname{SelectOnWeight} +% command -- covered in section~\vref{sec:howitworks:selectonweight} -- +% to print a normal euro symbol for medium and light weight founts, and +% produces a `poor man's bold' version when you're using a bold or ultra +% bold fount. +% +% The \comname{marvosymeuro} command takes a single argument, which is +% the number of the character to be printed: 99 for the sanserif euro symbol, +% 100 for the monospaced euro symbol, and 101 for the seriffed euro symbol. +% +% \subsubsection{\comname{marvosymsanseuro}} +% \label{sec:howitworks:marvosymsanseuro} +% +% The \comname{marvosymsanseuro} command prints a sanserif euro +% symbol from the Marvosym fount by executing +% \comname{marvosymeuro\ttlb 99\ttrb}. +% +% \subsubsection{\comname{marvosymserifeuro}} +% \label{sec:howitworks:marvosymserifeuro} +% +% The \comname{marvosymsanseuro} command prints a seriffed euro +% symbol from the Marvosym fount by executing +% \comname{marvosymeuro\ttlb 101\ttrb}. +% +% \subsubsection{\comname{marvosymmonoeuro}} +% \label{sec:howitworks:marvosymmonoeuro} +% +% The \comname{marvosymsanseuro} command prints a monospaced euro +% symbol from the Marvosym fount by executing +% \comname{marvosymeuro\ttlb 100\ttrb}. +% +% \subsubsection{\comname{cmrfakeeuro}} +% \label{sec:howitworks:cmrfakeeuro} +% +% This command creates a euro symbol faked with light rules, using the +% \comname{fakelight\-euro} command which is described in +% section~\vref{sec:howitworks:fakelighteuro}. Note that the +% \comname{euro} command will execute \comname{<fam>fakeeuro} (where +% |<fam>| is the current fount family) if it's asked to fake a euro +% symbol using any of the \comname{makefake...euro} commands. This means +% that you need to re-define \comname{cmrfakeeuro} if you want to change +% the sort of faked euro symbol you get with Computer Modern Roman; just +% putting |cmr| in (say) \comname{fakemediumlist} won't do the job. +% +% \subsubsection{\comname{cmssfakeeuro}} +% \label{sec:howitworks:cmssfakeeuro} +% +% This command creates a euro symbol faked with medium rules, using the +% \comname{fake\-mediumeuro} command which is described in +% section~\vref{sec:howitworks:fakemediumeuro}. Note that the +% \comname{euro} command will execute \comname{<fam>fakeeuro} (where +% |<fam>| is the current fount family) if it's asked to fake a euro +% symbol using any of the \comname{makefake...euro} commands. This means +% that you need to re-define \comname{cmssfakeeuro} if you want to +% change the sort of faked euro symbol you get with Computer Modern +% Sanserif; just putting |cmss| in (say) \comname{fakelightlist} won't +% do the job. +% +% \subsubsection{\comname{cmttfakeeuro}} +% \label{sec:howitworks:cmttfakeeuro} +% +% This command creates a euro symbol faked with medium rules, using the +% \comname{fake\-mediumeuro} command which is described in +% section~\vref{sec:howitworks:fakemediumeuro}. Note that the +% \comname{euro} command will execute \comname{<fam>fakeeuro} (where +% |<fam>| is the current fount family) if it's asked to fake a euro +% symbol using any of the \comname{makefake...euro} commands. This means +% that you need to re-define \comname{cmttfakeeuro} if you want to +% change the sort of faked euro symbol you get with Computer Modern +% Typewriter; just putting |cmtt| in (say) \comname{fakelightlist} won't +% do the job. +% +% \subsubsection{\comname{pzcfakeeuro}} +% \label{sec:howitworks:pzcfakeeuro} +% +% This command creates a euro symbol faked with medium rules, using the +% \comname{fakemediumeuro[-0.1ex]} command. The optional argument +% lowers the height of the cross-strokes by 0.1\,ex to match the C in +% Zapf Chancery. +% +% Note that the \comname{euro} command will execute +% \comname{<fam>fakeeuro} (where |<fam>| is the current fount family) if +% it's asked to fake a euro symbol using any of the +% \comname{makefake...euro} commands. This means that you need to +% re-define \comname{pzcfakeeuro} if you want to change the sort of +% faked euro symbol you get with Zapf Chancery; just putting |pzc| in +% (say) \comname{fakelightlist} won't do the job. +% +% \subsection{Commands used to produce faked euro symbols} +% +% \subsubsection[\comname{fakeheavyeuro}] +% {\comname{fakeheavyeuro}\comoptarg{lift}\comoptarg{slant corr}} +% \label{sec:howitworks:fakeheavyeuro} +% +% This is one of three similar commands: this command prints a euro +% symbol faked with heavy rules. It's executed by the \comname{euro} +% command if the current fount family is in the \comname{fakeheavylist}. +% It takes two optional arguments: the first one, \comoptarg{lift}, +% lifts the cross-strokes of the faked euro symbol by the specified +% length; the default length is 0\,pt. The second optional argument, +% \comoptarg{slant corr}, is a percentage factor by which the nominal +% slant of the fount is multiplied by before calculating the horizontal +% position of the rules. Its default value is 100 (i.e., multiply the +% slant by $100/100 = 1$); this argument never has any effect on upright +% founts because they have no slant. +% +% If you pass one optional argument to \comname{fakeheavyeuro}, it is +% interpreted as being the \comoptarg{lift} argument. +% +% \comname{fakeheavyeuro} is defined to be one of these three: +% \begin{center} +% \begin{tabular}{ll} +% \textbf{Option} & \textbf{Command} \\[1ex] +% \optname{noslantfakeeuro} & \comname{heavyruleeuronoslant} \\ +% \optname{normalslantfakeeuro} & \comname{heavyruleeuronorm} \\ +% \optname{bigslantfakeeuro} & \comname{heavyruleeurobigslant} \\ +% \end{tabular} +% \end{center} +% The optional argument to \comname{fakeheavyeuro} is passed as the +% first argument (rule lift) to the given \comname{heavyrule\-euro...} +% command; it's 0\,ex by default. The second argument (slant +% correction factor) to the \comname{heavyrule\-euro...} command is +% left blank, so it defaults to 100. See +% section~\vref{sec:howitworks:EFruleeuro} for more about this. +% +% This command was written for the sake of symmetry more than +% anything else; I would be surprised if anyone found a real use for +% it. +% +% \subsubsection[\comname{fakelighteuro}] +% {\comname{fakelighteuro}\comoptarg{lift}\comoptarg{slant corr}} +% \label{sec:howitworks:fakelighteuro} +% +% This is one of three similar commands: this command prints a euro symbol +% faked with light rules. It's executed by the \comname{euro} command if +% the current fount family is in the \comname{fakelightlist}. It takes +% two optional arguments: the first one, \comoptarg{lift}, lifts the +% cross-strokes of the faked euro symbol by the specified length; the +% default length is 0\,pt. The second optional argument, \comoptarg{slant +% corr}, is a percentage factor by which the nominal slant of the fount +% is multiplied by before calculating the horizontal position of the +% rules. Its default value is 100 (i.e., multiply the +% slant by $100/100 = 1$); this argument never has any effect on upright +% founts because they have no slant. +% +% If you pass one optional argument to \comname{fakeheavyeuro}, it is +% interpreted as being the \comoptarg{lift} argument. +% +% \comname{fakelighteuro} is defined by the options in +% \packname{eurofont} to be one of these three; +% \comname{lightruleeuronorm} by default. +% \begin{center} +% \begin{tabular}{ll} +% \textbf{Option} & \textbf{Command} \\[1ex] +% \optname{noslantfakeeuro} & \comname{lightruleeuronoslant} \\ +% \optname{normalslantfakeeuro} & \comname{lightruleeuronorm} \\ +% \optname{bigslantfakeeuro} & \comname{lightruleeurobigslant} \\ +% \end{tabular} +% \end{center} +% The optional argument to \comname{fakelighteuro} is passed as the +% first argument (rule lift) to the given \comname{lightrule\-euro...} +% command; it's 0\,ex by default. The second argument (slant +% correction factor) to the \comname{lightrule\-euro...} command is +% left blank, so it defaults to 100. See +% section~\vref{sec:howitworks:EFruleeuro} for more about this. +% +% \subsubsection[\comname{fakemediumeuro}] +% {\comname{fakemediumeuro}\comoptarg{lift}\comoptarg{slant corr}} +% \label{sec:howitworks:fakemediumeuro} +% +% This is one of three similar commands: this command prints a euro symbol +% faked with light rules. It's executed by the \comname{euro} command if +% the current fount family is in the \comname{fakemediumlist}. It takes +% two optional arguments: the first one, \comoptarg{lift}, lifts the +% cross-strokes of the faked euro symbol by the specified length; the +% default length is 0\,pt. The second optional argument, \comoptarg{slant +% corr}, is a percentage factor by which the nominal slant of the fount +% is multiplied by before calculating the horizontal position of the +% rules. Its default value is 100 (i.e., multiply the +% slant by $100/100 = 1$); this argument never has any effect on upright +% founts because they have no slant. +% +% If you pass one optional argument to \comname{fakeheavyeuro}, it is +% interpreted as being the \comoptarg{lift} argument. +% +% \comname{fakemediumeuro} is defined by the options in +% \packname{eurofont} to be one of these three; +% \comname{lightruleeuronorm} by default. +% \begin{center} +% \begin{tabular}{ll} +% \textbf{Option} & \textbf{Command} \\[1ex] +% \optname{noslantfakeeuro} & \comname{mediumruleeuronoslant} \\ +% \optname{normalslantfakeeuro} & \comname{mediumruleeuronorm} \\ +% \optname{bigslantfakeeuro} & \comname{mediumruleeurobigslant} \\ +% \end{tabular} +% \end{center} +% The optional argument to \comname{fakemediumeuro} is passed as the +% first argument (rule lift) to the given \comname{mediumrule\-euro...} +% command; it's 0\,ex by default. The second argument (slant +% correction factor) to the \comname{mediumrule\-euro...} command is +% left blank, so it defaults to 100. See +% section~\vref{sec:howitworks:EFruleeuro} for more about this. +% +% \subsubsection{\comname{EFruleeuro}}\label{sec:EFruleeuro} +% \label{sec:howitworks:EFruleeuro} +% +% The command generates a euro symbol from a `C' with a pair of rules +% drawn on top of it. \comname{EFruleeuro} is not meant to be used in +% documents directly; if you need it, you should follow the +% \packname{eurofont} package's example and use it in the definition of +% a new command to generate a euro symbol. The +% \comname{mediumruleeuronorm} command and others show you a way of +% doing this. +% +% \comname{EFruleeuro} has six arguments: +% \begin{center} +%\begin{tabbing} +% \comname{EFruleeuro}\= \\ +% \> \comarg{backshift \%age}\comarg{top rule width \%age}\relax +% \comarg{bottom rule width \%age}\\ +% \> \comarg{rule thickness}\comarg{rule vertical spacing}\relax +% \comarg{rule vertical offset}\\ +% \> \comarg{slant correction factor \%age}\\ +%\end{tabbing} +% \end{center} +% +% The first three arguments are numbers which are interpreted as a +% percentage of the width of a letter `C' in the current fount. The next +% three arguments are normal \LaTeX\ lengths. The final argument is +% another number that's interpreted as a percentage: it's the percentage +% by which the nominal slant of a fount (as specified in the +% \filename{tfm} file) is multiplied by before working out the +% horizontal position of the cross-strokes of a faked euro symbol; if +% this slant correction factor argument is left blank, it defaults to +% 100 (multiply by $100/100 = 1$, so it has no effect), which is what it +% should be most of the time. This slant correction factor never has any +% effect on upright founts, since they have a slant of 0. +% +% The \comarg{rule vertical offset} and \comarg{slant correction factor +% \%age} arguments are needed because the letters as printed are +% sometimes not quite what the metrics files would have you believe. +% +% The way the whole thing works is this: the \comname{EFruleeuro} +% command begins by putting a letter `C' on the page. It then backs up +% by |<backshift>|, and draws the two rules. Each rule is +% |<rule thickness>| thick, and the centre lines of the rules are +% separated by a vertical distance of |<rule spacing>| (if this +% dimension is 0\,pt, the rules are printed on top of each other and it +% appears that you only have one rule printed). The top rule has a +% horizontal length of |<top rule width>|, and the bottom rule has a +% horizontal length of |<bottom rule width>|. The rules are positioned +% half-way up the `C', plus |<rule vertical offset>|; this parameter is +% needed because some letters have metrics that don't quite tie up with +% reality. For example, the C in Zapf Chancery is actually lower than +% the metrics would suggest, so \packname{eurofont}'s calculations go +% awry and a `hand-correction' of -0.1\,ex needs to be applied. The +% following code is executed by \packname{eurofont}'s +% \comname{pzcfakeeuro} command: +%\begin{verbatim} +% \EFruleeuro{110}{80}{72}{0.04ex}{0.27ex}{-0.1ex}{} +%\end{verbatim} +% This creates a euro symbol faked from a `C' with a pair of horizontal +% rules drawn across it. +% +% These rules have their left-hand edge 110\% of the width of the C to +% the left of the right-hand edge of the C. The top rule has a width of +% 80\% of the width of the C; the bottom rule has a width of 72\% of the +% width of the C. +% +% The rules are 0.04\,ex thick, and the distance between the centre +% lines of the rules is 0.27\,ex. The centre line of the pair of rules +% is usually half way up the C according to the fount metrics; in this +% case, these rules are shifted down from this position by 0.1\,ex. +% +% If the C used by \comname{EFruleeuro} is an italic C, the code to +% place the rules takes this into account: it shifts the rules an +% appropriate amount to the right. The rules are also staggered slightly +% to match the slant of the C -- rather than put both rules directly +% above each other at the specified position (taking the italic +% correction into account), the top rule is placed a touch to the +% right and the bottom rule a touch to the left. +% +% And this brings me on to the final parameter: the slant correction +% factor. This is needed because some founts have italic or oblique +% versions in which the slant angle specified in the fount metrics file +% doesn't match the real slant of the printed letters. I have no idea +% why this is the case, but I do know that it means that +% \comname{EFruleeuro}'s careful calculations to place the rules +% correctly produce ugly results when working with these slanted +% founts. This slant correction factor is the percentage by which the +% slant parameter is scaled by. If the rules are being printed too far +% to the left (so that they protrude out the back of the C too far), you +% might try something like this: +%\begin{verbatim} +% \EFruleeuro{110}{80}{72}{0.04ex}{0.27ex}{0ex}{200} +%\end{verbatim} +% which works very well with Adobe Optima -- the line above tells the +% command to work on the basis that the slant is twice as great as +% specified in the metrics file. Since the \packname{fontinst}-generated +% \filename{tfm} file has the slant as $11^{\circ}$ ($1^{\circ}$ less +% than in the \filename{afm} file due to rounding errors), and the slant +% I measured is $21^{\circ}$, you can see that this should work well; +% if you have this fount youself, you will see that it does indeed work +% very well. +% +% On the other hand, Bitstream Optima has a specified slant of +% $10^{\circ}$, but a measured slant of $5^{\circ}$. This means the +% rules are placed too far to the right, so they don't protrude out the +% back of the C far enough. The obvious thing to try in this case is: +%\begin{verbatim} +% \EFruleeuro{110}{80}{72}{0.04ex}{0.27ex}{0ex}{50} +%\end{verbatim} +% which is a definite improvement but far from perfect. This is because +% the italic C in this fount is positioned further to the left than +% expected for reasons which are rather involved. There's no easy +% and good way to deal with this without adding yet another parameter to +% the \comname{EFruleeuro} command, which I decided wasn't justified. In +% the case of Bitstream Optima, you might prefer the results you get +% with a slant correction factor of 25\% or perhaps even 0\%. +% +% A final note: in an attempt to reduce the Byzantine complexity of the +% \comname{EFruleeuro} command to manageable levels, I have assumed that +% the cross-strokes do not extend beyond the right-hand limit of the +% letter `C' which they're printed over. This shouldn't cause any +% problems unless you do something strange. +% +% \subsubsection[\comname{mediumruleeuronorm}] +% {\comname{mediumruleeuronorm}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:mediumruleeuronorm} +% +% This command uses the \comname{SelectOnWeight} command (see +% section~\vref{sec:howitworks:selectonweight}) to print a faked euro +% symbol intended to match a medium weight fount family like Times: +% thicker rules are used for bolder founts in the family, and thinner +% rules are used for lighter founts in the family. The two rules drawn +% across the C have slightly different lengths, approximately the same +% as in the official euro symbol. +% +% \comname{mediumruleeuronorm} takes two arguments: the first, the +% length \comarg{lift}, raises the cross-stroke rules by the specified +% amount from their default position half way up the `C'; and the +% second, the number \comarg{slant corr}, is interpreted as the +% percentage by which the specified slant of the current fount is +% multiplied before calculating the horizontal position of the +% cross-strokes. See the explanation of \comname{EFruleeuro} in +% section~\vref{sec:howitworks:EFruleeuro} for a fuller description of +% these parameters with examples. +% +% \subsubsection[\comname{mediumruleeuronoslant}] +% {\comname{mediumruleeuronoslant}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:mediumruleeuronoslant} +% +% This command uses the \comname{SelectOnWeight} command (see +% section~\vref{sec:howitworks:selectonweight}) to print a faked euro +% symbol intended to match a medium weight fount family like Times: +% thicker rules are used for bolder founts in the family, and thinner +% rules are used for lighter founts in the family. The two rules drawn +% across the C have the same length. +% +% \comname{mediumruleeuronoslant} takes two arguments: the first, the +% length \comarg{lift}, raises the cross-stroke rules by the specified +% amount from their default position half way up the `C'; and the +% second, the number \comarg{slant corr}, is interpreted as the +% percentage by which the specified slant of the current fount is +% multiplied before calculating the horizontal position of the +% cross-strokes. See the explanation of \comname{EFruleeuro} in +% section~\vref{sec:howitworks:EFruleeuro} for a fuller description of +% these parameters with examples. +% +% \subsubsection[\comname{mediumruleeurobigslant}] +% {\comname{mediumruleeurobigslant}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:mediumruleeurobigslant} +% +% This command uses the \comname{SelectOnWeight} command (see +% section~\vref{sec:howitworks:selectonweight}) to print a faked euro +% symbol intended to match a medium weight fount family like Times: +% heavier rules are used for bolder founts in the family, and lighter +% rules are used for lighter founts in the family. The two rules drawn +% across the C have quite different lengths, following the example of +% the China2e euro symbol. +% +% \comname{mediumruleeurobigslant}takes two arguments: the first, the +% length \comarg{lift}, raises the cross-stroke rules by the specified +% amount from their default position half way up the `C'; and the +% second, the number \comarg{slant corr}, is interpreted as the +% percentage by which the specified slant of the current fount is +% multiplied before calculating the horizontal position of the +% cross-strokes. See the explanation of \comname{EFruleeuro} in +% section~\vref{sec:howitworks:EFruleeuro} for a fuller description of +% these parameters with examples. +% +% \subsubsection[\comname{lightruleeuronorm}] +% {\comname{lightruleeuronorm}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:lightruleeuronorm} +% +% This command behaves the same as \comname{mediumruleeuronorm} (see +% section~\vref{sec:howitworks:mediumruleeuronorm}), but uses lighter +% rules meant to match a fount family like Computer Modern Roman. +% +% \subsubsection[\comname{lightruleeuronoslant}] +% {\comname{lightruleeuronoslant}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:lightruleeuronoslant} +% +% This command behaves the same as \comname{mediumruleeuronoslant} (see +% section~\vref{sec:howitworks:mediumruleeuronoslant}), but uses lighter rules +% meant to match a fount family like Computer Modern Roman. +% +% \subsubsection[\comname{lightruleeurobigslant}] +% {\comname{lightruleeurobigslant}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:lightruleeurobigslant} +% +% This command behaves the same as \comname{mediumruleeurobigslant} (see +% section~\vref{sec:howitworks:mediumruleeurobigslant}), but uses +% lighter rules meant to match a fount family like Computer Modern +% Roman. +% +% \subsubsection[\comname{heavyruleeuronorm}] +% {\comname{heavyruleeuronorm}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:heavyruleeuronorm} +% +% This command behaves the same as \comname{mediumruleeuronorm} (see +% section~\vref{sec:howitworks:mediumruleeuronorm}), but uses heavier +% rules that aren't likely to match anything but a few display founts. +% +% \subsubsection[\comname{heavyruleeuronoslant}] +% {\comname{heavyruleeuronoslant}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:heavyruleeuronoslant} +% +% This command behaves the same as \comname{mediumruleeuronoslant} (see +% section~\vref{sec:howitworks:mediumruleeuronoslant}), but uses heavier +% rules that aren't likely to match anything but a few display founts. +% +% \subsubsection[\comname{heavyruleeurobigslant}] +% {\comname{heavyruleeurobigslant}\comarg{lift}\comarg{slant corr}} +% \label{sec:howitworks:heavyruleeurobigslant} +% +% This command behaves the same as \comname{mediumruleeurobigslant} (see +% section~\vref{sec:howitworks:mediumruleeurobigslant}), but uses +% heavier rules that aren't likely to match anything but a few display +% founts. +% +% \subsection{Other supporting commands} +% +% \subsubsection{\comname{showfontfamily}} +% \label{sec:howitworks:showfontfamily} +% +% This command displays the current fount family name on the console, +% and also notes the same information in the log file. It's meant to +% be used if you're configuring \packname{eurofont}, but aren't sure +% what a particular fount family name is. +% +% If you don't know what a fount family name is in \LaTeX, have a look +% at section~\vref{sec:fountfamilies}. +% +% \subsubsection[\comname{SelectOnWeight}] +% {\comname{SelectOnWeight} +% \comarg{light}\comarg{medium}\comarg{bold}\comarg{ultrabold}} +% \label{sec:howitworks:selectonweight} +% +% This command takes four arguments: the first is executed if the +% current fount series is listed in \comname{lightserieslist}; the +% second if the current fount series is in the +% \comname{mediumserieslist}; the third if it's in the +% \comname{boldserieslist}; and the fourth if it's in the +% \comname{ultraboldserieslist}. If the current fount series isn't +% listed in any of these lists, the second argument (used for medium +% weight founts) is executed. +% +% A typical use of \comname{SelectOnWeight} is this: +%\begin{verbatim} +% \newcommand{\mediumruleeuronorm}[2]{% +% \SelectOnWeight% +% {\EFruleeuro{110}{80}{72}{0.04ex}{0.27ex}{#1}{#2}}% light +% {\EFruleeuro{110}{80}{72}{0.07ex}{0.27ex}{#1}{#2}}% medium +% {\EFruleeuro{110}{80}{72}{0.14ex}{0.27ex}{#1}{#2}}% bold +% {\EFruleeuro{110}{80}{72}{0.18ex}{0.27ex}{#1}{#2}}% ultra bold +% } +%\end{verbatim} +% This defines the \comname{mediumruleeuro} command so that it'll print +% one of four different faked euro symbols, depending on the weight of the +% current fount: lighter weight founts get a euro symbol faked with lighter +% rules; the heavier the fount, the heavier the rules. If the fount +% series isn't in any of the lists, you get the rules used for the medium +% weight series. +% +% Section~\vref{sec:config} shows what's in the four different +% \comname{EF...serieslist} commands by default. +% +% \subsubsection[\comname{EFaddtolist}] +% {\comname{EFaddtolist}\comarg{list name}\comarg{items to add}} +% \label{sec:howitworks:EFaddtolist} +% +% This command takes two arguments: the first argument is the name of a +% list (which must have already been defined as a \TeX\ command), and +% the second argument is a comma delimited list of items to add to the +% list. For example: +%\begin{verbatim} +% \EFaddtolist{\sanslist}{pag,phv,psy,pzd} +%\end{verbatim} +% adds four items to the list called \comname{sanslist}. The list ends +% up containing the given items with a special delimiter to make it +% easier to examine the list using \TeX\ code. A check is made to ensure +% that each item is unique: if you tried to put (say) \lfntname{ptm} +% (Adobe Times) onto the list twice, you'd only end up with one instance +% of \lfntname{ptm} in the list. No warnings are made when this happens. +% +% \subsubsection[\comname{EFiftexteuroexists}] +% {\comname{EFiftexteuroexists}\comarg{if true}\comarg{if false}} +% \label{sec:howitworks:EFiftexteuroexists} +% +% This command takes two arguments. It's used by \comname{maketexteuro} +% and \comname{cmeuro} like this: +%\begin{verbatim} +% \EFiftexteuroexists{\texteuro}{\makefakeeuro}} +%\end{verbatim} +% What happens is that three tests are made: if the current fount family +% is not listed in the \comname{faketexteurolist}, the +% \comname{texteuro} command exists, and a TS1 encoded \filename{fd} file +% exists for the current fount family, then the first argument is +% executed (\comname{texteuro} in this example). If any of these tests +% fails, then the second argument (\comname{makefakeeuro} in this +% example) is executed. +% +% The idea is that if there's a good chance that the \comname{texteuro} +% command will print something useful, then the first argument is +% executed; the second argument is executed otherwise. +% +% The \comname{texteuro} command is defined by the standard +% \LaTeX\ \packname{textcomp} package which \packname{eurofont} tries to +% load by default. The TS1 encoded \filename{fd} file searched for is +% \filename{ts1<fam>.fd}, where |<fam>| is the name of the current fount +% family. +% \subsubsection[\comname{EF@pmb}]{\comname{EF@pmb}\comarg{text}} +% \label{sec:howitworks:EFpmb} +% This command, not meant to be used in documents, is one of the two +% commands the \packname{eurofont} package uses to print faked bold +% characters. What it does is print six copies of its argument, each +% copy offset from the others by a small amount in a hexagonal +% arrangement. The other command to do this job, \comname{EF@pmsb}, is +% identical except that it uses a slightly smaller vertical offset to +% produce better results with the Marvosym euro symbols. +% +% This fakery is no substitute for a real bold symbol, but it's much +% better than the `poor man's bold' used in the TeXbook and the standard +% \LaTeX\ \packname{bm} package. The \packname{eurofont} package's +% \comname{EF@pmb} command produces tolerable results over the full +% range I've tested it: sizes from 5\,pt to 90\,pt; whereas the +% alternative three copy poor man's bold doesn't work at all well at +% large sizes. Thanks are due to Donald Arseneau for suggesting a six +% copy method. +% +% If you're interested, the actual code can be found in +% section~\vref{sec:code:EFpmb}. +% +% \StopEventually{} +% +%\iffalse +% +% 1999/01/30 v1.1.3 Made \EFeuro (and hence \euro) robust. Added note +% about dvips v5.83 being able to partially download Adobe's +% eurofonts correctly. Changed backslash printing in \comname. +% 1999/01/18 v1.1.2 Corrected a trivial literal error. Unreleased. +% 1998/11/14 v1.1.1 Corrected \ttrb command. +% 1998/11/10 v1.1 Congratulations to "Walter Schmidt" <wschmi@ibm.net> +% for reporting the first bug *and* telling me how to fix it: say +% Marvosym not marvosym in dvips map file entries. Done this, +% and made some very minor documentation mods. +% 1998/11/03 v1.0 <gulp> This is it... Minor doc changes, commented +% out some typeouts, and off we go (maybe). +% 1998/11/03 v0.32beta more documentation changes. Sorted out some of +% the readmes. +% 1998/10/31 v0.31beta Spooky, eh? Changed the \fake...euro commands +% to have two option arguments (thanks to Heiko Oberdiek +% <oberdiek@ruf.uni-freiburg.de> for the method). Documentation +% mods to match the code mods. Clobbered some extra spaces that +% had crept in somehow +% 1998/10/30 v0.30beta Some documentation changes again - dealing with +% slantfudge. The washing machine has changed colour. +% 1998/10/29 v0.29beta I've got a (silver) washing machine, and I'm +% still feeling mean. Changed \EFruleeuro to include +% slantfudge. +% 1998/10/28 v0.28beta More documentation changes. Fixed +% \makeusereuro bug. Added \EF@pmsb command for Marvosym euro +% symbols. Added \f@family etc to \EFeuro debugrep. +% 1998/10/22 v0.27beta More documentation changes. Getting there... +% Modified \showfontfamily message. Added \comarg and \comoptarg; +% modified \comname. +% 1998/10/21 v0.26beta More documentation changes; added note to +% dvidrive.txt about dvips fix. Does anybody want to buy a +% Starfighter? +% 1998/10/19 v0.25beta Added a documentation note about LaTeX +% versions - why did it take me so long to spot the need for +% this? +% 1998/10/17 v0.24beta Added \EF@fakeeurobase to replace literal `C' +% in fake euro code. \EFeuro now \providecommanded. Brought +% config file replacement in eurofont.sty into line with current +% eurofont.cfg; did something similar with driver section. +% Dealt with overfull \hboxes one way or another, and documented +% the overfullness and cheating in the code section. +% 1998/10/16 v0.23beta More documentation mods; fiddled with pmb +% code; fiddled with heavyruleeuros; fiddled with normruleeuro +% slant +% 1998/10/15 v0.22beta Did a spelling check :-) More documentation +% changes. +% 1998/10/14 v0.21beta More documentation changes. +% 1998/10/13 v0.20beta More documentation. The end is in sight. +% 1998/10/12 v0.19beta More documentation. Is there never going to be +% an end to all this? Added a test for china2e.sty to the +% \chinaeeuro command. +% 1998/10/06 v0.18beta More documentation. Tidied up some redundant +% comments and code. Improved bold faking. Swapped some \defs +% for \providecommands. Swapped debug reports around in +% \SelectOnWeight +% 1998/10/04 v0.17beta Yet more bloody documentation. Added +% fixtieaccent and nofixtieaccent options. +% 1998/10/03 v0.16beta More documentation. Modified \EFruleeuro and +% \EF@crosstrokes: they both now take C depth into account. +% 1998/10/01 v0.15beta Yet more documentation; \EF@crosstrokes now +% staggers the rules if the fount slants. My head hurts. Why is +% arithmetic in TeX such a pain, Dr Knuth? +% 1998/09/30 v0.14beta More documentation; added psy and pzd to +% seriflist +% 1998/09/29 v0.13beta More documentation; replaced cmr/ss/tteuro +% lists with single cmeuro list. +% 1998/09/28 v0.12beta changed \notexteuro to \faketexteuro; more +% documentation; got rid of \let\ESeuro at end; made textcomp +% loading optional; re-named \rightappenditem->\EF@rightappenditem. +% 1998/09/24 v0.11beta corrected \makesansesuro typo; added +% optargs to \fake...euro commands; modified ruleeuro commands. +% My brain hurts. +% 1998/09/24 v0.10beta Added \typeouts announcing beta status +% 1998/09/23 v0.9beta Changed values for ultrabold fakemedium and +% fakeheavy, and added \nobreaks to \euros commands +% 1998/09/22 v0.8beta Played about with faking code some more: added +% heavy stuff, and stuff for variant rules in fake euros +% controlled by options. Removed the odd bug. Added debugreport +% option and code. Changed behaviour of eurosym option: almost +% all \makeeuro commands are now affected. +% 1998/09/17 v0.7beta Changed docs; made more \make... commands; +% 1998/09/12 v0.6beta Changed code docs; made \@ruleeuro->\EFruleeuro; +% added stuff for China2e euro; dropped \EUR and made \euros instead +% 1998/09/10 v0.5beta Added \notexteurolist and modified \texteuro +% stuff: new test. Modifed \EFruleeuro to have different length +% cross-strokes. +% 1998/09/09 v0.4beta Added eurosym stuff; modified faking stuff +% (added four different weight lists, added support for +% \<fam>fakeeuro, and changed other bits too but my brain hurts +% now); added support for <fam>euro. Changed \cmreuro (etc) to +% \makecmreuro. Added some \AtBeginDocument stuff so \euro is +% always eurofont's \euro when eurosym is loaded; \EFeuro is +% defined here, and \let\euro\EFeuro \AtBeginDocument does the +% job. eurosym's \euro is (also) saved if needed: +% \let\ESeuro\euro. +% 1998/09/07 v0.3beta Added cfg file, eurosym options, and some more docs. +% 1998/09/07 v0.2beta First attempt to keep track of changes; added ui +% stuff to marvosym fd bits and farmed the whole lot out to an fd +% file. Improved \EF@pmb a bit. Added the start of the +% documentation and doc/docstrip-isation. Corrected an incredibly +% stupid fd file mistake. Changed some \defs to \providecommands in +% anticipation of the cfg file. +% 1998/08/something-1998/09/04 v0.1beta And so it grew... +% +%\fi +% +% \section{The code itself} +% +% To the interested reader: the code below grew rather than being +% designed and constructed according to a plan. This is reflected in the +% curious structure and eccentric comments; the comments were written +% for the chap who wrote the code, rather than anyone else. There's a +% fair bit of redundant code left (commented out) and quite a lot of +% debugging reports and development notes left in -- these are me +% talking to myself, so don't be worried if you see something +% inexplicable. +% +% One problem with the documented code is that the visual formatting I +% used means that quite a lot of lines are longer than 72 characters, so +% they won't fit within the normal width of the text. There are +% therefore rather a lot of overfull \comname{hboxes} below. I can't see +% any easy way round this, so I have cheated and set \comname{hfuzz} to +% a large value to suppress the warnings. +% +% Say `hello' to the nice \LaTeX\ program. Who am I, and what do I need? +% This package might work with any version of \LaTeXe, but I've +% only tested it with the June 1998 release. For best results, you +% need the ec founts andthe \packname{textcomp} package (part of recent +% \LaTeX s). +% +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e}[1998/06/01] +\ProvidesPackage{eurofont}[1999/01/30 v1.1.3 A package for using euro +symbols] +% \end{macrocode} +% +% Get all these defined before loading the config file which might +% want to use them. +% +% \begin{macrocode} +\def\userlist{} +\def\texteurolist{} +\def\chinaelist{} +\def\cmlist{} +\def\seriflist{} +\def\sanslist{} +\def\monolist{} +\def\fakemediumlist{} +\def\fakelightlist{} +\def\fakeheavylist{} +\def\faketexteurolist{} +% begin with list of what's light, medium, bold, and ultra bold +\def\EFlightserieslist{} +\def\EFmediumserieslist{} +\def\EFboldserieslist{} +\def\EFultraboldserieslist{} +% \end{macrocode} +%\begin{macro}{\ifEF@debugreport} +%\begin{macro}{\EF@debugrep} +% +%Flag and command to allow option switching of debugging reports +% +% \begin{macrocode} +\newif\ifEF@debugreport +\EF@debugreportfalse% Debugging reports off by default +\def\EF@debugrep#1{\ifEF@debugreport\typeout{eurofont: #1}\fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +% +% \subsection{List handling code} +% Needed by the config file etc., which is why it's here. +%\begin{verbatim} +% \EFaddtolist{\listname}{comma delimited list of items to add} +% \EF@checkiflisted{item}{\listname} +% this sets \ifEF@listed to true or false +%\end{verbatim} +% +% Code from Stefan Ulrich |<ulrich@cis.uni-muenchen.de>|: +% +%\begin{macro}{\EF@checkiflisted} +% \begin{macrocode} +\newif\ifEF@listed +% +\def\EF@checkiflisted#1#2{% check if element #1 is in list #2 +\EF@listedfalse% +\edef\thiselem{#1}% changed to edef from def RJMM 1/9/98 +\let\@@elt\@elt% Save \@elt (in case this command is executed +% somewhere strange) +\def\@elt##1{\def\testelem{##1}% +\ifx\thiselem\testelem\EF@listedtrue\fi}% +#2\let\@elt\@@elt}% execute list and restore \@elt +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\EFaddtolist} +% \begin{macrocode} +\newcommand{\EFaddtolist}[2]{% #1 = list name; +% #2 = comma-delimited list of items to add +% \typeout{elements to add: #2}% debugging code; retain +% \expandafter%%% this seems redundant +\EF@addtolist#2,:#1\end} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\EF@addtolist} +% \begin{macrocode} +\def\EF@addtolist#1,#2:#3\end{% #3 is the list now +\def\@tempcmda{#2}% +\ifx\@tempcmda\@empty% + \EF@debugrep{Last elem: #1}\relax% if #2 is empty, do this. + \EF@addMember{#1}{#3}% if #2 is empty, do this + \else + \EF@debugrep{elem: #1}\relax% if #2 is not empty, do this + \EF@addMember{#1}{#3}% if #2 is not empty, do this +% \expandafter%%% this seems redundant + \EF@addtolist#2:#3\end\fi}% if #2 is not empty, do this +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\EF@addMember} +% \begin{macrocode} +\newcommand{\EF@addMember}[2]{% + %%% add #1 only if it isn't yet in the list + %%% it surely would be more efficient without the check... + {\EF@checkiflisted{#1}{#2}\relax% to suppress space + \ifEF@listed + \EF@debugrep{#1 already in the list}\relax% + \else + \EF@debugrep{adding #1 to \string #2}\relax% + \EF@rightappenditem{#1}{#2}\fi}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\EF@rightappenditem} +% \begin{macrocode} +\newtoks\EF@tokb% token list register for temp use +\newcommand{\EF@rightappenditem}[2]% +{\@temptokena={\@elt{#1}}\EF@tokb=\expandafter{#2}% +\xdef#2{\the\EF@tokb\the\@temptokena}}% change the list globally +% \end{macrocode} +%\end{macro} +% +% End Stefan's bit +% +% \subsection{Options} +% +% Some options: select between Adobe's Eurofonts (typographically +% better) or the Marvosym fount for |\serifeuro|, |\sanseuro|, and |\monoeuro|. +% +% \begin{macrocode} +\newif\ifEF@marvosym\EF@marvosymfalse% Adobe Eurofonts by default +\newif\ifEF@eurosym\EF@eurosymfalse% Don't use eurosym by default +\newif\ifEF@textcomp\EF@textcomptrue% Load the textcomp package if +% possible (by default) +\newif\ifEF@fixtieaccent\EF@fixtieaccentfalse% Don't re-define tie +% accent by default +% +\DeclareOption{marvosym} {\EF@marvosymtrue} +\DeclareOption{adobeeurofonts}{\EF@marvosymfalse} +% +\DeclareOption{eurosym} {\EF@eurosymtrue} +\DeclareOption{noeurosym}{\EF@eurosymfalse} +% +\DeclareOption{debugreport}{\EF@debugreporttrue} +\DeclareOption{nodebugreport}{\EF@debugreportfalse} +% +\DeclareOption{notextcomp}{\EF@textcompfalse} +\DeclareOption{textcomp}{\EF@textcomptrue} +% +\DeclareOption{fixtieaccent}{\EF@fixtieaccenttrue} +\DeclareOption{nofixtieaccent}{\EF@fixtieaccentfalse} +% \end{macrocode} +% +%\begin{macro}{\fakelighteuro} +%\begin{macro}{\fakemediumeuro} +%\begin{macro}{\fakeheavyeuro} +% +% These commands were defined in the options: they're used by +% \comname{makefake\-mediumeuro}, \comname{makefakelighteuro}, and +% \comname{makefakeheavyeuro} commands later on. +% +% They all take two optional arguments: +%\begin{verbatim} +% \fake...euro[lift][slant correction factor%] +%\end{verbatim} +% The first argument is a normal dimension; the second is a +% percentage. Default values are 0\,pt and 100 respectively. The +% lift is the amount by which the cross-strokes are raised above the +% nominal vertical centre line of the C; the slant correction factor is +% the factor by which the nominal slant of an italic or oblique C is +% multiplied by before working out where to put the cross-strokes. +% Some founts have metrics that disagree with reality quite wildly in +% terms of the specified italic angle. If the cross-strokes are too +% far to the right in the case of slanted versions of a fake euro, this +% second optional argument should be set to something less than 100 (50 +% or 25 are good values to try to begin with); if the cross-strokes are +% too far to the left, this second optional argument should be set to +% something more than 100 to begin with (200 is a good value to try to +% begin with). +%{\hfuzz=10.0376pt +% \begin{macrocode} +\newcommand*{\fakelighteuro}[1][0ex]{\def\EF@tmprlift{#1}\@fakelighteuro} +\newcommand*{\fakemediumeuro}[1][0ex]{\def\EF@tmprlift{#1}\@fakemediumeuro} +\newcommand*{\fakeheavyeuro}[1][0ex]{\def\EF@tmprlift{#1}\@fakeheavyeuro} +% \end{macrocode} +%} +%\end{macro} +%\end{macro} +%\end{macro} +% +% +%\begin{macro}{\@fakelighteuro} +%\begin{macro}{\@fakemediumeuro} +%\begin{macro}{\@fakeheavyeuro} +% These commands are the ones that change depending on which sort +% of slant you want on the rules; it's done like this so you can +% effectively have two optional arguments for the \comname{fake...euro} +% commands, which is awkward to arrange using \comname{newcommand}. +% These commands are meant to be called only from the three +% \comname{fake...euro} commands above. +% \begin{macrocode} +\DeclareOption{noslantfakeeuro} {% + \def\EF@fakeslant{0}% in case anyone's interested + \newcommand*{\@fakemediumeuro}[1][100] + {\mediumruleeuronoslant{\EF@tmprlift}{#1}} + \newcommand*{\@fakelighteuro}[1][100] + {\lightruleeuronoslant{\EF@tmprlift}{#1}} + \newcommand*{\@fakeheavyeuro}[1][100] + {\heavyruleeuronoslant{\EF@tmprlift}{#1}}} +\DeclareOption{normalslantfakeeuro} {% + \def\EF@fakeslant{1}% in case anyone's interested + \newcommand*{\@fakemediumeuro}[1][100] + {\mediumruleeuronorm{\EF@tmprlift}{#1}} + \newcommand*{\@fakelighteuro}[1][100] + {\lightruleeuronorm{\EF@tmprlift}{#1}} + \newcommand*{\@fakeheavyeuro}[1][100] + {\heavyruleeuronorm{\EF@tmprlift}{#1}}} +\DeclareOption{bigslantfakeeuro} {% + \def\EF@fakeslant{2}% in case anyone's interested + \newcommand*{\@fakemediumeuro}[1][100] + {\mediumruleeurobigslant{\EF@tmprlift}{#1}} + \newcommand*{\@fakelighteuro}[1][100] + {\lightruleeurobigslant{\EF@tmprlift}{#1}} + \newcommand*{\@fakeheavyeuro}[1][100] + {\heavyruleeurobigslant{\EF@tmprlift}{#1}}} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% +% The |\euros| command was more-or-less stolen from eurosym.sty: +% The Euro Symbol Package for \LaTeX\ by +% Henrik Theiling |<theiling@coli.uni-sb.de>|, +%\begin{verbatim} +% http://www.coli.uni-sb.de/~theiling +% \ProvidesPackage{eurosymbol} +% [1998/08/06 v1.1 European currency symbol ``Euro''] +%\end{verbatim} +% {\hfuzz=19.48749pt +% \begin{macrocode} +\DeclareOption{left}{\PassOptionsToPackage{left}{eurosym}% +\DeclareRobustCommand{\euros}[1]{\euro\nobreak\,#1}} +\DeclareOption{right}{\PassOptionsToPackage{right}{eurosym}% +\DeclareRobustCommand{\euros}[1]{#1\nobreak\,\euro}} +\DeclareOption{official}{\PassOptionsToPackage{official}{eurosym}} +\DeclareOption{gen}{\PassOptionsToPackage{gen}{eurosym}} +\DeclareOption{gennarrow}{\PassOptionsToPackage{gennarrow}{eurosym}} +\DeclareOption{genwide}{\PassOptionsToPackage{genwide}{eurosym}} +% +\ExecuteOptions{adobeeurofonts}% Use Adobe's Eurofonts by default +\ExecuteOptions{noeurosym}% Don't use eurosym by default +\ExecuteOptions{left}% Euro symbol on left by default +\ExecuteOptions{normalslantfakeeuro}% Fake euros with slight slant by default +\ExecuteOptions{nodebugreport}% No debugging reports by default +\ExecuteOptions{textcomp}% Load the textcomp package by default +\ExecuteOptions{nofixtieaccent}% Don't re-define the tie accent by +% default +% \end{macrocode} +%} +% +% \begin{macrocode} +\InputIfFileExists{eurofont.cfg}{}% +{\PackageWarningNoLine{eurofont}% +{I can't find the eurofont.cfg configuration file.\MessageBreak +Perhaps something is wrong with this installation?\MessageBreak +The \protect\euro\space command will work with default settings}% +\EFaddtolist{\userlist}{} +\EFaddtolist{\texteurolist}{} +\EFaddtolist{\chinaelist}{} +\EFaddtolist{\cmlist}{cmr,cmss,cmtt} +\EFaddtolist{\seriflist}{pbk,pnc,ppl,ptm,put} +\EFaddtolist{\sanslist}{pag,phv,psy,pzd} +\EFaddtolist{\monolist}{pcr} +\EFaddtolist{\fakemediumlist}{pzc} +\EFaddtolist{\fakelightlist}{} +\EFaddtolist{\fakeheavylist}{} +% +\EFaddtolist{\faketexteurolist}{} +% \end{macrocode} +% The following lists are used to decide which thickness line should be used +% for producing faked euro symbols. demibold and semibold are in the +% medium list because I reckon it's better to have a line that's a +% touch too light than too heavy. +% {\hfuzz=10.0376pt +% \begin{macrocode} +\EFaddtolist{\EFlightserieslist}{ul,el,l,ulc,elc,lc,ulx,elx,lx} +\EFaddtolist{\EFmediumserieslist}{m,mb,db,sb,mc,mbc,dbc,sbc,mx,mbx,dbx,sbx} +\EFaddtolist{\EFboldserieslist}{b,bx,bc} +\EFaddtolist{\EFultraboldserieslist}{eb,ub,ebc,ubc,ebx,ubx}% +% +% And two non-standard series: +% +\EFaddtolist{\EFultraboldserieslist}{xb,ebd} +} +% \end{macrocode} +%} +% +% Note: the stuff above should include more-or-less everything in the +% default config file. +% +% +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% If requested (as it is by default), load textcomp.sty if it exists; +% this conditional code and subsequent checking for +% \filename{textcomp.sty} should allow eurofont.sty to work with old or +% OT1-only \LaTeX s. +% +%{\hfuzz=0.5877pt +% \begin{macrocode} +\ifEF@textcomp\IfFileExists{textcomp.sty}{\RequirePackage{textcomp}}{}\fi +% \end{macrocode} +%} +% +% If the textcomp package is going to be loaded, it'll be loaded by +% now, so now is the time to re-define the tie accent (if this has been +% asked for): +% \begin{macrocode} +\ifEF@fixtieaccent \DeclareTextAccentDefault{\t}{OML}\fi +% \end{macrocode} +% +% \begin{macrocode} +\ifEF@eurosym% +% \end{macrocode} +% even if eurosym can't be loaded, ensure that some sort of euro is +% printed: +% \begin{macrocode} +\def\euro{\makefakeeuro} +% \end{macrocode} +% Load eurosym if asked and if possible +% \begin{macrocode} +\IfFileExists{eurosym.sty}{\RequirePackage{eurosym}}{% +\PackageError{eurofont}{I can't find the eurosym package}% +{You've used the eurosym option; this requires the eurosym package +which doesn't appear to be installed}}% +% \end{macrocode} +% Save eurosym's |\euro| as |\ESeuro|; if eurosym couldn't be +% loaded, |\euro| is still defined as |\makefakeeuro| (see above), so a +% sort of |\euro| symbol will be printed +% \begin{macrocode} +\let\ESeuro\euro +\fi +% \end{macrocode} +% +% \subsection{A spare command or more?} +% +% \begin{macro}{\showfontfamily} +% \begin{macrocode} +\newcommand{\showfontfamily}{ +\typeout{**********************************} +\typeout{* \protect\showfontfamily: + \space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space*} +\typeout{*\space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space*} +\typeout{* The current font family is: \f@family\space *} +\typeout{*\space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space*} +\typeout{***********************************} +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Code to fudge a euro if needed} +% +% The author commands to generate faked euro symbols now select one of four +% weights of cross-stroke to match light, medium, bold, and ultrabold. +% This should do. +% +%\begin{macro}{\EF@crossstrokes} +% +% Arguments as noted; this is the command that draws the horizontal +% strokes for a fake euro symbol. +% \hfuzz=14.76254pt +% \begin{macrocode} +\def\EF@crossstrokes#1#2#3#4#5#6#7#8#9{% +% #1 = width of C +% #2 = height of C +% #3 = depth of C +% #4 = back shift as percentage of #1 +% #5 = strokelen as percentage of #1 +% #6 = strokelen of bottom rule as percentage of #1 +% #7 = thickness of cross-strokes +% #8 = centre line spacing of cross-strokes +% #9 = extra rule lift +% Need to lift cross strokes by 1/2 (height C - height cross-strokes) +% +% N.B. slanted founts are an interesting thingy. +% The metrics often lie about the slant, so \EF@slantcorr is a +% percentage to multiply the slant/point figure from the tfm file by. +% Start out by ensuring that it exists: +\@ifundefined{EF@slantcorr}{\def\EF@slantcorr{100}}{}% +% \fontdimen1 is slant per point (in points). +\@tempdima=#8% +% \typeout{rule spacing = \the\@tempdima}% +\@tempdima=\fontdimen1\font% +% \typeout{slant per point = \the\@tempdima}% +% now apply fudge factor: +\@tempdima=0.1\@tempdima% +\@tempdima=\EF@slantcorr\@tempdima% +\@tempdima=0.1\@tempdima% +% (the eccentric multiplication is to reduce rounding error and +% reduce the risk of the dimen getting too big) +\edef\@tempcmda{\strip@pt\@tempdima}% +% \typeout{fudged slant per point/points = \@tempcmda}% +% \@tempdima=#1% +\@tempdima=#2% Changed from width #1 to height #2 +\@tempdima=\@tempcmda\@tempdima% +% \typeout{Width of C = #1}% +% \typeout{Height of C = #2}% +% \typeout{slant in points (for C) = \the\@tempdima}% +\@tempdima=0.5\@tempdima% +% \typeout{half slant in points (for C) = \the\@tempdima}% +% % now apply fudge factor: +% \@tempdima=0.1\@tempdima% +% \@tempdima=\EF@slantcorr\@tempdima% +% \@tempdima=0.1\@tempdima% +% % (the eccentric multiplication is to reduce rounding error and +% % reduce the risk of the dimen getting too big) +\edef\EF@slantC{\the\@tempdima}% +% \typeout{final half slant in points (for C) = \EF@slantC}% +% +% \EF@slantC is now 1/2 the slant of a C; +% need this for shifting back and forth +% +% Now calculate horizontal offset between rules +% \@tempcmda is still the fudged slant per point/points, so... +\@tempdimb=#8% centre line spacing of rules +\@tempdimb=\@tempcmda\@tempdimb% +\@tempdimb=0.5\@tempdimb% +\edef\EF@rulehoffset{\the\@tempdimb}% +% +% below is the old, mad, and incorrect (?) calc +% +% \begin{madness} +% +% \@tempdima=#2 +% \@tempdima=100\@tempdima +% \advance\@tempdima by0.5pt\@settopoint\@tempdima +% \edef\@tempcmda{\strip@pt\@tempdima}% +% \@tempdima=100pt% +% \divide\@tempdima by\@tempcmda% +% \edef\@tempcmda{\strip@pt\@tempdima}% +% \@tempdima=#8% +% \@tempdima=\@tempcmda\@tempdima% +% \@tempdimb=\EF@slantC% +% \@tempdimb=2\@tempdimb% since \EF@slantC is actually 1/2 slantC +% \edef\@tempcmda{\strip@pt\@tempdimb}% +% \@tempdima=\@tempcmda\@tempdima% +% \@tempdima=0.5\@tempdima% +% % +% \edef\EF@rulehoffset{\the\@tempdima}% +% +% \end{madness} +% +% \typeout{\protect\EF@rulehoffset\space = \EF@rulehoffset}% +% +% \EF@ruleoffset is now 1/2 the horizontal offset between rules; +% need this for shifting back and forth even more. +% +\@tempdima=#1% \ +\@tempdima=0.01\@tempdima% \ +\@tempdima=#4\@tempdima% } move back to add cross-strokes +\kern-\@tempdima% / +\kern\EF@slantC% / Slant correction forward for italic +% lift = (height C - depth C - rule gap - rule thickness)/2 + offset +% Note that `rule gap' is the distance between the centre lines of +% the rules, not the gap between them +\@tempdima=#2% \ +\advance\@tempdima by-#3% \ +\advance\@tempdima by-#8% \ calc lift of cross-strokes +\advance\@tempdima by-#7% / +\@tempdima=0.5\@tempdima% / +\advance\@tempdima by#9% / +% 0.17ex was 1/2 height c/s; height 0.07ex; spacing 0.2ex +\@tempdimc=#8% \ calc cross-stroke spacing +\advance\@tempdimc by-#7% / +\raisebox{\@tempdima}{% +\vbox{% \ +\@tempdimb=#1% \ \ +\@tempdimb=0.01\@tempdimb% } calc width of cross-stroke +\@tempdimb=#5\@tempdimb% / \ +\hbox{\kern\EF@rulehoffset% \ top rule +\vbox{\hrule width\@tempdimb height#7}}% \ +\nointerlineskip% } draw cross-strokes +\vskip\@tempdimc% / (using \@tempdima/b/c from above) +\@tempdimb=#1% \ / +\@tempdimb=0.01\@tempdimb% } calc width of cross-stroke +\@tempdimb=#6\@tempdimb% / / +\hbox{\kern-\EF@rulehoffset% / +\vbox{\hrule width\@tempdimb height#7}}}}% bottom rule +\@tempcnta=#4% \ +\advance\@tempcnta by-#5% (aha!) \ +\@tempdima=#1% \ +\@tempdima=0.01\@tempdima% \ move forward to end of C +\@tempdima=\@tempcnta\@tempdima% / +\kern\@tempdima% / +% shift by slant amount / +\kern-\EF@slantC% / slant correction +} +% +% \end{macrocode} +%\end{macro} +%\begin{macro}{\EF@fakeeurobase} +% This command contains the letter that's used as the base to fake a +% euro symbol -- it's used by the \comname{EFruleeuro} command. +% \begin{macrocode} +\providecommand\EF@fakeeurobase{C} +% \end{macrocode} +% \end{macro} +% +%\begin{macro}{\EFruleeuro} +% The internal command to generate faked euro symbols; meant to be used in +% config files and things if the user wants to create new sorts of fake +% euro symbols. +% \begin{macrocode} +\def\EFruleeuro#1#2#3#4#5#6#7{{% Confine defs to \EFruleeuro +% #1 = percentage of width of C that back shift of +% rules is; 110 usually +% #2 = percentage of width of C that width of +% top rules is +% #3 = percentage of width of C that width of +% bottom rule is +% #4 = rule thickness (dimen) +% #5 = rule spacing (dimen) +% #6 = extra rule lift (dimen) +% #7 = slant fudge factor (percentage); this is used to +% scale the slant per point dimension from the tfm +% file; it's often wrong in terms of the C glyph +\settowidth{\@tempdima}{\EF@fakeeurobase}% +\settoheight{\@tempdimb}{\EF@fakeeurobase}% +\settodepth{\@tempdimc}{\EF@fakeeurobase}% +\edef\EF@Cwidth{\the\@tempdima}% +\edef\EF@Cheight{\the\@tempdimb}% +\edef\EF@Cdepth{\the\@tempdimc}% +\advance\@tempdimb by\@tempdimc% +% \edef\totalCheight{\the\@tempdimb}%\totalCheight is height+depth of C +% \typeout{\protect\EF@Cwidth\space = \EF@Cwidth}% +% \typeout{\protect\EF@Cheight\space = \EF@Cheight}% +% \typeout{\protect\EF@Cdepth\space = \EF@Cdepth}% +% First job: deal with slant fudge +\def\EF@slantcorr{#7}% +\ifx\EF@slantcorr\@empty\def\EF@slantcorr{100}\fi% +% Ensure that \EF@slantcorr is 100 (%) if not specified. This +% parameter is used by \EF@crossstrokes +\def\EF@backshift{#1}% percentage of \EF@Cwidth that back shift is +\@tempdimb=0.01\@tempdima% swapped these two lines; +\@tempdimb=\EF@backshift\@tempdimb% dimen can get too big otherwise +% \@tempdimb now = length of shift back to add cross-strokes +% Note that this ignores the italic corrections. Is this right? +% (ignoring italic correction seems to be right; but... The +% introduction of the horizontal offset to the rules might not be +% right to ignore; it seems suitable in tests, but? Since the amount +% should always be small, I'll ignore it for now - dealing with it is +% awkward and the offset *should* help things fit together better.) +% \@tempdima now = width of C +% typeset the faked euro +% +% Assumption: that the cross-strokes don't extend to the right of the +% C (allows the width calculations to be a bit simpler than they +% otherwise would be). +% +% \@tempdima = width of C; \@tempdimb = \EF@backshift x width of C +% \typeout{\the\@tempdima\space = width of C}% +% \typeout{\the\@tempdimb\space = \protect\EF@backshift x width of C}% +% Following line: make box = largest of (\@tempdima,\@tempdimb) +\ifdim\@tempdimb>\@tempdima\@tempdima=\@tempdimb\fi% +\makebox[\@tempdima][r]% +{\EF@fakeeurobase\EF@crossstrokes{\EF@Cwidth}{\EF@Cheight}{\EF@Cdepth}% + {\EF@backshift}{#2}{#3}{#4}{#5}{#6}}% +}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\SelectOnWeight} +% +%\begin{verbatim} +% if the current fount series: +% is in the light list, do #1; else +% if it's in the medium list, do #2; else +% if it's in the bold list, do #3; else +% if it's in the ultrabold list, do #4; else +% do #2 +%\end{verbatim} +% +% \begin{macrocode} +\def\SelectOnWeight#1#2#3#4{% +\EF@checkiflisted{\f@series}{\EFlightserieslist}% +\ifEF@listed\EF@debugrep{SelectOnWeight light}#1% +\else +\EF@checkiflisted{\f@series}{\EFmediumserieslist}% +\ifEF@listed\EF@debugrep{SelectOnWeight medium}#2% +\else +\EF@checkiflisted{\f@series}{\EFboldserieslist}% +\ifEF@listed\EF@debugrep{SelectOnWeight bold}#3% +\else +\EF@checkiflisted{\f@series}{\EFultraboldserieslist}% +\ifEF@listed\EF@debugrep{SelectOnWeight ultrabold}#4% +\else\EF@debugrep{SelectOnWeight default to medium}% +#2% +\fi\fi\fi\fi} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mediumruleeuronorm} +%\begin{macro}{\mediumruleeuronoslant} +%\begin{macro}{\mediumruleeurobigslant} +% This is the standard command for faking a euro symbol. It selects +% one of four weights of cross-stroke depending on the current fount +% series. +% +% The light and ultra bold weights are fairly arbitrary. \hfuzz=57.28705pt +% +% \begin{macrocode} +\providecommand*{\mediumruleeuronorm}[2]{\EF@debugrep{medium rule euro norm}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{72}{0.04ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{72}{0.07ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{72}{0.14ex}{0.27ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{72}{0.18ex}{0.27ex}{#1}{#2}}% ultra bold - new numbers +} +\providecommand*{\mediumruleeuronoslant}[2]{\EF@debugrep{medium rule euro noslant}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{80}{0.04ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{80}{0.07ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{80}{0.14ex}{0.27ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{80}{0.18ex}{0.27ex}{#1}{#2}}% ultra bold +} +\providecommand*{\mediumruleeurobigslant}[2]{\EF@debugrep{medium rule euro bigslant}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{60}{0.04ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{60}{0.07ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{60}{0.14ex}{0.27ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{60}{0.18ex}{0.27ex}{#1}{#2}}% ultra bold +} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\lightruleeuronorm} +%\begin{macro}{\lightruleeuronoslant} +%\begin{macro}{\lightruleeurobigslant}\hfuzz=47.83716pt +% A complementary command for faking a euro with lighter cross-strokes; +% suitable for founts like Computer Modern Roman. +% \begin{macrocode} +\providecommand*{\lightruleeuronorm}[2]{\EF@debugrep{light rule euro norm}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{72}{0.02ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{72}{0.04ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{72}{0.07ex}{0.27ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{72}{0.14ex}{0.27ex}{#1}{#2}}% ultra bold +} +\providecommand*{\lightruleeuronoslant}[2]{\EF@debugrep{light rule euro noslant}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{80}{0.02ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{80}{0.04ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{80}{0.07ex}{0.27ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{80}{0.14ex}{0.27ex}{#1}{#2}}% ultra bold +} +\providecommand*{\lightruleeurobigslant}[2]{\EF@debugrep{light rule euro bigslant}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{60}{0.02ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{60}{0.04ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{60}{0.07ex}{0.27ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{60}{0.14ex}{0.27ex}{#1}{#2}}% ultra bold +} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\heavyruleeuronorm} +%\begin{macro}{\heavyruleeuronoslant} +%\begin{macro}{\heavyruleeurobigslant} +% A complementary command for faking a euro with heavy cross-strokes; +% it seemed inevitable after the other two. I'm not sure that there's +% any particular sense to the bold and ultra bold values in this case. +% +% I'm still not \emph{completely} happy with this, but it's much better +% now.\hfuzz=47.83716pt +% \begin{macrocode} +\providecommand*{\heavyruleeuronorm}[2]{\EF@debugrep{heavy rule euro norm}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{72}{0.14ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{72}{0.18ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{72}{0.22ex}{0.30ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{72}{0.26ex}{0.33ex}{#1}{#2}}% ultra bold +} +\providecommand*{\heavyruleeuronoslant}[2]{\EF@debugrep{heavy rule euro noslant}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{80}{0.14ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{80}{0.18ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{80}{0.22ex}{0.30ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{80}{0.26ex}{0.33ex}{#1}{#2}}% ultra bold +} +\providecommand*{\heavyruleeurobigslant}[2]{\EF@debugrep{heavy rule euro bigslant}% +\SelectOnWeight% +{\EFruleeuro{110}{80}{60}{0.14ex}{0.27ex}{#1}{#2}}% light +{\EFruleeuro{110}{80}{60}{0.18ex}{0.27ex}{#1}{#2}}% medium +{\EFruleeuro{110}{80}{60}{0.22ex}{0.30ex}{#1}{#2}}% bold +{\EFruleeuro{110}{80}{60}{0.26ex}{0.33ex}{#1}{#2}}% ultra bold +} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\subsection{Code to use marvosym} +% +% Code to use marvosym fount; needs faked italic tfm (and \dvidriver +% able to fake an italic) +% +%\begin{macro}{\EF@mvs} +% \begin{macrocode} +\def\EF@mvs{\fontencoding{U}\fontfamily{zmvs}\fontseries{m}\selectfont} +% \end{macrocode} +%\end{macro} +% +% Note that the |\mbox| is now redundant; leave it in in case +% |\EF@pmb| changes again +% +%\begin{macro}{\marvosymeuro} +% \begin{macrocode} +\providecommand{\marvosymeuro}[1]{% +\EF@debugrep{marvosymeuro}% +\SelectOnWeight% +{\EF@mvs\char#1}% light +{\EF@mvs\char#1}% medium +{\mbox{\EF@pmsb{\EF@mvs\char#1}}}% bold +{\mbox{\EF@pmsb{\EF@mvs\char#1}}}% ultra bold +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\marvosymserifeuro} +%\begin{macro}{\marvosymsanseuro} +%\begin{macro}{\marvosymmonoeuro} +% \begin{macrocode} +\providecommand + {\marvosymserifeuro}{\EF@debugrep{marvosymserifeuro}\marvosymeuro{101}} +\providecommand + {\marvosymsanseuro}{\EF@debugrep{marvosymsanseuro}\marvosymeuro{99}} +\providecommand + {\marvosymmonoeuro}{\EF@debugrep{marvosymmonoeuro}\marvosymeuro{100}} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% +% \subsection{Faking a bold character} +% \label{sec:code:EFpmb} +% +% Original comments: +% |\EF@pmb| fakes bold; modified from the \TeX book +% +% I don't pretend to understand it all, but this seems to do the job +% better, and ensures that the width taken by the box is the width taken +% by the printed glyphs. This is used by |\marvosymeuro| +% Original code: +%\begin{verbatim} +% \def\EF@pmb#1{\makebox{\setbox\@tempboxa=\hbox{#1}% +% \kern0em\copy\@tempboxa\kern-\wd\@tempboxa +% \kern.025em\raise.0216em\copy\@tempboxa\kern-\wd\@tempboxa +% \kern.025em\box\@tempboxa }} +%\end{verbatim} +% +% This code produces a better faked bold; the idea of using a hexagonal +% arrangement was suggested by Donald Arseneau. You can probably tell +% I wrote the |\EF@pmb| macro myself :-) I might move to an +% octagonal arrangement later on. +% +% Marvosym complicates matters; a vertical shift of |0.866 x 0.020em| +% makes the horizontal strokes collide when you fake a bold Marvosym +% euro symbol. The solution is to move away from a regular hexagon and +% use a smaller vertical shift. +% +% So now there's two commands: \comname{EF@pmb} for normal fake bold, +% and \comname{EF@pmsb} (semi bold) for the Marvosym euro symbols. +% It's only slightly less heavy than the usual version. +% +%\begin{macro}{\EF@pmbshift} +%\begin{macro}{\EF@pmb} +%\begin{macro}{\EF@pmsb} +% \begin{macrocode} +\newlength{\EF@pmbshift} +% +\newcommand{\EF@pmsb}[1]{% +\EF@debugrep{EF@pmsb}% +\EF@pmbshift=0.020em% as was +\hbox{% +\rlap{#1}% +\kern0.5\EF@pmbshift% +\raisebox{0.50\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\raisebox{-0.50\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\kern1\EF@pmbshift% +\raisebox{0.50\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\raisebox{-0.50\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\kern0.5\EF@pmbshift% +#1}} +% +\newcommand{\EF@pmb}[1]{% +\EF@debugrep{EF@pmb}% +\EF@pmbshift=0.020em% as was +\hbox{% +\rlap{#1}% +\kern0.5\EF@pmbshift% +\raisebox{0.866\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\raisebox{-0.866\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\kern1\EF@pmbshift% +\raisebox{0.866\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\raisebox{-0.866\EF@pmbshift}[0pt][0pt]{\rlap{#1}}% +\kern0.5\EF@pmbshift% +#1}} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% +% +% \subsection{The code to select and print euro symbols} +% +% +% But better yet: add a pair of options: `|adobeeurofont|' or +% `|marvosym|'. The |marvosym| option will set up +% |\monoeuro| (etc) to use marvosym glyphs; the |adobeeurofont| option +% (default) will set |\monoeuro| (etc) to use adobe glyphs. +% +% Do this, \emph{and} add documentation on fiddling with |\userlist| (etc) +% so you can use both +% +% |\texteuro| is a problem: this command is here to help. +%\begin{verbatim} +% if <fam> is in \faketexteurolist, #2, +% else +% if \texteuro is defined and TS1<fam>.fd exists #1, +% else #2 +% fi fi +%\end{verbatim} +%\begin{macro}{\EFiftexteuroexists} +% \begin{macrocode} +\def\EFiftexteuroexists#1#2{% +\EF@checkiflisted{\f@family}{\faketexteurolist}% +\ifEF@listed#2% +\else +\ifx\texteuro\@undefined#2% if \texteuro doesn't exist, #2 and finish +\else% +\IfFileExists{ts1\f@family.fd}% +{#1}% if ts1<fam>.fd exists, #1. Can't usefully test for glyph existing +{#2}% if ts1<fam>.fd doesn't exist, #2 and finish +\fi\fi} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\zpeutteuro} +%\begin{macro}{\zpeureuro} +%\begin{macro}{\zpeusseuro} +% Define these for |\monoeuro| etc., to use. Note that the command +% names are such that if you happen to be in |zpeutt| and say |\euro|, +% you'll get |\zpeutteuro| executed straight away. I don't have to +% list these fount families in |\seriflist| etc. +% \begin{macrocode} +\providecommand{\zpeutteuro}{\EF@debugrep{zpeutteuro}% +{\fontencoding{U}\fontfamily{zpeutt}\selectfont e}} +\providecommand{\zpeureuro}{\EF@debugrep{zpeureuro}% +{\fontencoding{U}\fontfamily{zpeur}\selectfont e}} +\providecommand{\zpeusseuro}{\EF@debugrep{zpeusseuro}% +{\fontencoding{U}\fontfamily{zpeuss}\selectfont e}} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% +% Use either marvosym or Adobe's Eurofonts for serif/sans/mono lists +% +% These might have already been defined in the cfg file; don't want +% to over-ride those definitions, so |\providecommand| them. +% +% It's not safe to assume that either Adobe's Eurofonts or the Marvosym +% fount are in fact installed, but I don't see any easy way of finding +% out the truth of the matter. I suspect it's best to leave it up to the +% user to get the configuration right. Careful with that documentation, +% Eugene. +% +%\begin{macro}{\monoeuro} +%\begin{macro}{\serifeuro} +%\begin{macro}{\sanseuro} +% \begin{macrocode} +\ifEF@marvosym +\providecommand{\monoeuro}{\EF@debugrep{monoeuro}{\marvosymmonoeuro}} +\providecommand{\serifeuro}{\EF@debugrep{serifeuro}{\marvosymserifeuro}} +\providecommand{\sanseuro}{\EF@debugrep{sanseuro}{\marvosymsanseuro}} +\else +\providecommand{\monoeuro}{\EF@debugrep{monoeuro}\zpeutteuro} +\providecommand{\serifeuro}{\EF@debugrep{serifeuro}\zpeureuro} +\providecommand{\sanseuro}{\EF@debugrep{sanseuro}\zpeusseuro} +\fi +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% +% Slightly more involved code for \comname{makeusereuro}: make it issue a +% warning if it's not user defined. +% +%\begin{macro}{\makeusereuro} +% \begin{macrocode} +\providecommand{\makeusereuro} + {\EF@debugrep{makeusereuro}\makefakemediumeuro% +% +\PackageWarningNoLine{eurofont}{% +You have tried to use the \protect\makeusereuro\space command +to\MessageBreak print a euro symbol, but you have not defined +the\MessageBreak \protect\makeusereuro\space command. This has +probably happened in\MessageBreak the \protect\euro\space command. I +shall print a faked euro symbol\MessageBreak for now}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\chinaeeuro} +% I have some misgivings about faking a bold from this euro symbol; +% it's a beautiful glyph which doesn't really deserve this sort of +% abuse. +% +% Removed the anomalous parameter from definition of |\chinaeeuro|. +% What was I thinking of? +% +% And finally\ldots\ Test for the existence of china2e.sty, and assume +% that China2e's not been installed if the package file is missing. I'd +% rather test for the existence of the tfm file, but I don't know how: +% if you know, I'd appreciate an email explaining how. +% +% \begin{macrocode} +\DeclareFontFamily{OT1}{chin}{} +\DeclareFontShape{OT1}{chin}{m}{n}{<-> china10}{} +% +\providecommand{\chinaeeuro}{% +\IfFileExists{china2e.sty}% +{\EF@debugrep{chinaeeuro}% +\SelectOnWeight% +{{\usefont{OT1}{chin}{m}{n}\char255}}% light +{{\usefont{OT1}{chin}{m}{n}\char255}}% medium +{\mbox{\EF@pmb{\usefont{OT1}{chin}{m}{n}\char255}}}% bold +{\mbox{\EF@pmb{\usefont{OT1}{chin}{m}{n}\char255}}}% ultra bold +}% +{\EF@debugrep{chinaeeuro - we have a problem}% +\PackageWarning{eurofont}{% +The \protect\euro\space command +is trying to print a euro symbol\MessageBreak +from the China2e fount, but I can't find the file\MessageBreak +china2e.sty.\MessageBreak\MessageBreak +I'm assuming that you've not got the China2e font\MessageBreak +installed, so I'm printing a faked euro instead\MessageBreak}% +\makefakeeuro}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\cmrfakeeuro} +%\begin{macro}{\cmssfakeeuro} +%\begin{macro}{\cmttfakeeuro} +% \begin{macrocode} +\providecommand{\cmrfakeeuro}{% +\EF@debugrep{\protect\cmrfakeeuro}\fakelighteuro} +% +\providecommand{\cmssfakeeuro}{% +\EF@debugrep{\protect\cmssfakeeuro}\fakemediumeuro} +% +\providecommand{\cmttfakeeuro}{% +\EF@debugrep{\protect\cmttfakeeuro}\fakemediumeuro} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\makefakeeuro} +%\begin{macro}{\makefakeheavyeuro} +%\begin{macro}{\makefakemediumeuro} +%\begin{macro}{\makefakelighteuro} +% If \comname{<fam>fakeeuro} exists, do \comname{<fam>fakeeuro}; else +% \comname{fakelighteuro}, \comname{fake\-mediumeuro}, or +% \comname{fakeheavyeuro} depending). +% +% |\providecommand|s again so that these definitions can be +% over-ridden in the config file +% +% \begin{macrocode} +\providecommand{\makefakemediumeuro}{\EF@debugrep{makefakemediumeuro}% +\@ifundefined{\f@family fakeeuro}{\fakemediumeuro}% +{\csname\f@family fakeeuro\endcsname}} +% +\providecommand{\makefakelighteuro}{\EF@debugrep{makefakelighteuro}% +\@ifundefined{\f@family fakeeuro}{\fakelighteuro}% +{\csname\f@family fakeeuro\endcsname}} +% +\providecommand{\makefakeheavyeuro}{\EF@debugrep{makefakeheavyeuro}% +\@ifundefined{\f@family fakeeuro}{\fakeheavyeuro}% +{\csname\f@family fakeeuro\endcsname}} +% +\providecommand{\makefakeeuro}{\EF@debugrep{makefakeeuro}% +\@ifundefined{\f@family fakeeuro}{% +% if \<fam>fakeeuro doesn't exist, do this: +\EF@checkiflisted{\f@family}{\fakelightlist}\relax + \ifEF@listed \makefakelighteuro + \else + \EF@checkiflisted{\f@family}{\fakemediumlist}\relax + \ifEF@listed \makefakemediumeuro + \else + \EF@checkiflisted{\f@family}{\fakeheavylist}\relax + \ifEF@listed \makefakeheavyeuro + \else% If <fam>'s not listed, + \makefakemediumeuro% print medium faked euro + \fi \fi \fi +}% +% If \<fam>fakeeuro does exist, execute it: +{\csname\f@family fakeeuro\endcsname}} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +% +% This turned into a heavy bummer. Re-wrote the faking code to push +% the top rule to the right and the bottom rule to the left when the +% fount slants. +% +%\begin{macro}{\pzcfakeeuro} +% \begin{macrocode} +\providecommand{\pzcfakeeuro}{\EF@debugrep{pzcfakeeuro}% +% \@tempdima=1ex% you what? +% commented out until I find out what I thought I was doing +\fakemediumeuro[-0.1ex]} +% \end{macrocode} +%\end{macro} +% +% \subsection{Make euro commands} +% +% Can't just |\let| one equal to the other because of the debugging +% reports. +%\begin{macro}{\maketexteuro} +%\begin{macro}{\cmeuro} +% \begin{macrocode} +\providecommand{\maketexteuro}{\EF@debugrep{maketexteuro}% +\EFiftexteuroexists{\texteuro}{\makefakeeuro}} +% +\providecommand{\cmeuro}{\EF@debugrep{cmeuro}% +\EFiftexteuroexists{\texteuro}{\makefakeeuro}} +% \end{macrocode} +%\end{macro} +%\end{macro} +% +% If the eurosym option's been specified, switch to eurosym's version of +% the euro for: the Computer Modern families, serifeuro, sanseuro, and +% monoeuro, and the default euro. +% +% This is the only place where these euro commands are defined; use +% \comname{provide\-command} so they can be over-ridden by the config +% file. +% +% \begin{macro}{\makecmeuro} +% \begin{macro}{\makedefaulteuro} +% \begin{macro}{\makeserifeuro} +% \begin{macro}{\makesanseuro} +% \begin{macro}{\makemonoeuro}\hfuzz=33.66232pt +% \begin{macrocode} +\ifEF@eurosym +\EF@debugrep{Using eurosym's euro command} +\providecommand{\makecmeuro} {\EF@debugrep{makecmeuro; ESeuro}\ESeuro} +\providecommand{\makedefaulteuro}{\EF@debugrep{makedefaulteuro; ESeuro}\ESeuro} +\providecommand{\makeserifeuro} {\EF@debugrep{makeserifeuro; ESeuro}\ESeuro} +\providecommand{\makesanseuro} {\EF@debugrep{makesanseuro; ESeuro}\ESeuro} +\providecommand{\makemonoeuro} {\EF@debugrep{makemonoeuro; ESeuro}\ESeuro} +\else +\EF@debugrep{Not using eurosym's euro command} +\providecommand{\makecmeuro} {\EF@debugrep{makecmeuro }\cmeuro} +\providecommand{\makedefaulteuro}{\EF@debugrep{makedefaulteuro}\makefakeeuro} +\providecommand{\makeserifeuro} {\EF@debugrep{makeserifeuro }\serifeuro} +\providecommand{\makesanseuro} {\EF@debugrep{makesanseuro }\sanseuro} +\providecommand{\makemonoeuro} {\EF@debugrep{makemonoeuro }\monoeuro} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\makechinaeeuro} +% This command needs a test to detect the existence of the china2e tfm +% file before trying to use the fount +% \begin{macrocode} +\providecommand{\makechinaeeuro} + {\EF@debugrep{makechinaeeuro}\chinaeeuro} +% \end{macrocode} +% \end{macro} +% +% Note: |\makecmeuro|+|\maketexteuro| could have identical definitions, +% since |\makefakeeuro| will call |\<fam>euro| if it exists before trying the +% generic fake euro code. (much later) Does anyone know what I mean by this? +% +% {\small\hfuzz=32.4455pt +%\begin{verbatim} +% If \f@family is in \userlist, \makeusereuro +% else +% if \<fam>euro exists, \<fam>euro +% else +% if \f@family is in \texteurolist, \maketexteuro +% else +% if \@family is in \chinaelist, \makechinaeeuro +% else +% if \f@family is in \cmlist, \makecmeuro +% else +% if \f@family is in \serifeurolist, \makeserifeuro +% else +% if \f@family is in \sanseurolist, \makesanseuro +% else +% if \f@family is in \monoeurolist, \makemonoeuro +% else +% if \f@family is in \makefakemediumeurolist, \makefakemediumeuro +% else +% if \f@family is in \makefakeheavyeurolist, \makefakeheavyeuro +% else +% if \f@family is in \makefakelighteurolist, \makefakelighteuro +% else \makedefaulteuro +% fi fi fi fi fi fi fi fi fi fi fi +%\end{verbatim} +%} +% |\makecmeuro|: +%\begin{verbatim} +% \texteuro if: +% not in \faketexteurolist and TS1<fam>.fd and \texteuro exist, +% \makefakeeuro otherwise +%\end{verbatim} +% +% |\maketexteuro|: +%\begin{verbatim} +% \texteuro if: +% not in \faketexteurolist and TS1<fam>.fd and \texteuro exist, +% \makefakeeuro otherwise +%\end{verbatim} +% +% This is it\ldots\ The |\relaxes| are in there just to suppress unwanted +% spaces and let me use the visual formatting in the command that I +% wanted to. +% +%\begin{macro}{\EFeuro}\hfuzz=66.73694pt +% \begin{macrocode} +\DeclareRobustCommand{\EFeuro}{\EF@debugrep{start EFeuro: + \f@encoding/\f@family/\f@series/\f@shape}% + \EF@checkiflisted{\f@family}{\userlist}\relax + \ifEF@listed\EF@debugrep{EFeuro makeuser euro}\makeusereuro + \else + \@ifundefined{\f@family euro}{\@tempswatrue}% test for \<fam>euro + {\EF@debugrep{EFeuro \f@family euro}\relax% do \<fam>euro + \@tempswafalse\csname\f@family euro\endcsname}\relax% do \<fam>euro + \if@tempswa% if \<fam>euro doesn't exist, do the next test + \EF@checkiflisted{\f@family}{\texteurolist}\relax + \ifEF@listed \EF@debugrep{EFeuro texteuro}\maketexteuro + \else + \EF@checkiflisted{\f@family}{\chinaelist}\relax + \ifEF@listed \EF@debugrep{EFeuro China2e euro}\makechinaeeuro + \else + \EF@checkiflisted{\f@family}{\cmlist}\relax + \ifEF@listed \EF@debugrep{EFeuro cm euro}\makecmeuro + \else + \EF@checkiflisted{\f@family}{\seriflist}\relax + \ifEF@listed \EF@debugrep{EFeuro serif euro}\makeserifeuro + \else + \EF@checkiflisted{\f@family}{\sanslist}\relax + \ifEF@listed \EF@debugrep{EFeuro sans euro}\makesanseuro + \else + \EF@checkiflisted{\f@family}{\monolist}\relax + \ifEF@listed \EF@debugrep{EFeuro mono euro}\makemonoeuro + \else + \EF@checkiflisted{\f@family}{\fakelightlist}\relax + \ifEF@listed \EF@debugrep{EFeuro fake light euro}\makefakelighteuro + \else + \EF@checkiflisted{\f@family}{\fakemediumlist}\relax + \ifEF@listed \EF@debugrep{EFeuro fake med euro}\makefakemediumeuro + \else + \EF@checkiflisted{\f@family}{\fakeheavylist}\relax + \ifEF@listed \EF@debugrep{EFeuro fake heavy euro}\makefakeheavyeuro + \else \EF@debugrep{EFeuro default euro}\makedefaulteuro + \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} +% \end{macrocode} +%\end{macro} +% +% Now then\ldots \packname{eurofont's} euro-generating command is +% defined as \comname{EFeuro} to begin with. That's so that it can be +% defined without clashing with anything else (with luck). The following +% code is to try and ensure that the \comname{euro} command used in the +% document is what \packname{eurofont} wants it to be. If +% \packname{eurosym}'s been loaded, its \comname{euro} command is saved +% as \comname{ESeuro} just after its been loaded, and if any command +% called \comname{euro} exists at all, it's renamed \comname{oldeuro} +% at the \comname{begin\{document\}} command. Yes, that does mean that +% \comname{ESeuro} and \comname{oldeuro} can end up identical if +% you've loaded the \packname{eurosym} package. +% +% \begin{macrocode} +\AtBeginDocument{% +% \@ifpackageloaded{eurosym}{\let\ESeuro\euro}{}% save eurosym's \euro +% No: this is redundant to an extent. If the eurosym option has been +% specified, \ESeuro has already be \let to \euro. Best to leave it +% at that, I think: any already-defined \euro command will be saved +% as \EFoldeuro anyway. +\let\oldeuro\euro% save the previous \euro command (if one exists) +\let\euro\EFeuro}% make the \euro command be \EFeuro come what may +% \end{macrocode} +% +% \begin{macrocode} +\endinput +% \end{macrocode} +% \Finale +%\iffalse +%</package> +%% +%% End of file `eurofont.sty' +%% \fi
\ No newline at end of file diff --git a/Master/texmf-dist/doc/fonts/eurofont/eurofont.ins b/Master/texmf-dist/doc/fonts/eurofont/eurofont.ins new file mode 100644 index 00000000000..65c20f0b983 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/eurofont.ins @@ -0,0 +1,451 @@ +\iffalse +Copyright 1998 Rowland McDonnell +This file is part of the eurofont distribution. You can distribute it +freely provided that you include the rest of the eurofont distribution +with this file and make no more than a nominal charge to cover the +costs of distributing it. + +If you would like to change the contents of this file, please make a +copy of it under a different name and change that instead. Keep my +copyright notice attached, but make it clear that the new file is your +responsibility so you get the credit for the improvements and I don't +get blamed for the bugs. +\fi +\ProvidesFile{eurofont.ins} +% +% fd file for Marvosym: +\begin{filecontents}{uzmvs.fd} +% Filename: uzmvs.fd +% Copyright 1998 Rowland McDonnell +% email rebecca@astrid.u-net.com +% +% Fount definitions for Marvosym +% +% THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY +% +% The slightly strange name is because Marvosym already has an +% official name and I'd like to avoid any conflicts. So make the +% Marvosym used by eurofont.sty a bizzare one (z prefix) because +% nothing else seems right to me. +% +% Please don't use this file for anything directly: it's meant to +% provide NFSS fount definitions so that the eurofont package can make +% a half-decent job of printing euro symbols using the Marvosym +% fount. Because of this, it's a bit eccentric to match eurofont's +% eccentric way of doing things. +% +% If you want to modify the code in this file, save the file under a +% different name and modify *that*. Please make sure you add a note +% indicating that you've changed things. +% +\ProvidesFile{uzmvs.fd} + [1998/10/10 Hacked by RJMM font definitions for U/zmvs.] +% +\DeclareFontFamily{U}{zmvs}{} +\DeclareFontShape{U}{zmvs}{m}{n} {<-> fmvr8x}{} +% +% Extra font defs needed +\DeclareFontShape{U}{zmvs}{m}{it}{<-> fmvri8x}{} +\DeclareFontShape{U}{zmvs}{m}{sl}{<-> fmvri8x}{} +\DeclareFontShape{U}{zmvs}{m}{sc}{<-> fmvr8x}{} +% +\DeclareFontShape{U}{zmvs}{l}{n} {<-> fmvr8x}{} +\DeclareFontShape{U}{zmvs}{l}{it}{<-> fmvri8x}{} +\DeclareFontShape{U}{zmvs}{l}{sl}{<-> fmvri8x}{} +\DeclareFontShape{U}{zmvs}{l}{sc}{<-> fmvr8x}{} +% +\DeclareFontShape{U}{zmvs}{l} {ui} {<->ssub * zmvs/m/n}{} +\DeclareFontShape{U}{zmvs}{m} {ui} {<->ssub * zmvs/m/n}{} +% +\endinput +\end{filecontents} + +% fd file for Adobe Euroserif: +\begin{filecontents}{uzpeur.fd} +% Filename: uzpeur.fd +% Copyright 1998 Rowland McDonnell +% email rebecca@astrid.u-net.com +% +% Fount definitions for Adobe Euroserif +% +%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY + +\ProvidesFile{uzpeur.fd} + [1998/10/10 Eurofont package font definitions for U/zpeur.] + +\DeclareFontFamily{U}{zpeur}{\hyphenchar\font\m@ne}% + +\DeclareFontShape{U}{zpeur}{m}{n} {<->zpeur} {} +\DeclareFontShape{U}{zpeur}{m}{it}{<->zpeuri}{} +\DeclareFontShape{U}{zpeur}{m}{sl}{<->ssub * zpeur/m/it}{} +\DeclareFontShape{U}{zpeur}{m}{sc}{<->ssub * zpeur/m/n}{} + +\DeclareFontShape{U}{zpeur}{b}{n} {<->zpeub} {} +\DeclareFontShape{U}{zpeur}{b}{it}{<->zpeubi}{} +\DeclareFontShape{U}{zpeur}{b}{sl}{<->ssub * zpeur/b/it} {} +\DeclareFontShape{U}{zpeur}{b}{sc}{<->ssub * zpeur/b/n}{} + +\DeclareFontShape{U}{zpeur}{l}{n} {<->ssub * zpeur/m/n} {} +\DeclareFontShape{U}{zpeur}{l}{it}{<->ssub * zpeur/m/it}{} +\DeclareFontShape{U}{zpeur}{l}{sl}{<->ssub * zpeur/m/it}{} +\DeclareFontShape{U}{zpeur}{l}{sc}{<->ssub * zpeur/m/n} {} + +\DeclareFontShape{U}{zpeur}{bx}{n} {<->ssub * zpeur/b/n} {} +\DeclareFontShape{U}{zpeur}{bx}{it}{<->ssub * zpeur/b/it}{} +\DeclareFontShape{U}{zpeur}{bx}{sl}{<->ssub * zpeur/b/it}{} +\DeclareFontShape{U}{zpeur}{bx}{sc}{<->ssub * zpeur/b/n} {} + +\DeclareFontShape{U}{zpeur}{l} {ui} {<->ssub * zpeur/m/n}{} +\DeclareFontShape{U}{zpeur}{m} {ui} {<->ssub * zpeur/m/n}{} +\DeclareFontShape{U}{zpeur}{b} {ui} {<->ssub * zpeur/b/n}{} +\DeclareFontShape{U}{zpeur}{bx}{ui} {<->ssub * zpeur/b/n}{} +% +\endinput +\end{filecontents} + +% fd file for Adobe Eurosans: +\begin{filecontents}{uzpeuss.fd} +% Filename: uzpeuss.fd +% Copyright 1998 Rowland McDonnell +% email rebecca@astrid.u-net.com +% +% Fount definitions for Adobe Eurosans +% +%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY + +\ProvidesFile{uzpeuss.fd} + [1998/10/10 Eurofont package font definitions for U/zpeuss.] + +\DeclareFontFamily{U}{zpeuss}{\hyphenchar\font\m@ne}% + +\DeclareFontShape{U}{zpeuss}{m}{n} {<->zpeurs} {} +\DeclareFontShape{U}{zpeuss}{m}{it}{<->zpeuris}{} +\DeclareFontShape{U}{zpeuss}{m}{sl}{<->ssub * zpeuss/m/it}{} +\DeclareFontShape{U}{zpeuss}{m}{sc}{<->ssub * zpeuss/m/n}{} + +\DeclareFontShape{U}{zpeuss}{b}{n} {<->zpeubs} {} +\DeclareFontShape{U}{zpeuss}{b}{it}{<->zpeubis}{} +\DeclareFontShape{U}{zpeuss}{b}{sl}{<->ssub * zpeuss/b/it} {} +\DeclareFontShape{U}{zpeuss}{b}{sc}{<->ssub * zpeuss/b/n}{} + +\DeclareFontShape{U}{zpeuss}{l}{n} {<->ssub * zpeuss/m/n}{} +\DeclareFontShape{U}{zpeuss}{l}{it}{<->ssub * zpeuss/m/it}{} +\DeclareFontShape{U}{zpeuss}{l}{sl}{<->ssub * zpeuss/m/it}{} +\DeclareFontShape{U}{zpeuss}{l}{sc}{<->ssub * zpeuss/m/n} {} + +\DeclareFontShape{U}{zpeuss}{bx}{n} {<->ssub * zpeuss/b/n} {} +\DeclareFontShape{U}{zpeuss}{bx}{it}{<->ssub * zpeuss/b/it}{} +\DeclareFontShape{U}{zpeuss}{bx}{sl}{<->ssub * zpeuss/b/it}{} +\DeclareFontShape{U}{zpeuss}{bx}{sc}{<->ssub * zpeuss/b/n} {} + +\DeclareFontShape{U}{zpeuss}{l} {ui} {<->ssub * zpeuss/m/n}{} +\DeclareFontShape{U}{zpeuss}{m} {ui} {<->ssub * zpeuss/m/n}{} +\DeclareFontShape{U}{zpeuss}{b} {ui} {<->ssub * zpeuss/m/b}{} +\DeclareFontShape{U}{zpeuss}{bx}{ui} {<->ssub * zpeuss/m/b}{} +% +\endinput +\end{filecontents} + +% fd file for Adobe Euromono: +\begin{filecontents}{uzpeutt.fd} +%Filename: uzpeutt.fd +% Copyright 1998 Rowland McDonnell +% email rebecca@astrid.u-net.com +% +% Fount definitions for Adobe Euromono +% +%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY + +\ProvidesFile{Uzpeutt.fd} + [1998/10/10 Eurofont package font definitions for U/zpeutt.] + +\DeclareFontFamily{U}{zpeutt}{\hyphenchar\font\m@ne}% + +\DeclareFontShape{U}{zpeutt}{m}{n} {<->zpeurt} {} +\DeclareFontShape{U}{zpeutt}{m}{it}{<->zpeurit}{} +\DeclareFontShape{U}{zpeutt}{m}{sl}{<->ssub * zpeutt/m/it}{} +\DeclareFontShape{U}{zpeutt}{m}{sc}{<->ssub * zpeutt/m/n}{} + +\DeclareFontShape{U}{zpeutt}{b}{n} {<->zpeubt} {} +\DeclareFontShape{U}{zpeutt}{b}{it}{<->zpeubit}{} +\DeclareFontShape{U}{zpeutt}{b}{sl}{<->ssub * zpeutt/b/it} {} +\DeclareFontShape{U}{zpeutt}{b}{sc}{<->ssub * zpeutt/b/n}{} + +\DeclareFontShape{U}{zpeutt}{l}{n} {<->ssub * zpeutt/m/n}{} +\DeclareFontShape{U}{zpeutt}{l}{it}{<->ssub * zpeutt/m/it}{} +\DeclareFontShape{U}{zpeutt}{l}{sl}{<->ssub * zpeutt/m/it}{} +\DeclareFontShape{U}{zpeutt}{l}{sc}{<->ssub * zpeutt/m/n} {} + +\DeclareFontShape{U}{zpeutt}{bx}{n} {<->ssub * zpeutt/b/n} {} +\DeclareFontShape{U}{zpeutt}{bx}{it}{<->ssub * zpeutt/b/it}{} +\DeclareFontShape{U}{zpeutt}{bx}{sl}{<->ssub * zpeutt/b/it}{} +\DeclareFontShape{U}{zpeutt}{bx}{sc}{<->ssub * zpeutt/b/n} {} + +\DeclareFontShape{U}{zpeutt}{l} {ui} {<->ssub * zpeutt/m/n}{} +\DeclareFontShape{U}{zpeutt}{m} {ui} {<->ssub * zpeutt/m/n}{} +\DeclareFontShape{U}{zpeutt}{b} {ui} {<->ssub * zpeutt/m/b}{} +\DeclareFontShape{U}{zpeutt}{bx}{ui} {<->ssub * zpeutt/m/b}{} +% +\endinput +\end{filecontents} + +% Config file +\begin{filecontents}{eurofont.cfg} +% Configuration file for the eurofont package +% Copyright 1998 Rowland McDonnell +% email rebecca@astrid.u-net.com +% +% Please do change this file as much as you like, but don't distribute +% modified versions. +% +% If you change this file, do make sure that you change the date, +% version number, and identification note below: +% +\ProvidesFile{eurofont.cfg}[1998/11/03 v1.0 Default config file for +the eurofont package] +% +% List contents Corresponding command +% +\EFaddtolist{\userlist}{}% \makeusereuro +\EFaddtolist{\texteurolist}{}% \maketexteuro +\EFaddtolist{\chinaelist}{}% \makechinaeeuro +\EFaddtolist{\cmlist}{cmr,cmss,cmtt}% \makecmeuro +\EFaddtolist{\seriflist}{pbk,pnc,ppl,ptm,put}% \makeserifeuro +\EFaddtolist{\sanslist}{pag,phv,psy,pzd}% \makesanseuro +\EFaddtolist{\monolist}{pcr}% \makemonoeuro +\EFaddtolist{\fakemediumlist}{pzc}% \makefakemediumeuro +\EFaddtolist{\fakelightlist}{}% \makefakelighteuro +\EFaddtolist{\fakeheavylist}{}% \makefakeheavyeuro +% +\EFaddtolist{\faketexteurolist}{} +% +% Put all the standard LaTeX weights (and likely extras) +% into one of the following lists: +% +\EFaddtolist{\EFlightserieslist}{ul,el,l,ulc,elc,lc,ulx,elx,lx} +\EFaddtolist{\EFmediumserieslist}{m,mb,db,sb,mc,mbc,dbc,sbc,mx,mbx,dbx,sbx} +\EFaddtolist{\EFboldserieslist}{b,bx,bc} +\EFaddtolist{\EFultraboldserieslist}{eb,ub,ebc,ubc,ebx,ubx} +% +% And two non-standard weights: +% +\EFaddtolist{\EFultraboldserieslist}{xb,ebd} +% +\endinput +\end{filecontents} +\begin{filecontents}{dvidrive.txt} +File dvidrive.txt +Copyright 1998 Rowland McDonnell +email rebecca@astrid.u-net.com + + +This file contains information on how to configure dvips and OzTeX to use +Adobe's Eurofonts and the Marvosym fount. I believe that pdfTeX can use +dvips entries. + +If there are any problems with the information below, or if you have +information on how to configure other dvi drivers, please let me know by +emailing: rebecca@astrid.u-net.com + + +DVI DRIVER CONFIGURATION LINES FOR ADOBE'S EUROFONTS +==================================================== + +Note that versions of dvips before v5.83 have trouble doing partial fount +downloading with Adobe's Eurofonts. Because of this, I have listed the +dvips psfont.map entries with `|<<|' and with `|<|': the `|<<|' +entries prevent dvips attempting to do partial fount downloading with +that particular fount. + +The `<<' syntax does not work with all versions of dvips; it does work +with dvips v5.78, but doesn't work with v5.70. If you're using a pre +`<<' dvips, you should use the entries with `<' and don't use partial +fount downloading with any document containing Adobe's Eurofonts; +passing the -j0 switch to dvips will prevent it from doing partial +fount downloading if this is normally turned on. + +I've asked the author of dvips when the `<<' syntax was first +introduced, and he can't remember. + +I am told that pdftex can do partial fount downloading using Adobe's +Eurofonts. + +Eurofont configuration lines for Windows/Unix/any others? +========================================================= + +(you need to re-name the *.PFB files *.pfb; thanks to Stefan Ulrich +<ulrich@cis.uni-muenchen.de> for this and the following entries) + + +psfonts.map entries for Windows/Unix/other +dvips v5.78 or similar + +zpeurs EuroSans-Regular <<_1______.pfb +zpeubs EuroSans-Bold <<_1B_____.pfb +zpeuris EuroSans-Italic <<_1I_____.pfb +zpeubis EuroSans-BoldItalic <<_1BI____.pfb +zpeurt EuroMono-Regular <<_2______.pfb +zpeubt EuroMono-Bold <<_2B_____.pfb +zpeurit EuroMono-Italic <<_2I_____.pfb +zpeubit EuroMono-BoldItalic <<_2BI____.pfb +zpeur EuroSerif-Regular <<_3______.pfb +zpeub EuroSerif-Bold <<_3B_____.pfb +zpeuri EuroSerif-Italic <<_3I_____.pfb +zpeubi EuroSerif-BoldItalic <<_3BI____.pfb + + +psfonts.map entries for Windows/Unix/other +dvips v5.70 or before, dvips v5.83 and above, and pdftex: + +(note that I don't use pdftex; this suggestion might not work) + +zpeurs EuroSans-Regular <_1______.pfb +zpeubs EuroSans-Bold <_1B_____.pfb +zpeuris EuroSans-Italic <_1I_____.pfb +zpeubis EuroSans-BoldItalic <_1BI____.pfb +zpeurt EuroMono-Regular <_2______.pfb +zpeubt EuroMono-Bold <_2B_____.pfb +zpeurit EuroMono-Italic <_2I_____.pfb +zpeubit EuroMono-BoldItalic <_2BI____.pfb +zpeur EuroSerif-Regular <_3______.pfb +zpeub EuroSerif-Bold <_3B_____.pfb +zpeuri EuroSerif-Italic <_3I_____.pfb +zpeubi EuroSerif-BoldItalic <_3BI____.pfb + + +Eurofont configuration lines for Macs +===================================== + + +Macintosh psfonts.map entries for dvips v5.78 or similar + +zpeur EuroSerif-Regular <<EuroSerReg +zpeuri EuroSerif-Italic <<EuroSerIta +zpeub EuroSerif-Bold <<EuroSerBol +zpeubi EuroSerif-BoldItalic <<EuroSerBolIta +zpeurs EuroSans-Regular <<EuroSanReg +zpeuris EuroSans-Italic <<EuroSanIta +zpeubs EuroSans-Bold <<EuroSanBol +zpeubis EuroSans-BoldItalic <<EuroSanBolIta +zpeurt EuroMono-Regular <<EuroMonReg +zpeurit EuroMono-Italic <<EuroMonIta +zpeubt EuroMono-Bold <<EuroMonBol +zpeubit EuroMono-BoldItalic <<EuroMonBolIta + + +Macintosh psfonts.map entries for +dvips v5.70 or before, dvips v5.83 and above, and pdftex: + +(note that I don't use pdftex; this suggestion might not work) + +zpeur EuroSerif-Regular <EuroSerReg +zpeuri EuroSerif-Italic <EuroSerIta +zpeub EuroSerif-Bold <EuroSerBol +zpeubi EuroSerif-BoldItalic <EuroSerBolIta +zpeurs EuroSans-Regular <EuroSanReg +zpeuris EuroSans-Italic <EuroSanIta +zpeubs EuroSans-Bold <EuroSanBol +zpeubis EuroSans-BoldItalic <EuroSanBolIta +zpeurt EuroMono-Regular <EuroMonReg +zpeurit EuroMono-Italic <EuroMonIta +zpeubt EuroMono-Bold <EuroMonBol +zpeubit EuroMono-BoldItalic <EuroMonBolIta + + +OzTeX config file entries + +zpeur EuroSerif-Regular "Euro Serif" nil +zpeuri EuroSerif-Italic "Euro Serif" nil i +zpeub EuroSerif-Bold "Euro Serif" nil b +zpeubi EuroSerif-BoldItalic "Euro Serif" nil bi +zpeurs EuroSans-Regular "Euro Sans" nil +zpeuris EuroSans-Italic "Euro Sans" nil i +zpeubs EuroSans-Bold "Euro Sans" nil b +zpeubis EuroSans-BoldItalic "Euro Sans" nil bi +zpeurt EuroMono-Regular "Euro Monospace" nil +zpeurit EuroMono-Italic "Euro Monospace" nil i +zpeubt EuroMono-Bold "Euro Monospace" nil b +zpeubit EuroMono-BoldItalic "Euro Monospace" nil bi + + +DVI DRIVER CONFIGURATION LINES FOR MARVOSYM +=========================================== + +Here are some lines to configure dvips to use the Marvosym fount: + +Dvips psfonts.map entries for the original Marvosym fount: + +fmvr8x Martin_Vogels_Symbole <marvosym.pfb +fmvri8x Martin_Vogels_Symbole " .167 SlantFont" <marvosym.pfb + + +Dvips psfonts.map entries for the Y&Y `ATM compatible' +re-worked Marvosym fount: + +fmvr8x Marvosym <marvosym.pfb +fmvri8x Marvosym " .167 SlantFont" <marvosym.pfb + + +I have assumed that all dvi drivers that can use PostScript Type 1 +founts can also produce fake italic founts by slanting an upright +version. Because of this, I have made no provision for dvi drivers +that can't do this. If you have a dvi driver that can't fake an +italic, please let me know and I'll modify the eurofont package to +take this into account, probably by adding another option and writing +a new fd file. + +Note for Macintosh users + +A Mac version of the Marvosym fount has been created in PostScript Type 1 +and TrueType versions. It uses the Y&Y names as above, and these lines are +be needed for dvips's psfonts.map file: + +fmvr8x Marvosym <Marvo +fmvri8x Marvosym " .167 SlantFont" <Marvo + +And these lines for OzTeX's default config file: + +fmvr8x Marvosym Marvosym nil +fmvri8x Marvosym Marvosym nil i + + +If a version of the original Marvosym fount is ever released for Macs, +these lines will be needed for dvips's psfonts.map file: + +fmvr8x Martin_Vogels_Symbole <MartiVogSym +fmvri8x Martin_Vogels_Symbole " .167 SlantFont" <MartiVogSym + +And these lines for OzTeX's default config file: + +fmvr8x MartiVogSym "Martin Vogels Symbole" nil +fmvri8x MartiVogSym "Martin Vogels Symbole" nil i +\end{filecontents} + +\begin{filecontents}{eurofont.tmp} +\ProvidesFile{eurofont.tmp} +\def\batchfile{eurofont.tmp} +\input{docstrip} +\keepsilent +\generateFile{eurofont.sty}{t}{\from{eurofont.dtx}{package}} +\typeout{Finished stripping the comments from eurofont.dtx.} +\typeout{} +\typeout{To finish the installation, put these files in a sensible place} +\typeout{on your system's TeX search path:} +\typeout{} +\typeout{eurofont.sty, eurofont.cfg, and all the files ending in fd.} +\typeout{} +\typeout{To produce the documentation, run LaTeX on eurofont.dtx.} +\typeout{} +\typeout{To find out what to do with the tfm files, read the documentation.} +\typeout{} +\typeout{You might like to keep the original files safe as a backup, or} +\typeout{in case you want to pass on the eurofont package to someone.} +\typeout{} +\typeout{You can delete:} +\typeout{eurofont.dvi, eurofont.aux, eurofont.toc, eurofont.log, and + eurofont.tmp} +\typeout{} +\endinput +\end{filecontents} +\input{eurofont.tmp} +\endinput diff --git a/Master/texmf-dist/doc/fonts/eurofont/eurosamp.pdf b/Master/texmf-dist/doc/fonts/eurofont/eurosamp.pdf Binary files differnew file mode 100644 index 00000000000..b165862be0a --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/eurosamp.pdf diff --git a/Master/texmf-dist/doc/fonts/eurofont/eurosamp.tex b/Master/texmf-dist/doc/fonts/eurofont/eurosamp.tex new file mode 100644 index 00000000000..2360dc78791 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/eurosamp.tex @@ -0,0 +1,60 @@ +% Simple plain TeX test file for Adobe Euro fonts + +\nopagenumbers + +\font\eurosansr=zpeurs +\font\eurosansb=zpeubs +\font\eurosansi=zpeuris +\font\eurosansbi=zpeubis + +\font\euromonor=zpeurt +\font\euromonob=zpeubt +\font\euromonoi=zpeurit +\font\euromonobi=zpeubit + +\font\euroserifr=zpeur +\font\euroserifb=zpeub +\font\euroserifi=zpeuri +\font\euroserifbi=zpeubi + +{\bf The `Euro' fonts in ATM compatible Type 1 format from Adobe} + +\vskip 2mm + +Euro Sans (regular) {\eurosansr This is EuroSans!} + +Euro Sans (bold) {\eurosansb This is EuroSans!} + +Euro Sans (italic) {\eurosansi This is EuroSans!} + +Euro Sans (bold italic) {\eurosansbi This is EuroSans!} + +\vskip 2mm + +Euro Monospace (regular) {\euromonor This is EuroMonospace!} + +Euro Monospace (bold) {\euromonob This is EuroMonospace!} + +Euro Monospace (italic) {\euromonoi This is EuroMonospace!} + +Euro Monospace (bold italic) {\euromonobi This is EuroMonospace!} + +\vskip 2mm + +Euro Serif (regular) {\euroserifr This is EuroSerif!} + +Euro Serif (bold) {\euroserifb This is EuroSerif!} + +Euro Serif (italic) {\euroserifi This is EuroSerif!} + +Euro Serif (bold italic) {\euroserifbi This is EuroSerif!} + +\vskip 2mm + +{\tt http://www.adobe.com/type/eurofont.html} + +\vskip 2mm + +{\tt ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe} + +\end diff --git a/Master/texmf-dist/doc/fonts/eurofont/eutest.tex b/Master/texmf-dist/doc/fonts/eurofont/eutest.tex new file mode 100644 index 00000000000..558f1c83b81 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/eutest.tex @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage{times,europs} + +\setlength{\parindent}{0mm} +\setlength{\parskip}{2\baselineskip} + +\newcommand{\eutab}[1]{\begin{tabular}{l|cc}% + & upright & italic \\% +\hline% +medium & \textup{\textmd{#1}} & \textit{\textmd{#1}} \\% +bold & \textup{\textbf{#1}} & \textit{\textbf{#1}}% +\end{tabular}} + +\begin{document} + +\def\sampletext{% +The Euro symbol \eur{} comes in different shapes, depending on the +\textbf{current context \eur}. Font changes \textit{can \eur{} be followed, +\textbf{even if \eur{} they are nested}}. \textsf{Changes of \eur{} the font +family} \texttt{are handled \eur{} differently.} +} + +\let\eur\EUR +\sampletext + +\textrm{EuroSerif}:\\ +\eutab{\EURtm}\\ +\let\eur\EURtm +\sampletext + +\textsf{EuroSans}:\\ +\eutab{\EURhv}\\ +\let\eur\EURhv +\sampletext + +\texttt{EuroMono}:\\ +\eutab{\EURcr}\\ +\let\eur\EURcr +\sampletext + +\textrm{official}:\\ +\eutab{\EURofc}\\ +\let\eur\EURofc +\sampletext + +\end{document} diff --git a/Master/texmf-dist/doc/fonts/eurofont/readme.txt b/Master/texmf-dist/doc/fonts/eurofont/readme.txt new file mode 100644 index 00000000000..86129438266 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/eurofont/readme.txt @@ -0,0 +1,124 @@ +File readme.txt +Part of the eurofont package +Copyright 1998 Rowland McDonnell +email: rebecca@astrid.u-net.com + +The eurofont package consists of the following files: + +adobeuro + readme.txt + tfmfiles + zpeub.tfm + zpeubi.tfm + zpeubis.tfm + zpeubit.tfm + zpeubs.tfm + zpeubt.tfm + zpeur.tfm + zpeuri.tfm + zpeuris.tfm + zpeurit.tfm + zpeurs.tfm + zpeurt.tfm +eurofont.dtx +eurofont.ins +marvosym + readme.txt + source + fmvr8x.afm + mvrit.tex + tfmfiles + original + fmvr8x.tfm + fmvri8x.tfm + yandy + fmvr8x.tfm + fmvri8x.tfm +readme.txt + +To install the package, do the following: + +Run LaTeX on eurofont.ins + +Put eurofont.sty, eurofont.cfg, and all the files ending in .fd into a +directory on your tex-inputs search path. + +Run LaTeX on eurofont.dtx and print out the documentation. + +Read at least the introductory sections of the documentation. + +If you want to use Adobe's Eurofonts, put the files zpeub.tfm - +zpeurt.tfm (all the files in the adobeuro/tfm/ directory) into a directory +on your tex-fonts search path. The file dvidrive.txt has +information on how to configure your dvi driver to use Adobe's Eurofonts. + +If you want to use the Marvosym fount, read the eurofont package +documentation. The file dvidrive.txt has information on how to configure +your dvi driver to use the marvosym fount. + +Read the documentation so you can set up the package to meet your needs. + + +FONTS CONTAINING EURO SYMBOLS +============================= + +Aside from the Text Companion founts which accompany the EC founts (the T1 +encoded version of the standard Computer Modern founts), Metafont euro +symbols are included in two other founts that I know of, both available +from CTAN. The following urls retrieve the packages from my nearest CTAN +mirror: + +ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/supported/china2e.zip +ftp://ftp.tex.ac.uk/tex-archive/fonts/eurosym.zip + +(other CTAN sites are listed at the end of this document) + +There are PostScript Type 1 founts containing euro symbols: Adobe's +Eurofonts, a set of 12 founts providing seriffed, sanserif, and monospaced +euro symbols in medium upright, italic, bold, and bold italic version; and +the Marvosym fount, which has three euro symbols, very similar to the +medium upright seriffed, sanserif, and monospaced euro symbols from +Adobe. + +Adobe's Eurofonts are available (September 1998) in a Mac version +from here: + +ftp://ftp.adobe.com/pub/adobe/type/mac/all/eurofont.sea.hqx +ftp://ftp-pac.adobe.com/pub/adobe/type/mac/all/eurofont.sea.hqx + +For Textures users on Macs, take the installer from CTAN: + +systems/mac/textures/contrib/IdealFonts/EuroDefs.sit.hqx +systems/mac/textures/contrib/IdealFonts/README.IF + +You should still download Adobe's Eurofonts separately. + +And in a version suitable for MS-Windows PCs and Unix from here: + +ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe +ftp://ftp-pac.adobe.com/pub/adobe/type/win/all/eurofont.exe + +these files are self-extracting archives on MS-Windows computers which +can be decompressed on Unix computers with the unzip command. + +The marvosym fount is available from CTAN; this url retrieves the marvosym +fount from my nearest CTAN site (November 1998): + +ftp://ftp.tex.ac.uk/tex-archive/fonts/psfonts/marvosym.zip + + +CTAN SITES -- JANUARY 1999. +=========================== + +The three CTAN primary sites: + +ctan.tug.org (in Massachusetts, USA) +ftp.dante.de (in Deutschland) +ftp.tex.ac.uk (in England) + +this url can point you to your nearest CTAN site - there are many more +than the three above: + +http://www.ucc.ie/cgi-bin/ctan + + |