diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/euro-ce |
Initial commit
Diffstat (limited to 'fonts/euro-ce')
l--------- | fonts/euro-ce/README | 1 | ||||
-rw-r--r-- | fonts/euro-ce/ceit.mf | 14 | ||||
-rw-r--r-- | fonts/euro-ce/cemac.mf | 107 | ||||
-rw-r--r-- | fonts/euro-ce/cerm.mf | 13 | ||||
-rw-r--r-- | fonts/euro-ce/cesl.mf | 14 | ||||
-rw-r--r-- | fonts/euro-ce/euro-ce.doc | 211 | ||||
-rw-r--r-- | fonts/euro-ce/euro-ce.tex | 129 | ||||
-rw-r--r-- | fonts/euro-ce/eurobf.mf | 15 | ||||
-rw-r--r-- | fonts/euro-ce/eurobfit.mf | 15 | ||||
-rw-r--r-- | fonts/euro-ce/eurobfsl.mf | 15 | ||||
-rw-r--r-- | fonts/euro-ce/euroit.mf | 15 | ||||
-rw-r--r-- | fonts/euro-ce/euromac.mf | 245 | ||||
-rw-r--r-- | fonts/euro-ce/euroof.mf | 36 | ||||
-rw-r--r-- | fonts/euro-ce/eurorm.mf | 14 | ||||
-rw-r--r-- | fonts/euro-ce/eurosl.mf | 15 | ||||
-rw-r--r-- | fonts/euro-ce/eurosp.mf | 124 |
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 |