summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/euro-ce
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
commit215012a8d684889983ec2c0629e1c704e6853d9c (patch)
treeebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/euro-ce
parent1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff)
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/euro-ce')
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/ceit.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/cemac.mf107
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/cerm.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/cesl.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurobf.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurobfit.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurobfsl.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/euroit.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/euromac.mf245
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/euroof.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurorm.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurosl.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurosp.mf124
13 files changed, 642 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/ceit.mf b/Master/texmf-dist/fonts/source/public/euro-ce/ceit.mf
new file mode 100644
index 00000000000..45424232f3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/cemac.mf b/Master/texmf-dist/fonts/source/public/euro-ce/cemac.mf
new file mode 100644
index 00000000000..866f28e5c11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/cerm.mf b/Master/texmf-dist/fonts/source/public/euro-ce/cerm.mf
new file mode 100644
index 00000000000..5c54bea2763
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/cesl.mf b/Master/texmf-dist/fonts/source/public/euro-ce/cesl.mf
new file mode 100644
index 00000000000..23dccfcbd0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/eurobf.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurobf.mf
new file mode 100644
index 00000000000..bc59e976877
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/eurobfit.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurobfit.mf
new file mode 100644
index 00000000000..c5b76eaa073
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/eurobfsl.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurobfsl.mf
new file mode 100644
index 00000000000..c8a055447af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/euroit.mf b/Master/texmf-dist/fonts/source/public/euro-ce/euroit.mf
new file mode 100644
index 00000000000..83a85acbec2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/euromac.mf b/Master/texmf-dist/fonts/source/public/euro-ce/euromac.mf
new file mode 100644
index 00000000000..8ce26b861aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/euroof.mf b/Master/texmf-dist/fonts/source/public/euro-ce/euroof.mf
new file mode 100644
index 00000000000..2fd53118f10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/eurorm.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurorm.mf
new file mode 100644
index 00000000000..c97bd91dacc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/eurosl.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurosl.mf
new file mode 100644
index 00000000000..87ed0582314
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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/Master/texmf-dist/fonts/source/public/euro-ce/eurosp.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurosp.mf
new file mode 100644
index 00000000000..4d2f7509712
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/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