summaryrefslogtreecommitdiff
path: root/fonts/euro-ce
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/euro-ce
Initial commit
Diffstat (limited to 'fonts/euro-ce')
l---------fonts/euro-ce/README1
-rw-r--r--fonts/euro-ce/ceit.mf14
-rw-r--r--fonts/euro-ce/cemac.mf107
-rw-r--r--fonts/euro-ce/cerm.mf13
-rw-r--r--fonts/euro-ce/cesl.mf14
-rw-r--r--fonts/euro-ce/euro-ce.doc211
-rw-r--r--fonts/euro-ce/euro-ce.tex129
-rw-r--r--fonts/euro-ce/eurobf.mf15
-rw-r--r--fonts/euro-ce/eurobfit.mf15
-rw-r--r--fonts/euro-ce/eurobfsl.mf15
-rw-r--r--fonts/euro-ce/euroit.mf15
-rw-r--r--fonts/euro-ce/euromac.mf245
-rw-r--r--fonts/euro-ce/euroof.mf36
-rw-r--r--fonts/euro-ce/eurorm.mf14
-rw-r--r--fonts/euro-ce/eurosl.mf15
-rw-r--r--fonts/euro-ce/eurosp.mf124
16 files changed, 983 insertions, 0 deletions
diff --git a/fonts/euro-ce/README b/fonts/euro-ce/README
new file mode 120000
index 0000000000..fffc0b9a10
--- /dev/null
+++ b/fonts/euro-ce/README
@@ -0,0 +1 @@
+euro-ce.doc \ No newline at end of file
diff --git a/fonts/euro-ce/ceit.mf b/fonts/euro-ce/ceit.mf
new file mode 100644
index 0000000000..45424232f3
--- /dev/null
+++ b/fonts/euro-ce/ceit.mf
@@ -0,0 +1,14 @@
+% CEIT.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% ITALIC VARIANTS OF CE MARK
+
+message "CEIT.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="CEIT"; font_size 10pt#;
+u#:=18.4/36pt#; % values of cmti10
+letter_fit#:=9.2/36pt#;
+cap_height#:=246/36pt#;
+x_height#:=155/36pt#;
+o#:=4/36pt#; % smaller than for cmti10
+
+S:=0.25;
+input cemac; % switch to driver file
diff --git a/fonts/euro-ce/cemac.mf b/fonts/euro-ce/cemac.mf
new file mode 100644
index 0000000000..866f28e5c1
--- /dev/null
+++ b/fonts/euro-ce/cemac.mf
@@ -0,0 +1,107 @@
+% CEMAC.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% DRIVER FILE TO GENERATE CE MARK
+% FILE SHOULD BE RENAMED WHENEVER IT IS MODIFIED!
+
+message "CEMAC.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+mode_setup;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def draw_CE =
+italcorr 9/10OuterDiameter#*S;
+
+currenttransform:=identity if S<>0: slanted S fi;
+
+pickup pencircle scaled Thickness;
+
+% ---------- Circle segment ----------
+Margin:=3/20OuterDiameter;
+z6=(good.x(Margin+1/2Thickness),1/2h);
+z0=z6 + (good.y(1/2OuterDiameter -1/2Thickness +1/2h) -1/2h, 0);
+forsuffixes $=1,2,4,8,10,11: z$=z6 rotatedaround(z0,($-6)*22.5); endfor;
+
+draw z1{z8-z10}..z2{left}..z4{z6-z2}..z6{down}..z8{z10-z6}..
+ z10{right}..{z2-z4}z11;
+
+extra_pixel:=1;
+z31=(x0+1/20OuterDiameter,y2+pen_top+extra_pixel);
+z32=(x31,y10+pen_bot-extra_pixel);
+z33=(x1+pen_rt+max(pen_top*S,pen_bot*S)+extra_pixel,y32);
+z34=(x33,y31);
+cull currentpicture keeping (1,infinity) withweight 1;
+unfill z31--z32--z33--z34--cycle; % erase excess
+
+penlabels(0,1,2,4,6,8,10,11,31,32,33,34);
+
+% ---------- Bar ----------
+if Bar=1:
+draw z6--z0;
+
+z41=(x0-1/20OuterDiameter,y0+pen_top+extra_pixel);
+z42=(x41,y0+pen_bot-extra_pixel);
+z43=(x0+pen_rt+max(pen_top*S,pen_bot*S)+extra_pixel,y42);
+z44=(x43,y41);
+cull currentpicture keeping (1,infinity) withweight 1;
+unfill z41--z42--z43--z44--cycle; % erase excess
+
+penlabels(41,42,43,44);
+fi;
+
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def makebox(text r) =
+for y=0,1/2h,h: r((y*S,y),(w+y*S,y)); endfor;
+for x=0,Margin,w-Margin,w:
+ if S=0: r((x,0),(x,h));
+ else: for y=0,1/2h,h: r((x+y*S,y-0.01h),(x+y*S,y+0.01h)); endfor; fi;
+endfor;
+if S>0: r((w+charic*pt,3/4h),(w+charic*pt,h+o)); fi;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def outline = % cf. The METAFONTbook, p.244
+cull currentpicture keeping (1,infinity) withweight 1;
+picture v; v:=currentpicture;
+cull currentpicture keeping (1,1) withweight 3;
+addto currentpicture also v
+ -v shifted right -v shifted left -v shifted up -v shifted down;
+cull currentpicture keeping (1,4);
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Generating symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown S: S:=0 fi; % no slanting is default
+
+% ---------- Font dimensions ----------
+font_slant S;
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- CE marks ----------
+BoxHeight#:=cap_height#;
+OuterDiameter#:=BoxHeight# + 2o#;
+Thickness#:=3/20OuterDiameter#; % prescribed by geometry
+BoxWidth#:=OuterDiameter#-Thickness#; % prescribed by geometry
+define_pixels(OuterDiameter,Thickness,o);
+
+beginchar("C",BoxWidth#,BoxHeight#,0); Bar:=0; draw_CE; endchar;
+beginchar("E",BoxWidth#,BoxHeight#,0); Bar:=1; draw_CE; endchar;
+
+beginchar("c",BoxWidth#,BoxHeight#,0); Bar:=0; draw_CE; outline; endchar;
+beginchar("e",BoxWidth#,BoxHeight#,0); Bar:=1; draw_CE; outline; endchar;
+
+bye
diff --git a/fonts/euro-ce/cerm.mf b/fonts/euro-ce/cerm.mf
new file mode 100644
index 0000000000..5c54bea276
--- /dev/null
+++ b/fonts/euro-ce/cerm.mf
@@ -0,0 +1,13 @@
+% CERM.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% CE MARK
+
+message "CERM.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="CERM"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+x_height#:=155/36pt#;
+o#:=4/36pt#; % smaller than for cmr10
+
+input cemac; % switch to driver file
diff --git a/fonts/euro-ce/cesl.mf b/fonts/euro-ce/cesl.mf
new file mode 100644
index 0000000000..23dccfcbd0
--- /dev/null
+++ b/fonts/euro-ce/cesl.mf
@@ -0,0 +1,14 @@
+% CESL.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% SLANTED VARIANTS OF CE MARK
+
+message "CESL.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="CESL"; font_size 10pt#;
+u#:=20/36pt#; % values of cmsl10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+x_height#:=155/36pt#;
+o#:=4/36pt#; % smaller than for cmsl10
+
+S:=1/6;
+input cemac; % switch to driver file
diff --git a/fonts/euro-ce/euro-ce.doc b/fonts/euro-ce/euro-ce.doc
new file mode 100644
index 0000000000..4ac5d3ac85
--- /dev/null
+++ b/fonts/euro-ce/euro-ce.doc
@@ -0,0 +1,211 @@
+README, euro-ce.doc --- version 3.0b (6 March 2012)
+(c) 1998-2012 Harold W. de Wijn <h.w.dewijn@uu.nl> All rights reserved
+
+ABOUT THE AUTHOR: www.staff.science.uu.nl/~wijn0104
+
+IN CASE YOU APPRECIATE THE euro-ce PACKAGE, OR HAVE ANY COMMENTS OR
+SUGGESTIONS FOR IMPROVEMENTS, PLEASE CONTACT THE AUTHOR BY E-MAIL
+
+
+ EURO CURRENCY SYMBOL and CE MARK -- DOCUMENTATION
+
+ *** SUMMARY ***
+
+(1) METAFONT source of the official euro currency symbol and scores of
+ variants, including italic, slanted, boldface, boldface italic
+ boldface slanted, condensed, and outline. Varying single parameters
+ for compression, thickness, and slanting allows the user to add new
+ variants.
+
+(2) METAFONT source of the CE mark and several variants.
+
+
+ *** FILES ***
+
+euro-ce.doc documentation in text format (this file)
+README identical to euro-ce.doc
+euroof.mf METAFONT source of the official euro currency symbol
+eurorm.mf METAFONT source of the official euro currency symbol
+ and its condensed variants, both filled and in outline
+euroit.mf METAFONT source of the italic variants
+eurosl.mf METAFONT source of the slanted variants
+eurobf.mf METAFONT source of the boldface variants
+eurobfit.mf METAFONT source of the boldface italic variants
+eurobfsl.mf METAFONT source of the boldface slanted variants
+eurosp.mf Example of METAFONT source for specials
+euromac.mf driver file for generating euro symbols
+cerm.mf METAFONT source of the CE mark
+ceit.mf METAFONT source of the italic variant
+cesl.mf METAFONT source of the slanted variant
+cemac.mf driver file for generating CE marks
+euro-ce.tex test (to be run with plain TeX)
+
+The METAFONT source files should be run with plain METAFONT.
+
+Files should be renamed whenever they are modified! This in particular
+concerns the files euroit.mf and alike, defining the constants C, S, and
+T for compression, slanting, and thickness.
+
+
+ *** CHARACTERS ***
+
+The euro symbol is provided in roman (eurorm.mf), italic (euroit.mf),
+slanted (eurosl.mf), boldface (eurobf.mf), boldface italic (eurobfit.mf),
+and boldface slanted (eurobfsl.mf) typefaces, each of which comprises the
+letters:
+
+ E,e official width
+ D,d demicondensed
+ F,f condensed
+ G,g double condensed
+ O,o one-pixel-outline, official width
+ N,n one-pixel-outline, demicondensed
+ P,p one-pixel-outline, condensed
+ Q,q one-pixel-outline, double condensed
+
+Upper-case letters refer to euro symbols having the height of the
+capital C of the corresponding Computer Modern roman font. Lower-case
+letters refer to euro symbols having the height of the Computer Modern
+roman numerals (which you may like better).
+
+The file euroof.mf contains only the official symbol.
+
+The file eurosp.mf provides a number of "strange" euro symbols.
+
+The CE mark is available in roman (cerm.mf), italic (ceit.mf), and
+slanted (cesl.mf) typefaces:
+
+ CE CE mark
+ ce CE mark, one-pixel-outline
+
+
+ *** NOTES ON PROGRAMMING ***
+
+The euro currency symbols are computed on the basis of the geometry
+published on the European Union's web site www.europa.eu.int/euro. The
+official symbol, which is of roman type and inspired by the Greek letter
+epsilon (rather than the capital C), is composed of a well-defined
+280-degree segment of a perfect circle and two cross bars. It features a
+uniform thickness, 1/12 of its outer diameter, and distinctive oblique
+ends.
+
+With regard to the condensed (i.e., horizontally compressed), italic, and
+slanted variants derived here from the official geometry, the following
+observations are of relevance:
+
+(i) Horizontal compression and slanting are straightforwardly implemented
+by the use of METAFONT's transformations. These transformations permit
+control of compression and slanting through single parameters;
+
+(ii) It is desirable that a uniform thickness be preserved. In case the
+official euro symbol has been drawn by filling its outline, however, this
+requirement precludes constructing its variants by transformations.
+Horizontal compression would narrow the upright strokes of the circle,
+while slanting would make the first and third quadrants thicker, and the
+second and fourth quadrants thinner;
+
+(iii) By contrast, METAFONT's pen nibs are invariant under METAFONT's
+transformations.
+
+The symbols are therefore drawn by (a) picking up a circular pen of a
+diameter equal to the chosen thickness, (b) drawing a full circle and
+oversized cross bars, and (c) erasing the excess according to the demands
+of the geometry. Horizontal scaling and slanting transformations, to the
+extent applicable, then provide the desired result.
+
+Horizontal compression, slanting, and thickness are controlled by the
+parameters C, S, and T, which are input to the generating macro
+"draw_euro" in the driver file "euromac.mf". Their default values
+correspond to the official symbol, i.e., C=1 (no compression), S=0 (no
+slanting), and T=1 (thickness is 1/12 of the outer diameter). Possible
+combinations are of course limited by the geometry.
+
+The width of the box is taken equal to the overall width of the
+compressed, but unslanted symbol at the given thickness, augmented with
+uniform cmr10-sized margins at either side. The italic corrections
+provided are designed to maintain the right margin.
+
+More technical details are commented on in the driver file "euromac.mf"
+itself. Running "eurosp.mf" in proof mode demonstrates the robustness of
+"draw_euro" against variations of C, S, and T from their default values.
+
+The above is of equal concern to the CE mark and, for that matter, any
+other fully or partly circular image.
+
+
+ *** EXAMPLES OF USAGE ***
+In TeX:
+
+\font\euro=eurorm scaled \magstephalf % 11-point roman euro symbol
+\def\EUR{{\euro E}}
+\EUR 123.00
+
+\font\ce=cerm % 10-point CE symbol
+{\ce CE}
+
+
+In LaTeX:
+
+\newfont{\euroit}{euroit scaled \magstep1} % 12-point italic euro symbol
+\newcommand{\EUR}{{\euroit E}}
+\EUR 123.00
+
+\newfont{\ce}{cerm} % 10-point CE symbol
+{\ce CE}
+
+
+ *** HISTORY ***
+
+v1.2 (2 June 1998) eurorm, euroit, eurosl, cerm, ceit, cesl.
+
+v1.3 (9 February 2001) Adding the eurobf; modification of euromac.mf to
+ accommodate boldface euro symbols; improved
+ handling of font dimensions; minor corrections.
+
+v1.3a (15 February 2002) Patch in euromac.mf to remove spurious speckles.
+
+v2.0 (3 March 2002) Adding demicondensed euro symbols (which seem
+ quite popular), eurobfit, and eurobfsl.
+
+v3.0 (6 March 2002) Completely revised package. Improved METAFONT
+ code. Improvements include better positioning
+ of euro symbol in box, better rendition at low
+ resolution, and adding eurosp.
+
+v3.0b (6 March 2012) Added permissions regarding usage and redistri-
+ bution to README and euro-ce.doc. Other files
+ remained as in version 3.0. Author's contact
+ data updated.
+
+
+ *** LICENSE ***
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+ * Neither the name of Harold W. de Wijn nor the names of any
+contributors may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ''AS
+IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ *** END OF FILE ***
+
+
+
+
diff --git a/fonts/euro-ce/euro-ce.tex b/fonts/euro-ce/euro-ce.tex
new file mode 100644
index 0000000000..5ddeff4fd6
--- /dev/null
+++ b/fonts/euro-ce/euro-ce.tex
@@ -0,0 +1,129 @@
+% EURO-CE.TEX --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% Testing euro and CE symbols
+% Run with plain TeX
+
+\parindent0pt \nopagenumbers
+
+\def\E#1#2{\smallskip\leavevmode
+ #1 pt\qquad{\font\euro=#2\euro EDFG ONPQ edfg onpq}}
+\def\F#1#2{\smallskip\leavevmode
+ #1 pt\qquad{\font\euro=#2\euro EDFG O edfg o}}
+\def\G#1#2{\smallskip\leavevmode
+ #1 pt\qquad{\font\euro=#2\euro dcEab Eefg ihEjk lmn\/opq}}
+\def\CE#1{\hfill{\font\ce=#1\ce CE ce}}
+
+\vglue-20pt {\bf TEST OF EURO CURRENCY SYMBOL\hfill TEST OF CE MARK}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Comment out sizes you are not interested in! %%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\bigskip
+ROMAN
+%\E{\enskip 7}{eurorm scaled 700} %\CE{cerm scaled 700}
+%\E{\enskip 8}{eurorm scaled 800} %\CE{cerm scaled 800}
+%\E{\enskip 9}{eurorm scaled 900} %\CE{cerm scaled 900}
+ \E{10}{eurorm} \CE{cerm}
+%\E{11}{eurorm scaled \magstephalf} \CE{cerm scaled \magstephalf}
+ \E{12}{eurorm scaled \magstep1} \CE{cerm scaled \magstep1}
+%\E{14}{eurorm scaled \magstep2} \CE{cerm scaled \magstep2}
+ \E{17}{eurorm scaled \magstep3} \CE{cerm scaled \magstep3}
+%\E{21}{eurorm scaled \magstep4} \CE{cerm scaled \magstep4}
+ \E{25}{eurorm scaled \magstep5} \CE{cerm scaled \magstep5}
+%\E{30}{eurorm scaled 2986}
+
+\bigskip
+BOLDFACE
+%\E{\enskip 7}{eurobf scaled 700}
+%\E{\enskip 8}{eurobf scaled 800}
+%\E{\enskip 9}{eurobf scaled 900}
+ \E{10}{eurobf}
+%\E{11}{eurobf scaled \magstephalf}
+ \E{12}{eurobf scaled \magstep1}
+%\E{14}{eurobf scaled \magstep2}
+ \E{17}{eurobf scaled \magstep3}
+%\E{21}{eurobf scaled \magstep4}
+ \E{25}{eurobf scaled \magstep5}
+%\F{30}{eurobf scaled 2986}
+
+\bigskip
+ITALIC
+%\E{\enskip 7}{euroit scaled 700} %\CE{ceit scaled 700}
+%\E{\enskip 8}{euroit scaled 800} %\CE{ceit scaled 800}
+%\E{\enskip 9}{euroit scaled 900} %\CE{ceit scaled 900}
+ \E{10}{euroit} \CE{ceit}
+%\E{11}{euroit scaled \magstephalf} \CE{ceit scaled \magstephalf}
+ \E{12}{euroit scaled \magstep1} \CE{ceit scaled \magstep1}
+%\E{14}{euroit scaled \magstep2} \CE{ceit scaled \magstep2}
+ \E{17}{euroit scaled \magstep3} \CE{ceit scaled \magstep3}
+%\E{21}{euroit scaled \magstep4} \CE{ceit scaled \magstep4}
+ \E{25}{euroit scaled \magstep5} \CE{ceit scaled \magstep5}
+%\F{30}{euroit scaled 2986}
+
+\bigskip
+BOLDFACE ITALIC
+%\E{\enskip 7}{eurobfit scaled 700}
+%\E{\enskip 8}{eurobfit scaled 800}
+%\E{\enskip 9}{eurobfit scaled 900}
+ \E{10}{eurobfit}
+%\E{11}{eurobfit scaled \magstephalf}
+ \E{12}{eurobfit scaled \magstep1}
+%\E{14}{eurobfit scaled \magstep2}
+ \E{17}{eurobfit scaled \magstep3}
+%\E{21}{eurobfit scaled \magstep4}
+ \E{25}{eurobfit scaled \magstep5}
+%\F{30}{eurobfit scaled 2986}
+
+\bigskip
+SLANTED
+%\E{\enskip 7}{eurosl scaled 700} %\CE{cesl scaled 700}
+%\E{\enskip 8}{eurosl scaled 800} %\CE{cesl scaled 800}
+%\E{\enskip 9}{eurosl scaled 900} %\CE{cesl scaled 900}
+ \E{10}{eurosl} \CE{cesl}
+%\E{11}{eurosl scaled \magstephalf} \CE{cesl scaled \magstephalf}
+ \E{12}{eurosl scaled \magstep1} \CE{cesl scaled \magstep1}
+%\E{14}{eurosl scaled \magstep2} \CE{cesl scaled \magstep2}
+ \E{17}{eurosl scaled \magstep3} \CE{cesl scaled \magstep3}
+%\E{21}{eurosl scaled \magstep4} \CE{cesl scaled \magstep4}
+ \E{25}{eurosl scaled \magstep5} \CE{cesl scaled \magstep5}
+%\F{30}{eurosl scaled 2986}
+
+\bigskip
+BOLDFACE SLANTED
+%\E{\enskip 7}{eurobfsl scaled 700}
+%\E{\enskip 8}{eurobfsl scaled 800}
+%\E{\enskip 9}{eurobfsl scaled 900}
+ \E{10}{eurobfsl}
+%\E{11}{eurobfsl scaled \magstephalf}
+ \E{12}{eurobfsl scaled \magstep1}
+%\E{14}{eurobfsl scaled \magstep2}
+ \E{17}{eurobfsl scaled \magstep3}
+%\E{21}{eurobfsl scaled \magstep4}
+ \E{25}{eurobfsl scaled \magstep5}
+%\F{30}{eurobfsl scaled 2986}
+%\F{36}{eurobfsl scaled 3583}
+
+\bigskip
+SPECIALS
+%\G{10}{eurosp}
+%\G{12}{eurosp scaled \magstep1}
+%\G{14}{eurosp scaled \magstep2}
+ \G{17}{eurosp scaled \magstep3}
+%\G{25}{eurosp scaled \magstep5}
+
+\bigskip
+EXAMPLES in 10 point:
+\smallskip
+Roman euro symbol
+ \font\euro = eurorm {\euro E}000 {\euro F}123\hfill
+{\it Italic euro symbol
+ \font\euro = euroit {\euro E}000 {\euro F}123\hfill
+{\sl Slanted euro symbol
+ \font\euro = eurosl {\euro E}000 {\euro F}123}
+\smallskip
+{\bf Boldface euro symbol
+ \font\euro = eurobf {\euro E}000 {\euro F}123}
+
+\vglue-20pt
+\bye
+
diff --git a/fonts/euro-ce/eurobf.mf b/fonts/euro-ce/eurobf.mf
new file mode 100644
index 0000000000..bc59e97687
--- /dev/null
+++ b/fonts/euro-ce/eurobf.mf
@@ -0,0 +1,15 @@
+% EUROBF.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% BOLDFACE VARIANTS OF EURO SYMBOL
+
+message "EUROBF.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROBF"; font_size 10pt#;
+u#:=23/36pt#; % values of cmbx10
+letter_fit#:=0pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+o#:=4/36pt#;
+
+T:=1.3;
+input euromac; % switch to driver file
diff --git a/fonts/euro-ce/eurobfit.mf b/fonts/euro-ce/eurobfit.mf
new file mode 100644
index 0000000000..c5b76eaa07
--- /dev/null
+++ b/fonts/euro-ce/eurobfit.mf
@@ -0,0 +1,15 @@
+% EUROBFIT.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% BOLDFACE ITALIC VARIANTS OF EURO SYMBOL
+
+message "EUROBFIT.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROBFIT"; font_size 10pt#;
+u#:=21.2/36pt#; % values of cmbxti10
+letter_fit#:=11/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+o#:=4/36pt#; % slightly smaller than for cmbxti10
+
+T:=1.3; S:=0.25;
+input euromac; % switch to driver file
diff --git a/fonts/euro-ce/eurobfsl.mf b/fonts/euro-ce/eurobfsl.mf
new file mode 100644
index 0000000000..c8a055447a
--- /dev/null
+++ b/fonts/euro-ce/eurobfsl.mf
@@ -0,0 +1,15 @@
+% EUROBFSL.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% BOLDFACE SLANTED VARIANTS OF EURO SYMBOL
+
+message "EUROBFSL.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROBFSL"; font_size 10pt#;
+u#:=23/36pt#; % values of cmbxsl10
+letter_fit#:=0pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+o#:=4/36pt#;
+
+T:=1.3; S:=1/6;
+input euromac; % switch to driver file
diff --git a/fonts/euro-ce/euroit.mf b/fonts/euro-ce/euroit.mf
new file mode 100644
index 0000000000..83a85acbec
--- /dev/null
+++ b/fonts/euro-ce/euroit.mf
@@ -0,0 +1,15 @@
+% EUROIT.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% ITALIC VARIANTS OF EURO SYMBOL
+
+message "EUROIT.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROIT"; font_size 10pt#;
+u#:=18.4/36pt#; % values of cmti10
+letter_fit#:=9.2/36pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmti10
+
+S:=0.25;
+input euromac; % switch to driver file
diff --git a/fonts/euro-ce/euromac.mf b/fonts/euro-ce/euromac.mf
new file mode 100644
index 0000000000..8ce26b861a
--- /dev/null
+++ b/fonts/euro-ce/euromac.mf
@@ -0,0 +1,245 @@
+% EUROMAC.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% DRIVER FILE TO GENERATE EURO SYMBOLS
+% FILE SHOULD BE RENAMED WHENEVER IT IS MODIFIED!
+
+
+message "EUROMAC.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+mode_setup;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def draw_euro =
+
+italcorr 0.85BoxHeight#*S; % height of upper right corner times S
+
+% ---------- Geometrical parameters ----------
+OuterDiameter#:=BoxHeight# + 2o#; % o_correction omitted
+define_pixels(OuterDiameter);
+w#:=(LeftMargin# + 0.99282*WidthFactor(C,T)*C*OuterDiameter#
+ + RightMargin#); % cf. notes to WidthFactor below
+charwd:=w#;
+define_whole_pixels(w);
+
+BarSeparation:=1/12OuterDiameter;
+Thickness:=1/12OuterDiameter*T;
+BarProtrusion:=(5/6cosd40 - 1/2)*OuterDiameter;
+
+% The leftward protrusion of the bars is defined on the basis of the
+% official symbol, for which, measured in the horizontal direction, the
+% left end of the bars is twice as far from the circle center as the lower
+% right end of the beak.
+
+% ---------- Transformation ----------
+currenttransform:=identity if C<>1: xscaled C fi if S<>0: slanted S fi
+ transformed add_transform;
+% The transform add_transform may provide additional transformations,
+% such as reflections and rotations.
+
+% ---------- Pen ----------
+pickup pencircle scaled Thickness;
+
+% ---------- Circle ----------
+Left:=LeftMargin/C + BarProtrusion; % abscissa of circle's leftmost edge
+z1=(Left + 1/2Thickness/C, 1/2h);
+z0=z1 + (good.y(1/2OuterDiameter - 1/2Thickness + 1/2h) - 1/2h, 0);
+forsuffixes $=2,3,4,5,6,7,8: z$=z1 rotatedaround(z0,45*($-1)); endfor;
+
+% To lessen the risk of pimples at the horizontal tangents, the circle's
+% center point z0 is positioned at such a distance from z1 that z3 and z7
+% have "good" y values.
+
+draw z1{down}..z2{down+right}..z3{right}..z4{right+up}..z5{up}..
+ z6{up+left}..z7{left}..z8{left+down}..cycle;
+
+% ---------- Defining beak ----------
+% The beak of the official euro symbol is defined by the point where the
+% radius at 40 degrees from horizontal meets the circle. We rather use
+% the equivalent definition that the median of the circle, i.e., the path
+% traversed by the pen, ends at 42.6717 degrees (z31).
+
+z31=z1 rotatedaround(z0,-180+42.6717);
+z32=(x3,y3-1/2Thickness);
+z33=whatever[z32,z31];
+x33=x31 - OuterDiameter*(0.01780 % so far the official geometry
+ + 0.01780*(T-1) + 0.005*(C-1) - 0.004*S + 0.003*(C-1)*(C-1)
+ + 0.002*(C-1)*(T-1))/C; % cf. notes to WidthFactor below
+
+% ---------- Cross bars ----------
+z40=(round(Left-BarProtrusion),y41+pen_bot);
+z50=(x40,y51+pen_bot);
+extra_pixel_x:=1;
+z41=(x40 + (min(pen_bot*S,pen_top*S) - extra_pixel_x)/C,
+ good.y(y0 + 1/2BarSeparation + 1/2Thickness));
+z42=(x33 + (max(pen_bot*S,pen_top*S) + extra_pixel_x)/C,y41);
+z51=(x41, good.y(y0 - 1/2BarSeparation - 1/2Thickness));
+z52-z42=whatever*(z31-z32); y52=y51;
+
+% The median heights y41 and y51 of the cross bars have "good" values
+% and the abscissae x40 and x50 of the left ends are rounded to integers
+% for the sake of uniformity at low resolution.
+
+draw z41--z42;
+draw z51--z52;
+
+% ---------- Erasing excess ----------
+% One extra pixel is added to be on the safe side. Note that sloped
+% tangents to the pen circle are horizontally displaced from the pen's
+% center by sqrt(1+S**2) times the radius. Instead of the square root,
+% we rely on the more efficient function 1+abs(S), which is equal or
+% larger. We however first normalize the current picture, because
+% regions where bars and circle overlap and possibly some pixels near
+% z1 to z8 have double weight.
+
+cull currentpicture keeping (1,infinity) withweight 1;
+
+extra_pixel_x:=1; extra_pixel_y:=1;
+z61=(x5 + (pen_rt + max(pen_top*S,pen_bot*S) + extra_pixel_x)/C,y7);
+z62=whatever[z32,z31]; y62=y7;
+z63=whatever[z32,z31]; y63=y51+pen_bot-extra_pixel_y;
+z64=(x33,y63);
+z65=(x64,y32);
+z66=(x61,y32);
+unfill z61--z62--z63--z64--z65--z66--cycle;
+
+z71-z40=whatever*(z32-z31); y71=y41+pen_top+extra_pixel_y;
+z72=(x41 + (pen_lft + min(pen_bot*S,pen_top*S) - extra_pixel_x)/C,y71);
+z73=(x72,y74);
+z74-z40=whatever*(z32-z31); y74=y41+pen_bot-extra_pixel_y;
+unfill z71--z72--z73--z74--cycle;
+
+z75-z50=whatever*(z32-z31); y75=y51+pen_top+extra_pixel_y;
+z76=(x72,y75);
+z77=(x72,y78);
+z78-z50=whatever*(z32-z31); y78=y51+pen_bot-extra_pixel_y;
+unfill z75--z76--z77--z78--cycle;
+
+% ---------- Pen labels ----------
+penlabels(0,1,2,3,4,5,6,7,8,31,32,33,40,41,42,50,51,52,
+ 61,62,63,64,65,66,71,72,73,74,75,76,77,78);
+
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def WidthFactor(expr C,T) =
+% The overall width of the official euro symbol, i.e., the horizontal
+% distance between the left end of the bars and the upper outer corner of
+% the beak, amounts to
+% (5/6cosd40 + 1/2sind(2angle(5cosd40,6+5sind40))) = 0.99282
+% times the outer diameter. Transformations while keeping the pen nib
+% invariant as well as changing the thickness displace these end points
+% from their "official" positions. The associated corrections to the
+% width are to sufficient accuracy approximated by the factor
+ (1 - (0.017*(T-1) + 0.051*(C-1) + 0.004*S + 0.068*(C-1)*(T-1))/C)
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def makebox(text r) =
+for y=0,1/2h,h: r((y*S,y),(w+y*S,y)); endfor;
+for x=0,LeftMargin,w-RightMargin,w:
+ if S=0: r((x,0),(x,h));
+ else: for y=0,1/2h,h: r((x+y*S,y-0.01h),(x+y*S,y+0.01h)); endfor; fi;
+endfor;
+if S>0: r((w+charic*pt,3/4h),(w+charic*pt,h+o)); fi;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def outline = % cf. The METAFONTbook, p.244
+cull currentpicture keeping (1,infinity) withweight 1;
+picture v; v:=currentpicture;
+cull currentpicture keeping (1,1) withweight 3;
+addto currentpicture also v
+ -v shifted right -v shifted left -v shifted up -v shifted down;
+cull currentpicture keeping (1,4);
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Generating symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ---------- Defaults, pixels ----------
+LeftMargin#:=20/36pt#; RightMargin#:=20/36pt#; % universal values
+define_pixels(LeftMargin,RightMargin,o);
+
+if unknown C: C:=1; fi; % no condensing is default
+if unknown S: S:=0; fi; % no slanting is default
+if unknown T: T:=1; fi; % official thickness is default
+
+transform add_transform; def add_transform = identity enddef;
+
+% ---------- Return to calling file? ----------
+% Now generate the font unless you wish to return to the calling file.
+if unknown Return: relax elseif Return=1: endinput; fi;
+
+% ---------- Font dimensions ----------
+font_slant S;
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- Euro as high as capital C ----------
+BoxHeight#:=cap_height#; % width of box is computed by draw_euro
+
+C:=1;
+"Official euro symbol (cap height)";
+beginchar("E",0,BoxHeight#,0); draw_euro; endchar;
+"Official euro symbol (cap height outline)";
+beginchar("O",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.887; % golden section**(1/4)
+"Demicondensed (cap height)";
+beginchar("D",0,BoxHeight#,0); draw_euro; endchar;
+"Demicondensed (cap height outline)";
+beginchar("N",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.786; % square root of golden section
+"Condensed (cap height)";
+beginchar("F",0,BoxHeight#,0); draw_euro; endchar;
+"Condensed (cap height outline)";
+beginchar("P",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.618; % golden section
+"Double condensed (cap height)";
+beginchar("G",0,BoxHeight#,0); draw_euro; endchar;
+"Double condensed (cap height outline)";
+beginchar("Q",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+% ---------- Euro as high as numerals ----------
+BoxHeight#:=fig_height#;
+
+C:=1;
+"Official euro symbol (fig height)";
+beginchar("e",0,BoxHeight#,0); draw_euro; endchar;
+"Official euro symbol (fig height outline)";
+beginchar("o",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.887; % golden section**(1/4)
+"Demicondensed (fig height)";
+beginchar("d",0,BoxHeight#,0); draw_euro; endchar;
+"Demicondensed (fig height outline)";
+beginchar("n",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.786; % square root of golden section
+"Condensed (fig height)";
+beginchar("f",0,BoxHeight#,0); draw_euro; endchar;
+"Condensed (fig height outline)";
+beginchar("p",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.618; % golden section
+"Double condensed (fig height)";
+beginchar("g",0,BoxHeight#,0); draw_euro; endchar;
+"Double condensed (fig height outline)";
+beginchar("q",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+bye
+
diff --git a/fonts/euro-ce/euroof.mf b/fonts/euro-ce/euroof.mf
new file mode 100644
index 0000000000..2fd53118f1
--- /dev/null
+++ b/fonts/euro-ce/euroof.mf
@@ -0,0 +1,36 @@
+% EUROOF.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% OFFICIAL EURO SYMBOL
+
+message "EUROOF.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROOF"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmr10
+
+Return:=1; input euromac; % switch to driver file, but return in time
+
+% ---------- Font dimensions ----------
+font_slant 0;
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- Generating symbols ----------
+C:=1; S:=0; T:=1;
+
+"Official euro symbol (cap height)";
+BoxHeight#:=cap_height#; % width of box is computed by draw_euro
+beginchar("E",0,BoxHeight#,0); draw_euro; endchar;
+
+"Official euro symbol (fig height)";
+BoxHeight#:=fig_height#;
+beginchar("e",0,BoxHeight#,0); draw_euro; endchar;
+
+bye
diff --git a/fonts/euro-ce/eurorm.mf b/fonts/euro-ce/eurorm.mf
new file mode 100644
index 0000000000..c97bd91dac
--- /dev/null
+++ b/fonts/euro-ce/eurorm.mf
@@ -0,0 +1,14 @@
+% EURORM.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% ROMAN VARIANTS OF EURO SYMBOL
+
+message "EURORM.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EURORM"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmr10
+
+input euromac; % switch to driver file
diff --git a/fonts/euro-ce/eurosl.mf b/fonts/euro-ce/eurosl.mf
new file mode 100644
index 0000000000..87ed058231
--- /dev/null
+++ b/fonts/euro-ce/eurosl.mf
@@ -0,0 +1,15 @@
+% EUROSL.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% SLANTED VARIANTS OF EURO SYMBOL
+
+message "EUROSL.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROSL"; font_size 10pt#;
+u#:=20/36pt#; % values of cmsl10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmsl10
+
+S:=1/6;
+input euromac; % switch to driver file
diff --git a/fonts/euro-ce/eurosp.mf b/fonts/euro-ce/eurosp.mf
new file mode 100644
index 0000000000..4d2f750971
--- /dev/null
+++ b/fonts/euro-ce/eurosp.mf
@@ -0,0 +1,124 @@
+% EUROSP.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% EXAMPLE FILE FOR SPECIAL EFFECTS
+% FILE SHOULD BE RENAMED WHENEVER IT IS MODIFIED!
+
+message "EUROSP.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROSP"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmr10
+
+% Switch to the driver file, but return in time to do the specials.
+Return:=1; input euromac;
+
+% ---------- Font dimensions ----------
+font_slant 0; % most symbols are upright
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- Generating symbols ----------
+"Official euro symbol";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+beginchar("E",0,BoxHeight#,0); draw_euro; endchar;
+
+"Thick";
+BoxHeight#:=cap_height#; C:=1; T:=4/3; S:=0;
+beginchar("a",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very thick";
+BoxHeight#:=cap_height#; C:=1; T:=5/3; S:=0;
+beginchar("b",0,BoxHeight#,0); draw_euro; endchar;
+
+"Thin";
+BoxHeight#:=cap_height#; C:=1; T:=2/3; S:=0;
+beginchar("c",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very thin";
+BoxHeight#:=cap_height#; C:=1; T:=1/3; S:=0;
+beginchar("d",0,BoxHeight#,0); draw_euro; endchar;
+
+"Dunhill";
+BoxHeight#:=351/251*cap_height#;
+% Adjust C and T such that width and thickness equal those of the official
+% euro symbol
+T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0;
+C:=T; % first approximation
+C:=T/WidthFactor(C,T); % second approximation
+beginchar("e",0,BoxHeight#,0); draw_euro; endchar;
+
+"Tall";
+BoxHeight#:=2*cap_height#;
+T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0;
+C:=T; C:=T/WidthFactor(C,T);
+beginchar("f",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very tall";
+BoxHeight#:=3*cap_height#;
+T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0;
+C:=T; C:=T/WidthFactor(C,T);
+beginchar("g",0,BoxHeight#,0); draw_euro; endchar;
+
+"Narrow";
+BoxHeight#:=cap_height#; C:=1/2; T:=1; S:=0;
+beginchar("h",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very narrow";
+BoxHeight#:=cap_height#; C:=1/3; T:=1; S:=0;
+beginchar("i",0,BoxHeight#,0); draw_euro; endchar;
+
+"Wide";
+BoxHeight#:=cap_height#; C:=2; T:=1; S:=0;
+beginchar("j",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very wide";
+BoxHeight#:=cap_height#; C:=3; T:=1; S:=0;
+beginchar("k",0,BoxHeight#,0); draw_euro; endchar;
+
+"Leaning backward";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=-1/6;
+beginchar("l",0,BoxHeight#,0); draw_euro; endchar;
+
+"Leaning forward";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=1/2;
+beginchar("m",0,BoxHeight#,0); draw_euro; endchar;
+
+"Leaning very forward";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=1;
+beginchar("n",0,BoxHeight#,0); draw_euro; endchar;
+
+"Mirrored";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+begingroup;
+save add_transform;
+def add_transform = identity % w=box width in pixels
+ reflectedabout ((1/2w,0),(1/2w,h)); enddef; % h=box height in pixels
+beginchar("o",0,BoxHeight#,0); draw_euro; endchar;
+endgroup;
+
+"Rotated";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+begingroup;
+save add_transform;
+def add_transform= identity
+ rotatedabout ((1/2w,1/2h),180); enddef;
+beginchar("p",0,BoxHeight#,0); draw_euro; endchar;
+endgroup;
+
+"Tilted";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+begingroup;
+save add_transform;
+def add_transform= identity
+ rotatedabout ((LeftMargin+0.638OuterDiameter,1/2h),5); enddef;
+beginchar("q",0,BoxHeight#,0); draw_euro; endchar;
+endgroup;
+
+bye