diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/fonts/esrelation/README.md | 54 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/esrelation/esrelation.pdf | bin | 0 -> 157085 bytes | |||
-rw-r--r-- | Master/texmf-dist/fonts/map/dvips/esrelation/esrelation.map | 1 | ||||
-rw-r--r-- | Master/texmf-dist/fonts/source/public/esrelation/esrelation.mf | 439 | ||||
-rw-r--r-- | Master/texmf-dist/fonts/source/public/esrelation/esrelation10.mf | 124 | ||||
-rw-r--r-- | Master/texmf-dist/fonts/tfm/public/esrelation/esrelation10.tfm | bin | 0 -> 280 bytes | |||
-rw-r--r-- | Master/texmf-dist/fonts/type1/public/esrelation/esrelation10.pfb | bin | 0 -> 28168 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/fonts/esrelation/esrelation.dtx | 842 | ||||
-rw-r--r-- | Master/texmf-dist/source/fonts/esrelation/esrelation.ins | 19 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/esrelation/esrelation.sty | 122 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/esrelation/uesrelation.fd | 17 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 4 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/esrelation.tlpsrc | 1 |
14 files changed, 1622 insertions, 2 deletions
diff --git a/Master/texmf-dist/doc/fonts/esrelation/README.md b/Master/texmf-dist/doc/fonts/esrelation/README.md new file mode 100644 index 00000000000..7faae08b657 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/esrelation/README.md @@ -0,0 +1,54 @@ +The ESRELATION package +====================== +by Byron Cook, Tauba Auerbach, David Reinfurt + +About +----- + +The program termination problem, also known at the uniform halting problem, can be defined as: *Using a finite amount of time: determine whether a given program will always finish running or could possibly execute forever.* + +The Metafont programming and LaTeX package writing and TeX macro programming (*especially the TeX macro programming*) required to produce these symbols looked like it might, itself, never end. It took more than a year of work in fits and starts to understand how the jalopy of bits and pieces go together to make a font work with LaTeX. [The Comprehensive LaTeXe Symbol List](http://www.ctan.org/tex-archive/info/symbols/comprehensive/ "CTAN") does not currently include this set, but on completion all of these files will be ready to upload in the correct formats for inclusion. These are implemented as a standard TeX math symbol font, implemented with custom Metafont sources, rendered on-the-fly as needed by LaTeX. Also provided in this package is a PostScript Type-1 version of the font. Symbols are accessed through macros defined in this package. + +Installation +------------ + ++ run latex on esrelation.ins to generate sty, mf, fd files + > $ latex esrelation.ins + ++ run latex (or pdflatex) on esrelation.dtx to generate documentation (including detailed installation instructions) + > $ pdflatex esrelation.dtx + ++ determine the location of your local TeX tree by running + > $ kpsewhich --var-val TEXMFLOCAL + + (this value will henceforth be referred to as ‘TEXMFLOCAL’) + ++ install esrelation.sty and uesrelation.fd in + > TEXMFLOCAL/tex/latex/esrelation + ++ install esrelation.mf and esrelation10.mf in + > TEXMFLOCAL/fonts/source/public/esrelation + ++ install esrelation10.pfb in + > TEXMFLOCAL/fonts/type1/public/esrelation + ++ install esrelation.map in + > TEXMFLOCAL/fonts/map/dvips/esrelation + +**NB**: all created directories should be set to mode 755 and all of the above files should be set to mode 644. + ++ update LaTeX font database + > $ sudo -H mktexlsr + ++ update TeX font map + > $ sudo -H updmap-sys --enable Map=esrelation.map + ++ udpate the font database again + > $ sudo -H mktexlsr + +Resources +--------- + +Up-to-date source code is hosted on [GitHub](https://github.com/reinfurt/ESRELATION). + +More information about installing TeX fonts can be found [here](https://www.tug.org/fonts/fontinstall.html). diff --git a/Master/texmf-dist/doc/fonts/esrelation/esrelation.pdf b/Master/texmf-dist/doc/fonts/esrelation/esrelation.pdf Binary files differnew file mode 100644 index 00000000000..26e0fbba2c0 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/esrelation/esrelation.pdf diff --git a/Master/texmf-dist/fonts/map/dvips/esrelation/esrelation.map b/Master/texmf-dist/fonts/map/dvips/esrelation/esrelation.map new file mode 100644 index 00000000000..33c3cc0a0c4 --- /dev/null +++ b/Master/texmf-dist/fonts/map/dvips/esrelation/esrelation.map @@ -0,0 +1 @@ +esrelation10 esrelation10 <esrelation10.pfb diff --git a/Master/texmf-dist/fonts/source/public/esrelation/esrelation.mf b/Master/texmf-dist/fonts/source/public/esrelation/esrelation.mf new file mode 100644 index 00000000000..dce9d587716 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/esrelation/esrelation.mf @@ -0,0 +1,439 @@ +%% +%% This is file `esrelation.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% esrelation.dtx (with options: `mf') +%% +%% Copyright (C) 2015 +%% by Byron Cook, Tauba Auerbach, and David Reinfurt +%% + +%% mf setup + +font_coding_scheme:="TeX math symbols"; +mode_setup; font_setup; + +autorounding:=0; +font_slant slant; font_x_height x_height#; +font_quad 18u# if not monospace:+4letter_fit# fi; +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; + +%% identify symbols + +%% brackets + +bracket_project_right=oct"025"; +bracket_project_left=oct"024"; +bracket_lifting=oct"026"; + +%% symbols + +restrict_wand=oct"027"; +restrict_barb=oct"030"; +restrict_mallet=oct"021"; +restrict_wand_up=oct"050"; +restrict_barb_up=oct"051"; +restrict_mallet_up=oct"052"; + +%% arrows + +r_arrow22=oct"021"; + +arrow_project_right=oct"022"; +arrow_project_left=oct"023"; + +%% bars + +barshort=oct"040"; +barlong=oct"043"; +verticalbarlongleft=oct"044"; +verticalbarlongright=oct"046"; +verticalbarshort=oct"045"; + +%% declare extensible + +extensible oct"025": oct"025",0,0,oct"044"; +extensible oct"024": oct"024",0,0,oct"044"; + +%% define pixels + +define_pixels(em, cap, sb, penscaler); % Convert to device-specific units. +define_corrected_pixels(o); % Same, but add a device-specific fudge factor. + +%% relation utility dims + +%% u = (w-(2*sb))/8; % utility measurement +uu = (h-(2*sb))/8; % utility measurement (using h, not w) +super = 3.9; % offset utility for curve roundness [2.8] + +%% Arrow project Right + +iff known arrow_project_right: cmchar "arrow_project_right"; +compute_spread(.45x_height#,.55x_height#); +beginchar(arrow_project_right,10u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (-5u, math_axis); + z2 = (10u, y1); + z3 = (x2-5u, y2+5u); + + %% Draw + + draw z1 -- z2 -- z3; % right arrow + penlabels(1,2,3,4,5,6); + +endchar; + +%% Arrow project Left + +iff known arrow_project_left: cmchar "arrow_project_left"; +compute_spread(.45x_height#,.55x_height#); +beginchar(arrow_project_left,10u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (15u, math_axis); + z2 = (0, y1); + z3 = (x2+5u, y2+5u); + + %% Draw + + draw z1 -- z2 -- z3; % right arrow + penlabels(1,2,3,4,5,6); + +endchar; + +%% Bracket project Right + +iff known bracket_project_right: cmchar "bracket_project_right"; +compute_spread(.45x_height#,.55x_height#); +beginchar(bracket_project_right,5u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (0, -3*desc_depth); + z2 = (x1, math_axis-4u); + z3 = (x1+5u/super, y4-5u/super); + z4 = (x1+4u, math_axis); + z5 = (15u, y4); + + %% Draw + + draw z1 -- z2 .. z3 .. z4 -- z5; % right bracket + penlabels(1,2,3,4,5,6); + +endchar; + +%% Bracket project Left + +iff known bracket_project_left: cmchar "bracket_project_left"; +compute_spread(.45x_height#,.55x_height#); +beginchar(bracket_project_left,5u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (w, -3*desc_depth); + z2 = (x1, math_axis-4u); + z3 = (x1-5u/super, y4-5u/super); + z4 = (x1-4u, math_axis); + z5 = (-10u, y4); + + %% Draw + + draw z1 -- z2 .. z3 .. z4 -- z5; % right bracket + penlabels(1,2,3,4,5,6); + +endchar; + +%% Bracket Lifting + +iff known bracket_lifting: cmchar "bracket_lifting"; +compute_spread(.45x_height#,.55x_height#); +beginchar(bracket_lifting,5u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (0, h+10u); + z2 = (x1, math_axis+4u); + z3 = (x1+5u/super, y4+5u/super); + z4 = (4u, math_axis); + z5 = (w+10u, y4); + + %% Draw + + draw z1 -- z2 .. z3 .. z4 -- z5; % bracket + penlabels(1,2,3,4,5,6); + +endchar; + + +iff known barshort: cmchar "barshort"; +compute_spread(.45x_height#,.55x_height#); +beginchar(barshort,3u#,v_center(spread#+rule_thickness#)); + +adjust_fit(0,0); +pickup pencircle scaled (penscaler); % small, circular tip +x1=eps; +x2=w-eps+1u; +y1=y2=math_axis; +draw z1--z2; +penlabels(1,2); + +endchar; + +%% Bar Long + +iff known barlong: cmchar "barlong"; +compute_spread(.45x_height#,.55x_height#); +beginchar(barlong,6u#,v_center(spread#+rule_thickness#)); + +adjust_fit(0,0); +pickup pencircle scaled (penscaler); % small, circular tip +x1=eps; +x2=w-eps+1u; +y1=y2=math_axis; +draw z1--z2; +penlabels(1,2); + +endchar; + +%% Vertical Bar Long Left + +iff known verticalbarlongleft: cmchar "verticalbarlongleft"; +compute_spread(.45x_height#,.55x_height#); +beginchar(verticalbarlongleft,5u#,v_center(spread#+rule_thickness#)); + +adjust_fit(0,0); +pickup pencircle scaled (penscaler); % small, circular tip +x1=x2=0; +y1=asc_height-5u; +y2=0; +draw z1--z2; +penlabels(1,2); + +endchar; + +%% Vertical Bar Long Right + +iff known verticalbarlongright: cmchar "verticalbarlongright"; +compute_spread(.45x_height#,.55x_height#); +beginchar(verticalbarlongright,5u#,v_center(spread#+rule_thickness#)); + +adjust_fit(0,0); +pickup pencircle scaled (penscaler); % small, circular tip +x1=x2=w; +y1=asc_height-5u; +y2=0; +draw z1--z2; +penlabels(1,2); + +endchar; + +%% Vertical Bar Short + +iff known verticalbarshort: cmchar "verticalbarshort"; +compute_spread(.45x_height#,.55x_height#); +beginchar(verticalbarshort,5u#,v_center(spread#+rule_thickness#)); + +adjust_fit(0,0); +pickup pencircle scaled (penscaler); % small, circular tip +x1=x2=0; +y1=1u; +y2=0; +draw z1--z2; +penlabels(1,2); + +endchar; + +%% restrict Wand + +iff known restrict_wand: cmchar "restrict_wand"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_wand,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); + + %% Points + + z1 = (3u, asc_height); % bar + z2 = (x1, -2*u); + + z3 = (x1-2*u, 0); % asterisk + z4 = (x1+2*u, y3); + z5 = (x1-1.4*u, y3+1.4*u); + z6 = (x1+1.4*u, y3-1.4*u); + z7 = (x6, y5); + z8 = (x5, y6); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4; % * + draw z5 -- z6; + draw z7 -- z8; + +penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + +%% restrict Wand Up + +iff known restrict_wand_up: cmchar "restrict_wand_up"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_wand_up,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); + + %% Points + + z1 = (3u, -2u); % bar + z2 = (x1, asc_height); + + z3 = (x1-2*u, y2-2u); % asterisk + z4 = (x1+2*u, y3); + z5 = (x1-1.4*u, y3+1.4*u); + z6 = (x1+1.4*u, y3-1.4*u); + z7 = (x6, y5); + z8 = (x5, y6); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4; % * + draw z5 -- z6; + draw z7 -- z8; + +penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + +%% restrict Barb + +iff known restrict_barb: cmchar "restrict_barb"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_barb,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, asc_height); % bar + z2 = (x1, -2*u); + + z3 = (x1-2*u, 0); % diamond + z4 = (x1+2*u, y3); + z5 = (x1, 2*u); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4 -- z5; % _\ + draw z2 -- z3; % \ + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + +%% restrict Barb Up + +iff known restrict_barb_up: cmchar "restrict_barb_up"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_barb_up,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, -2u); % bar + z2 = (x1, asc_height); + + z3 = (x1-2*u, y2-2u); % diamond + z4 = (x1+2*u, y3); + z5 = (x1, y3-2u); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4 -- z5; % _\ + draw z2 -- z3; % \ + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + +%% restrict Mallet + +iff known restrict_mallet: cmchar "restrict_mallet"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_mallet,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, asc_height); % bar + z2 = (x1, -2*u); + + z3 = (x1-(4/3)*u, (-2/3)*u); % diamond + z4 = (x1+(4/3)*u, y3); + z5 = (x1, (2/3)*u); + + %% Draw + + draw z1 -- z2; % | + draw z3 .. z5 .. z4 .. z2 .. z3; % o + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + +%% restrict Mallet up + +iff known restrict_mallet_up: cmchar "restrict_mallet_up"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_mallet_up,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, -2u); % bar + z2 = (x1, asc_height); + + z3 = (x1-(4/3)*u, y2-4/3u); % diamond + z4 = (x1+(4/3)*u, y3); + z5 = (x1, y3-4/3u); + + %% Draw + + draw z1 -- z2; % | + draw z3 .. z5 .. z4 .. z2 .. z3; % o + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + +bye. + +\endinput +%% +%% End of file `esrelation.mf'. diff --git a/Master/texmf-dist/fonts/source/public/esrelation/esrelation10.mf b/Master/texmf-dist/fonts/source/public/esrelation/esrelation10.mf new file mode 100644 index 00000000000..cdc4036fa2d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/esrelation/esrelation10.mf @@ -0,0 +1,124 @@ +%% +%% This is file `esrelation10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% esrelation.dtx (with options: `mf10') +%% +%% Copyright (C) 2015 +%% by Byron Cook, Tauba Auerbach, and David Reinfurt +%% +if unknown cmbase: input cmbase fi + +font_identifier:="VECT"; +font_size 10pt#; + +%% relation specific measures + +em# := 10pt#; % ``M'' width +cap# := 7pt#; % cap height +sb# := 1/4pt#; % sidebearing +o# := 1/16pt#; % amt curves overshoot borders +penscaler# := 0.3pt#; % pen stroke scaler ** fix ** + +%% relation non-sharped values * fix * + +%% u = (w-(2*sb))/8; % utility measurement +%% super = 3.9; % offset utility for curve roundness [2.8] + +%% cm values from esvect + +u#:=20/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=8/36pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=9/36pt#; % lowercase hairline breadth +stem#:=24/36pt#; % lowercase stem breadth +curve#:=29/36pt#; % lowercase curve breadth +ess#:=27/36pt#; % breadth in middle of lowercase s +flare#:=32/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=38/36pt#; % diameter of dots +cap_hair#:=11/36pt#; % uppercase hairline breadth +cap_stem#:=30/36pt#; % uppercase stem breadth +cap_curve#:=35/36pt#; % uppercase curve breadth +cap_ess#:=33/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=20/36pt#; % vertical distance from serif base to tangent +jut#:=30/36pt#; % protrusion of lowercase serifs +cap_jut#:=37/36pt#; % protrusion of uppercase serifs +beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=11/36pt#; % lowercase bar thickness +slab#:=11/36pt#; % serif and arm thickness +cap_bar#:=11/36pt#; % uppercase bar thickness +cap_band#:=11/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +%% o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +subs:=7/10; % subscripts to 10pt will normally be in 7pt type +rth#:=.4pt#; % assume that rules will come from cmex10 +fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed + math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1 + math_axis#+1.51rth#+30/36pt#, % num2 + math_axis#+1.51rth#+48/36pt#, % num3 + -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1 + -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2 + 8.99pt#-subs*asc_height#, % sup1 + 8.49pt#-subs*asc_height#, % sup2 + 104/36pt#, % sup3 + 54/36pt#, % sub1 + -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2 + subs*asc_height#-36/36pt#, % sup\_drop + 18/36pt#, % sub\_drop + 23.9pt#, % delim1 + 10.1pt#, % delim2 + math_axis#; % axis\_height + +generate esrelation % switch to the driver file + +\endinput +%% +%% End of file `esrelation10.mf'. diff --git a/Master/texmf-dist/fonts/tfm/public/esrelation/esrelation10.tfm b/Master/texmf-dist/fonts/tfm/public/esrelation/esrelation10.tfm Binary files differnew file mode 100644 index 00000000000..752182e23d1 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/esrelation/esrelation10.tfm diff --git a/Master/texmf-dist/fonts/type1/public/esrelation/esrelation10.pfb b/Master/texmf-dist/fonts/type1/public/esrelation/esrelation10.pfb Binary files differnew file mode 100644 index 00000000000..1c5b3da1bf5 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/esrelation/esrelation10.pfb diff --git a/Master/texmf-dist/source/fonts/esrelation/esrelation.dtx b/Master/texmf-dist/source/fonts/esrelation/esrelation.dtx new file mode 100644 index 00000000000..7de691e262a --- /dev/null +++ b/Master/texmf-dist/source/fonts/esrelation/esrelation.dtx @@ -0,0 +1,842 @@ +% \iffalse meta-comment +% +% testing testing +% +% \fi +% +% \iffalse +%<style>\NeedsTeXFormat{LaTeX2e} +%<style>\ProvidesPackage{esrelation} +%<fd>\ProvidesFile{uesrelation.fd} +%<*driver> +\documentclass[a4paper]{ltxdoc} +\usepackage{esrelation} +\parindent 0 pt +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\OnlyDescription +\begin{document} +\DocInput{esrelation.dtx} +\end{document} +%</driver> +% \fi +%\title{The \textsf{\textbf{esrelation}} Package} +%\author{Byron Cook, Tauba Auerbach, David Reinfurt} +%\date{v 0.$\overline{9}$ 30/04/2015} +%\maketitle +%\MakeShortVerb{\|} +%\section{Installation} +%The program termination problem, also known at the uniform halting problem, can be defined as: \emph{Using a finite amount of time: determine whether a given program will always finish running or could possibly execute forever.}\\ +% +%The Metafont programming and \LaTeXe{} package writing and \TeX macro programming (\emph{especially the \TeX macro programming}) required to produce these symbols looked like it might, itself, never end. It took more than a year of work in fits and starts to understand how the jalopy of bits and pieces go together to make a font work with \LaTeX{}. The Comprehensive \LaTeXe{} Symbol List (http://www.ctan.org/tex-archive/info/symbols/comprehensive/) does not currently include this set, but on completion all of these files will be ready to upload in the correct formats for inclusion. These are implemented as a standard \TeX{} math symbol font, implemented with custom Metafont sources, rendered on-the-fly as needed by \LaTeXe{}. Also provided in this package is a PostScript Type~1 version of the font. Symbols are accessed through macros defined in this package.\\ +% +%Installation involves copying the supplied files to their designated places within \LaTeX{}'s search path and updating \TeX{}'s databases. +% +%\begin{enumerate} +%\item +%First, you need to find the folder \texttt{texmf-local} (on Unix the default is \texttt{/usr/local/texlive/texmf-local}). To do that, run: +% +%\texttt{kpsewhich --var-value TEXMFLOCAL} +% +%Subsequently, this directory will be referred to as \texttt{TEXMFLOCAL}. +% +%\item +%Run \LaTeX{} on \texttt{esrelation.ins}. +%Copy the files into the following directories, creating subdirectories as necessary: +% +%\begin{itemize} +%\item copy \texttt{esrelation.sty} and \texttt{uesrelation.fd} to:\\ +%\texttt{TEXMFLOCAL/tex/latex/esrelation} +% +%\item copy \texttt{esrelation.mf} and \texttt{esrelation10.mf} to:\\ +%\texttt{TEXMFLOCAL/fonts/source/public/esrelation} +%\end{itemize} +% +%If you also want to install the fonts in Type1 format: +%\begin{itemize} +%\item copy \texttt{esrelation10.pfb} to:\\ +%\texttt{TEXMFLOCAL/fonts/type1/public/esrelation} +% +%\item copy \texttt{esrelation.map} to:\\ +%\texttt{TEXMFLOCAL/fonts/map/dvips/esrelation} +% +%\end{itemize} +% +%Note that all created directories should be set to mode \texttt{755} and all files should be set to mode \texttt{644}. +% +% +%\item +%Update your \LaTeX{} font database. This is called the ls-r and lives in a few places. Fortunately, you can just run this, likely as sudo or root (\texttt{-H} sets \texttt{HOME} for the sudo environment): +% +%\texttt{sudo -H mktexlsr} +% +%\item +%Update your \TeX{} font map by running the command: +% +%\texttt{sudo -H updmap-sys --enable Map=esrelation.map} +% +%\item +%Update the font database again: +% +%\texttt{sudo -H mktexlsr} +% +%\item +%Open \LaTeX{}, and start relating. +%\end{enumerate} +% +% \section{Using esrelation} +%Load the package with \verb|\usepackage{esrelation}|. Available symbols to be used from math mode:\\ +% +%\begin{tabular}{l l} +%& \\ +%\verb+\relationrightproject+ & $\relationrightproject{A, Z}$\\ +%&\\ +%\verb+\relationleftproject+ & $\relationleftproject{A, Z}$\\ +%&\\ +%\verb+\relationlifting+ & $\relationlifting{A, Z}$\\ +%&\\ +%\verb+\restrictwand+ & $i_\restrictwand$\\ +%&\\ +%\verb+\restrictwandup+ & $i_\restrictwandup$\\ +%&\\ +%\verb+\restrictbarb+ & $R_\restrictbarb$\\ +%&\\ +%\verb+\restrictbarbup+ & $R_\restrictbarbup$\\ +%&\\ +%\verb+\restrictmallet+ & $Z_\restrictmallet$\\ +%&\\ +%\verb+\restrictmalletup+ & $Z_\restrictmalletup$\\ +%&\\ +%\end{tabular} +% +%\newpage +%\Large +%\parindent 0pt +% +%$\relationrightproject{R_A}$ +% +%\vskip 2em +%$\relationrightproject{0, 1}$ +% +%\vskip 2em +%$\relationleftproject{0, 1}$ +% +%\vskip 2em +%$\relationlifting{0, 1}$ +% +%\vskip 2em +%$\relationleftproject{\relationrightproject{\relationleftproject{\relationrightproject{1, 1}}}}$ +% +%\vskip 2em +%$\relationlifting{x|x>1, x|x=0}$ +% +%\vskip 2em +%$\relationlifting{\relationlifting{\relationlifting{\relationlifting{\relationlifting{x,X_\restrictwand}}}}}$ +% +%\vskip 2em +%$\relationleftproject{\relationlifting{\relationlifting{\relationleftproject{\relationrightproject{\relationleftproject{\relationrightproject{i,R}}}}}}}$ +% +%\vskip 2em +%$X_\restrictwand$ +%$X_\restrictwand^2$ +%$X_\restrictwand^\infty$ +% +%\vskip 2em +%$X_\restrictbarb$ +% +%\vskip 2em +%$X_\restrictmallet$ +% +% \newpage +% \normalsize +% End. Try some more combinations now that it's running. +% +%\StopEventually{} +% \begin{macrocode} +%<*fd> +\DeclareFontFamily{U}{esrelation}{} +\DeclareFontShape{U}{esrelation}{m}{n}{<->esrelation10}{} +%</fd> +% \end{macrocode} +% \begin{macrocode} +%<*style> +\DeclareSymbolFont{esrelation}{U}{esrelation}{m}{n} +\DeclareMathSymbol{\arrwr}{\mathord}{esrelation}{'022} % arrow_project_right +\DeclareMathSymbol{\arrwl}{\mathord}{esrelation}{'023} % arrow_project_left +\DeclareMathSymbol{\brktr}{\mathrel}{esrelation}{'025} % bracket_project_right +\DeclareMathSymbol{\brktl}{\mathrel}{esrelation}{'024} % bracket_project_left +\DeclareMathSymbol{\brktlift}{\mathrel}{esrelation}{'026} % bracket_lifting +\DeclareMathSymbol{\barshort}{\mathrel}{esrelation}{'040} +\DeclareMathSymbol{\barlong}{\mathrel}{esrelation}{'043} +\DeclareMathSymbol{\verticalbarshort}{\mathord}{esrelation}{'045} +\DeclareMathSymbol{\verticalbarlongleft}{\mathord}{esrelation}{'044} +\DeclareMathSymbol{\verticalbarlongright}{\mathord}{esrelation}{'046} +\DeclareMathSymbol{\restrictwand}{\mathord}{esrelation}{'027} +\DeclareMathSymbol{\restrictbarb}{\mathord}{esrelation}{'030} +\DeclareMathSymbol{\restrictmallet}{\mathord}{esrelation}{'021} +\DeclareMathSymbol{\restrictwandup}{\mathord}{esrelation}{'050} +\DeclareMathSymbol{\restrictbarbup}{\mathord}{esrelation}{'051} +\DeclareMathSymbol{\restrictmalletup}{\mathord}{esrelation}{'052} +%%---------------------------------------- +%% 0. main +%%---------------------------------------- + +\ProcessOptions\relax + +\def\relationrightproject{\parindent 0pt\mathpalette{\relationbuildprojectright\relationbarfill}} +\def\relationleftproject{\parindent 0pt\mathpalette{\relationbuildprojectleft\relationbarfill}} +\def\relationlifting{\parindent 0pt\mathpalette{\relationbuildlifting\relationbarfill}} +%%---------------------------------------- +%% 1. fills +%%---------------------------------------- + +\def\relationbarfill#1{ +\m@th\leaders\hbox{$\mkern-2mu\barlong\mkern-2mu$}\hfill +} + +\def\relationverticalbarfillleft#1{ + \hbox to .5em{\vbox to #1{ + \leaders\hbox{\hbox{$\verticalbarlongleft$}} + \vfill\kern-.5em$\verticalbarlongleft$}} +} + +\def\relationverticalbarfillright#1{ + \hbox to .5em{\vbox to #1{ + \leaders\hbox{\hbox{$\verticalbarlongright$}} + \vfill\kern-.5em$\verticalbarlongright$}} +} +%%---------------------------------------- +%% 2. build +%%---------------------------------------- + +\def\relationbuildprojectright #1#2#3{ +%% #1 = \relationbarfill +%% #2 = \mathchoice +%% #3 = \relationleftproject{...} +\setbox0=\hbox{$#3$} %% main expression +\dimen0=\ht0 %% main box height +\dimen1=\wd0 %% main box width +\vbox{ +\ialign{##\crcr +\noalign{\kern-.3em\nointerlineskip} %% overline +\hbox to \dimen1{$\kern.1em\brktr$#1#2}$\mkern-3mu +\arrwr$\crcr +\noalign{\kern-.1em\nointerlineskip}$\m@th %% main +\kern.1em\relationverticalbarfillleft{\dimen0}\kern-.3em\box0 $\crcr +} +} +} + +\def\relationbuildprojectleft #1#2#3{ +%% #1 = \relationbarfill +%% #2 = \mathchoice +%% #3 = \relationleftproject{...} +\setbox0=\hbox{$#3$} %% main expression +\dimen0=\ht0 %% main box height +\dimen1=\wd0 %% main box width +\vbox{ +\ialign{##\crcr +\noalign{\kern-.3em\nointerlineskip} %% overline +\hbox to \dimen1{$\mkern2mu\arrwl$#1#2}$\kern.1em\brktl$\crcr +\noalign{\kern-.1em\nointerlineskip}$\m@th %% main +\mkern3mu\box0\mkern-3mu\kern.1em\relationverticalbarfillright{ +\dimen0}$\crcr +} +} +} + +\def\relationbuildlifting #1#2#3{ +%% #1 = \relationbarfill +%% #2 = \mathchoice +%% #3 = \relationbuildlifting{...} +\setbox0=\hbox{$#3$} %% main expression +\dimen0=\ht0 %% main box height +\dimen1=\wd0 %% main box width +\advance\dimen1 by -.25em %% close horizontal gap +\lower.75ex\hbox{\vbox{ +\ialign{##\crcr +\noalign{\kern0em\nointerlineskip}$\m@th %% main +\kern.1em\relationverticalbarfillleft{\dimen0}\mkern-5mu +\box0 $\crcr +\noalign{\kern-.2em\nointerlineskip} %% underline +\hbox to \dimen1{$\kern.1em\brktlift$#1#2}$\mkern-3mu\barlong +\barlong$\crcr +} +} +}\kern-.25em +} + +%</style> +% \end{macrocode} +% \begin{macrocode} +%<*mf> + +%% mf setup + +font_coding_scheme:="TeX math symbols"; +mode_setup; font_setup; + +autorounding:=0; +font_slant slant; font_x_height x_height#; +font_quad 18u# if not monospace:+4letter_fit# fi; +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; + + +%% identify symbols + +%% brackets + +bracket_project_right=oct"025"; +bracket_project_left=oct"024"; +bracket_lifting=oct"026"; + +%% symbols + +restrict_wand=oct"027"; +restrict_barb=oct"030"; +restrict_mallet=oct"021"; +restrict_wand_up=oct"050"; +restrict_barb_up=oct"051"; +restrict_mallet_up=oct"052"; + + +%% arrows + +r_arrow22=oct"021"; + +arrow_project_right=oct"022"; +arrow_project_left=oct"023"; + +%% bars + +barshort=oct"040"; +barlong=oct"043"; +verticalbarlongleft=oct"044"; +verticalbarlongright=oct"046"; +verticalbarshort=oct"045"; + +%% declare extensible + +extensible oct"025": oct"025",0,0,oct"044"; +extensible oct"024": oct"024",0,0,oct"044"; + + + +%% define pixels + +define_pixels(em, cap, sb, penscaler); % Convert to device-specific units. +define_corrected_pixels(o); % Same, but add a device-specific fudge factor. + + +%% relation utility dims + +%% u = (w-(2*sb))/8; % utility measurement +uu = (h-(2*sb))/8; % utility measurement (using h, not w) +super = 3.9; % offset utility for curve roundness [2.8] + + +%% Arrow project Right + +iff known arrow_project_right: cmchar "arrow_project_right"; +compute_spread(.45x_height#,.55x_height#); +beginchar(arrow_project_right,10u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (-5u, math_axis); + z2 = (10u, y1); + z3 = (x2-5u, y2+5u); + + %% Draw + + draw z1 -- z2 -- z3; % right arrow + penlabels(1,2,3,4,5,6); + +endchar; + + +%% Arrow project Left + +iff known arrow_project_left: cmchar "arrow_project_left"; +compute_spread(.45x_height#,.55x_height#); +beginchar(arrow_project_left,10u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (15u, math_axis); + z2 = (0, y1); + z3 = (x2+5u, y2+5u); + + %% Draw + + draw z1 -- z2 -- z3; % right arrow + penlabels(1,2,3,4,5,6); + +endchar; + + +%% Bracket project Right + +iff known bracket_project_right: cmchar "bracket_project_right"; +compute_spread(.45x_height#,.55x_height#); +beginchar(bracket_project_right,5u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (0, -3*desc_depth); + z2 = (x1, math_axis-4u); + z3 = (x1+5u/super, y4-5u/super); + z4 = (x1+4u, math_axis); + z5 = (15u, y4); + + %% Draw + + draw z1 -- z2 .. z3 .. z4 -- z5; % right bracket + penlabels(1,2,3,4,5,6); + +endchar; + + +%% Bracket project Left + +iff known bracket_project_left: cmchar "bracket_project_left"; +compute_spread(.45x_height#,.55x_height#); +beginchar(bracket_project_left,5u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (w, -3*desc_depth); + z2 = (x1, math_axis-4u); + z3 = (x1-5u/super, y4-5u/super); + z4 = (x1-4u, math_axis); + z5 = (-10u, y4); + + %% Draw + + draw z1 -- z2 .. z3 .. z4 -- z5; % right bracket + penlabels(1,2,3,4,5,6); + +endchar; + + +%% Bracket Lifting + +iff known bracket_lifting: cmchar "bracket_lifting"; +compute_spread(.45x_height#,.55x_height#); +beginchar(bracket_lifting,5u#,cap#, 1pt#); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + + %% Points + + z1 = (0, h+10u); + z2 = (x1, math_axis+4u); + z3 = (x1+5u/super, y4+5u/super); + z4 = (4u, math_axis); + z5 = (w+10u, y4); + + %% Draw + + draw z1 -- z2 .. z3 .. z4 -- z5; % bracket + penlabels(1,2,3,4,5,6); + +endchar; + + +% Bar Short + +iff known barshort: cmchar "barshort"; +compute_spread(.45x_height#,.55x_height#); +beginchar(barshort,3u#,v_center(spread#+rule_thickness#)); + + adjust_fit(0,0); + % pickup rule.nib; + pickup pencircle scaled (penscaler); % small, circular tip + x1=eps; + x2=w-eps+1u; + y1=y2=math_axis; + draw z1--z2; + penlabels(1,2); + +endchar; + + +%% Bar Long + +iff known barlong: cmchar "barlong"; +compute_spread(.45x_height#,.55x_height#); +beginchar(barlong,6u#,v_center(spread#+rule_thickness#)); + + adjust_fit(0,0); + % pickup rule.nib; + pickup pencircle scaled (penscaler); % small, circular tip + x1=eps; + x2=w-eps+1u; + y1=y2=math_axis; + draw z1--z2; + penlabels(1,2); + +endchar; + + +%% Vertical Bar Long Left + +iff known verticalbarlongleft: cmchar "verticalbarlongleft"; +compute_spread(.45x_height#,.55x_height#); +beginchar(verticalbarlongleft,5u#,v_center(spread#+rule_thickness#)); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + x1=x2=0; + y1=asc_height-5u; + y2=0; + draw z1--z2; + penlabels(1,2); + +endchar; + + +%% Vertical Bar Long Right + +iff known verticalbarlongright: cmchar "verticalbarlongright"; +compute_spread(.45x_height#,.55x_height#); +beginchar(verticalbarlongright,5u#,v_center(spread#+rule_thickness#)); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + x1=x2=w; + y1=asc_height-5u; + y2=0; + draw z1--z2; + penlabels(1,2); + +endchar; + + +%% Vertical Bar Short + +iff known verticalbarshort: cmchar "verticalbarshort"; +compute_spread(.45x_height#,.55x_height#); +beginchar(verticalbarshort,5u#,v_center(spread#+rule_thickness#)); + + adjust_fit(0,0); + pickup pencircle scaled (penscaler); % small, circular tip + x1=x2=0; + y1=1u; + y2=0; + draw z1--z2; + penlabels(1,2); + +endchar; + + +%% restrict Wand + +iff known restrict_wand: cmchar "restrict_wand"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_wand,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); + + %% Points + + z1 = (3u, asc_height); % bar + z2 = (x1, -2*u); + + z3 = (x1-2*u, 0); % asterisk + z4 = (x1+2*u, y3); + z5 = (x1-1.4*u, y3+1.4*u); + z6 = (x1+1.4*u, y3-1.4*u); + z7 = (x6, y5); + z8 = (x5, y6); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4; % * + draw z5 -- z6; + draw z7 -- z8; + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + + +%% restrict Wand Up + +iff known restrict_wand_up: cmchar "restrict_wand_up"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_wand_up,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); + + %% Points + + z1 = (3u, -2u); % bar + z2 = (x1, asc_height); + + z3 = (x1-2*u, y2-2u); % asterisk + z4 = (x1+2*u, y3); + z5 = (x1-1.4*u, y3+1.4*u); + z6 = (x1+1.4*u, y3-1.4*u); + z7 = (x6, y5); + z8 = (x5, y6); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4; % * + draw z5 -- z6; + draw z7 -- z8; + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + + +%% restrict Barb + +iff known restrict_barb: cmchar "restrict_barb"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_barb,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, asc_height); % bar + z2 = (x1, -2*u); + + z3 = (x1-2*u, 0); % diamond + z4 = (x1+2*u, y3); + z5 = (x1, 2*u); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4 -- z5; % _\ + draw z2 -- z3; % \ + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + + +%% restrict Barb Up + +iff known restrict_barb_up: cmchar "restrict_barb_up"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_barb_up,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, -2u); % bar + z2 = (x1, asc_height); + + z3 = (x1-2*u, y2-2u); % diamond + z4 = (x1+2*u, y3); + z5 = (x1, y3-2u); + + %% Draw + + draw z1 -- z2; % | + draw z3 -- z4 -- z5; % _\ + draw z2 -- z3; % \ + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + + +%% restrict Mallet + +iff known restrict_mallet: cmchar "restrict_mallet"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_mallet,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, asc_height); % bar + z2 = (x1, -2*u); + + z3 = (x1-(4/3)*u, (-2/3)*u); % diamond + z4 = (x1+(4/3)*u, y3); + z5 = (x1, (2/3)*u); + + %% Draw + + draw z1 -- z2; % | + draw z3 .. z5 .. z4 .. z2 .. z3; % o + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + + + +%% restrict Mallet up + +iff known restrict_mallet_up: cmchar "restrict_mallet_up"; +compute_spread(.45x_height#,.55x_height#); +beginchar(restrict_mallet_up,5u#,v_center(spread#+rule_thickness#)); + + pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. + + %% Points + + z1 = (3u, -2u); % bar + z2 = (x1, asc_height); + + z3 = (x1-(4/3)*u, y2-4/3u); % diamond + z4 = (x1+(4/3)*u, y3); + z5 = (x1, y3-4/3u); + + %% Draw + + draw z1 -- z2; % | + draw z3 .. z5 .. z4 .. z2 .. z3; % o + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + +endchar; + + + +bye. + +%</mf> +% \end{macrocode} +% \begin{macrocode} +%<*mf10> +if unknown cmbase: input cmbase fi + +font_identifier:="VECT"; +font_size 10pt#; + +%% relation specific measures + +em# := 10pt#; % ``M'' width +cap# := 7pt#; % cap height +sb# := 1/4pt#; % sidebearing +o# := 1/16pt#; % amt curves overshoot borders +penscaler# := 0.3pt#; % pen stroke scaler ** fix ** + +%% relation non-sharped values * fix * + +%% u = (w-(2*sb))/8; % utility measurement +%% super = 3.9; % offset utility for curve roundness [2.8] + +%% cm values from esvect + +u#:=20/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=8/36pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=9/36pt#; % lowercase hairline breadth +stem#:=24/36pt#; % lowercase stem breadth +curve#:=29/36pt#; % lowercase curve breadth +ess#:=27/36pt#; % breadth in middle of lowercase s +flare#:=32/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=38/36pt#; % diameter of dots +cap_hair#:=11/36pt#; % uppercase hairline breadth +cap_stem#:=30/36pt#; % uppercase stem breadth +cap_curve#:=35/36pt#; % uppercase curve breadth +cap_ess#:=33/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=20/36pt#; % vertical distance from serif base to tangent +jut#:=30/36pt#; % protrusion of lowercase serifs +cap_jut#:=37/36pt#; % protrusion of uppercase serifs +beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=11/36pt#; % lowercase bar thickness +slab#:=11/36pt#; % serif and arm thickness +cap_bar#:=11/36pt#; % uppercase bar thickness +cap_band#:=11/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +%% o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +subs:=7/10; % subscripts to 10pt will normally be in 7pt type +rth#:=.4pt#; % assume that rules will come from cmex10 +fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed + math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1 + math_axis#+1.51rth#+30/36pt#, % num2 + math_axis#+1.51rth#+48/36pt#, % num3 + -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1 + -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2 + 8.99pt#-subs*asc_height#, % sup1 + 8.49pt#-subs*asc_height#, % sup2 + 104/36pt#, % sup3 + 54/36pt#, % sub1 + -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2 + subs*asc_height#-36/36pt#, % sup\_drop + 18/36pt#, % sub\_drop + 23.9pt#, % delim1 + 10.1pt#, % delim2 + math_axis#; % axis\_height + +generate esrelation % switch to the driver file + +%</mf10> +% \end{macrocode} +% \Finale
\ No newline at end of file diff --git a/Master/texmf-dist/source/fonts/esrelation/esrelation.ins b/Master/texmf-dist/source/fonts/esrelation/esrelation.ins new file mode 100644 index 00000000000..ac6b7eafb11 --- /dev/null +++ b/Master/texmf-dist/source/fonts/esrelation/esrelation.ins @@ -0,0 +1,19 @@ +%% filename: esrelation.ins +%% version: 1.0 +%% date: 2015/04/30 +%% +%% ------------------------------------------------------ + +\input docstrip.tex +\keepsilent +\preamble + +Copyright (C) 2015 +by Byron Cook, Tauba Auerbach, and David Reinfurt + +\endpreamble +\generate{\file{esrelation.sty}{\from{esrelation.dtx}{style}}} +\generate{\file{uesrelation.fd}{\from{esrelation.dtx}{fd}}} +\generate{\file{esrelation.mf}{\from{esrelation.dtx}{mf}}} +\generate{\file{esrelation10.mf}{\from{esrelation.dtx}{mf10}}} +\endbatchfile diff --git a/Master/texmf-dist/tex/latex/esrelation/esrelation.sty b/Master/texmf-dist/tex/latex/esrelation/esrelation.sty new file mode 100644 index 00000000000..324ea77f424 --- /dev/null +++ b/Master/texmf-dist/tex/latex/esrelation/esrelation.sty @@ -0,0 +1,122 @@ +%% +%% This is file `esrelation.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% esrelation.dtx (with options: `style') +%% +%% Copyright (C) 2015 +%% by Byron Cook, Tauba Auerbach, and David Reinfurt +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{esrelation} +\DeclareSymbolFont{esrelation}{U}{esrelation}{m}{n} +\DeclareMathSymbol{\arrwr}{\mathord}{esrelation}{'022} % arrow_project_right +\DeclareMathSymbol{\arrwl}{\mathord}{esrelation}{'023} % arrow_project_left +\DeclareMathSymbol{\brktr}{\mathrel}{esrelation}{'025} % bracket_project_right +\DeclareMathSymbol{\brktl}{\mathrel}{esrelation}{'024} % bracket_project_left +\DeclareMathSymbol{\brktlift}{\mathrel}{esrelation}{'026} % bracket_lifting +\DeclareMathSymbol{\barshort}{\mathrel}{esrelation}{'040} +\DeclareMathSymbol{\barlong}{\mathrel}{esrelation}{'043} +\DeclareMathSymbol{\verticalbarshort}{\mathord}{esrelation}{'045} +\DeclareMathSymbol{\verticalbarlongleft}{\mathord}{esrelation}{'044} +\DeclareMathSymbol{\verticalbarlongright}{\mathord}{esrelation}{'046} +\DeclareMathSymbol{\restrictwand}{\mathord}{esrelation}{'027} +\DeclareMathSymbol{\restrictbarb}{\mathord}{esrelation}{'030} +\DeclareMathSymbol{\restrictmallet}{\mathord}{esrelation}{'021} +\DeclareMathSymbol{\restrictwandup}{\mathord}{esrelation}{'050} +\DeclareMathSymbol{\restrictbarbup}{\mathord}{esrelation}{'051} +\DeclareMathSymbol{\restrictmalletup}{\mathord}{esrelation}{'052} +%%---------------------------------------- +%% 0. main +%%---------------------------------------- + +\ProcessOptions\relax + +\def\relationrightproject{\parindent 0pt\mathpalette{\relationbuildprojectright\relationbarfill}} +\def\relationleftproject{\parindent 0pt\mathpalette{\relationbuildprojectleft\relationbarfill}} +\def\relationlifting{\parindent 0pt\mathpalette{\relationbuildlifting\relationbarfill}} +%%---------------------------------------- +%% 1. fills +%%---------------------------------------- + +\def\relationbarfill#1{ +\m@th\leaders\hbox{$\mkern-2mu\barlong\mkern-2mu$}\hfill +} + +\def\relationverticalbarfillleft#1{ + \hbox to .5em{\vbox to #1{ + \leaders\hbox{\hbox{$\verticalbarlongleft$}} + \vfill\kern-.5em$\verticalbarlongleft$}} +} + +\def\relationverticalbarfillright#1{ + \hbox to .5em{\vbox to #1{ + \leaders\hbox{\hbox{$\verticalbarlongright$}} + \vfill\kern-.5em$\verticalbarlongright$}} +} +%%---------------------------------------- +%% 2. build +%%---------------------------------------- + +\def\relationbuildprojectright #1#2#3{ +%% #1 = \relationbarfill +%% #2 = \mathchoice +%% #3 = \relationleftproject{...} +\setbox0=\hbox{$#3$} %% main expression +\dimen0=\ht0 %% main box height +\dimen1=\wd0 %% main box width +\vbox{ +\ialign{##\crcr +\noalign{\kern-.3em\nointerlineskip} %% overline +\hbox to \dimen1{$\kern.1em\brktr$#1#2}$\mkern-3mu +\arrwr$\crcr +\noalign{\kern-.1em\nointerlineskip}$\m@th %% main +\kern.1em\relationverticalbarfillleft{\dimen0}\kern-.3em\box0 $\crcr +} +} +} + +\def\relationbuildprojectleft #1#2#3{ +%% #1 = \relationbarfill +%% #2 = \mathchoice +%% #3 = \relationleftproject{...} +\setbox0=\hbox{$#3$} %% main expression +\dimen0=\ht0 %% main box height +\dimen1=\wd0 %% main box width +\vbox{ +\ialign{##\crcr +\noalign{\kern-.3em\nointerlineskip} %% overline +\hbox to \dimen1{$\mkern2mu\arrwl$#1#2}$\kern.1em\brktl$\crcr +\noalign{\kern-.1em\nointerlineskip}$\m@th %% main +\mkern3mu\box0\mkern-3mu\kern.1em\relationverticalbarfillright{ +\dimen0}$\crcr +} +} +} + +\def\relationbuildlifting #1#2#3{ +%% #1 = \relationbarfill +%% #2 = \mathchoice +%% #3 = \relationbuildlifting{...} +\setbox0=\hbox{$#3$} %% main expression +\dimen0=\ht0 %% main box height +\dimen1=\wd0 %% main box width +\advance\dimen1 by -.25em %% close horizontal gap +\lower.75ex\hbox{\vbox{ +\ialign{##\crcr +\noalign{\kern0em\nointerlineskip}$\m@th %% main +\kern.1em\relationverticalbarfillleft{\dimen0}\mkern-5mu +\box0 $\crcr +\noalign{\kern-.2em\nointerlineskip} %% underline +\hbox to \dimen1{$\kern.1em\brktlift$#1#2}$\mkern-3mu\barlong +\barlong$\crcr +} +} +}\kern-.25em +} + +\endinput +%% +%% End of file `esrelation.sty'. diff --git a/Master/texmf-dist/tex/latex/esrelation/uesrelation.fd b/Master/texmf-dist/tex/latex/esrelation/uesrelation.fd new file mode 100644 index 00000000000..a08b53023b3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/esrelation/uesrelation.fd @@ -0,0 +1,17 @@ +%% +%% This is file `uesrelation.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% esrelation.dtx (with options: `fd') +%% +%% Copyright (C) 2015 +%% by Byron Cook, Tauba Auerbach, and David Reinfurt +%% +\ProvidesFile{uesrelation.fd} +\DeclareFontFamily{U}{esrelation}{} +\DeclareFontShape{U}{esrelation}{m}{n}{<->esrelation10}{} +\endinput +%% +%% End of file `uesrelation.fd'. diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 3f4645b2182..126572bd902 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -208,8 +208,8 @@ my @TLP_working = qw( epsdice epsf epsf-dvipdfmx epsincl epslatex-fr epspdf epspdfconversion epstopdf epyt eqell eqlist eqname eqnarray eqparbox errata esami es-tex-faq - erdc erewhon esdiff esint esint-type1 esk eskd eskdx eso-pic esstix esvect - estcpmm + erdc erewhon esdiff esint esint-type1 esk eskd eskdx + eso-pic esrelation esstix estcpmm esvect etaremune etdipa etex-pkg etextools ethiop ethiop-t1 etoc etoolbox etoolbox-de euenc eukdate diff --git a/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc index 3d7717b4c94..94a251d4a44 100644 --- a/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc @@ -92,6 +92,7 @@ depend elvish depend epigrafica depend epsdice depend erewhon +depend esrelation depend esstix depend esvect depend eulervm diff --git a/Master/tlpkg/tlpsrc/esrelation.tlpsrc b/Master/tlpkg/tlpsrc/esrelation.tlpsrc new file mode 100644 index 00000000000..c571a15bdb8 --- /dev/null +++ b/Master/tlpkg/tlpsrc/esrelation.tlpsrc @@ -0,0 +1 @@ +execute addMap esrelation.map |