diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/pl/pl_dod.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/pl/pl_dod.mf | 184 |
1 files changed, 90 insertions, 94 deletions
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf b/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf index 0ee4de52785..50bd6084991 100644 --- a/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf +++ b/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf @@ -1,89 +1,85 @@ % --------------------------------------------------------------------------- -% This is PL_DOD.MF ({\bif{}dodatkowy}, i.e., additional file for the Polish +% This is PL_DOD.MF (dodatkowy, i.e., additional file for the Polish % extension of CM family) in text format. % --------------------------------------------------------------------------- -% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001 +% PL VERSION 1.09a, 30th March 2020 (see README.ENG) % --------------------------------------------------------------------------- -% AUTHORS: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko} +% AUTHORS: Bogusław Jackowski and Marek Ryćko % --------------------------------------------------------------------------- % This file belongs to the public domain under conditions similar to % those of D. E. Knuth specified for the Computer Modern family of fonts. -% -% In particular, only the authors are entitled to modify this file. -% +% % For details see either the file MEXINFO.POL or MEXINFO.ENG. % --------------------------------------------------------------------------- -%%{\let\:\sl -%\: This file provides accessories for making Polish diacritical characters: -%\: acute accent for |"C"|, |"N"|, |"L"|, |"S"|, |"Z"|, dot accent for |"Z"|, -%\: cross for |"L"| and ogonek for |"A"| and |"E"|. In order to avoid extra -%\: parameters (62 should be enough) the macros do a lot of ``clever'' stuff, -%\: trying to figure out needed dimensions. This is not always a trivial -%\: task and in some cases such extra parameters may prove to be unavoidable. -%\: Several additional parameters may be assigned a value, prior to reading -%\: the driver file, in order to override the default behaviour. - -%\: One of them is -%\: --- the factor controlling the slope of accents over majuscules, -%\: |cap_flat|; if the default slope is, say, $\beta$, the resulting -%\: slope is equal to |(1-cap_flat)*|$\beta$; this parameter is used -%\: in the sources of the following fonts: -%\ PLCSC10, PLDUNH10, PLTCSC10 - -%\: Unexpectedly difficult to program turned out to be ogoneks. We decided -%\: that the best looking are ogoneks such that a single B\`ezier segment -%\: describes each of ogonek's edges. This necessitated introducing many -%\: parameters controlling the positions of control points (for more details -%\: see comments in the section ``OGONEK ACCESSORIES''). All these -%\: (optional) parameters may be splitted into three groups of importance: -%\: primary, secondary and tertiary. The primary parameters are intended -%\: to be ``normally'' accessible to users, the secondary ones---only in -%\: case of emergency, the tertiary ones---rather not at all. - -%\: The primary parameters are: - -%\: --- the factor controlling the depth of ogoneks, |depth_corr|; the -%\: resulting depth is equal to |depth_corr*desc_depth#| if the value -%\: of |depth_corr| is known, |desc_depth#| otherwise -%\: --- the factor controlling the leftmost and tip positions -%\: of an ogonek, |left_corr|, |tip_xcorr| and |tip_ycorr|; -%\: the default distances are scaled using the values of the -%\: corresponding parameters -%\: --- the scaling factor for the top and tip breadths of an ogonek, -%\: |top_breadth_corr|, |tip_breadth_corr| - -%\: Some of the primary parameters are used in the sources of the following -%\: fonts: -% PLB10, PLBX5, PLBX6, PLBX7, PLBX8, PLFI10, PLITT10, PLR5, PLR6, PLR7, -% PLR8, PLR9, PLR12, PLR17, PLSL8, PLSL9, PLSL12, PLSSQ8, PLSSQI8, PLTI7, -% PLTI8, PLTI12, PLVTT10 - -%\: The following four parameters we regard as of a secondary importance: - -%\: --- the pen ogoneks are to be filled with, |ogonek_pen#| (this is -%\: the only sharp ogonek parameter and is used in the sources of -%\: the {\commfont{}PLFF10} and {\commfont{}PLFI10} fonts) -%\: --- the darkness of ogoneks may be controlled using two parameters, -%\: |0<pre_lightness<1| and |0<post_lightness<1|, referring to the top -%\: and tip of an ogonek, respectively; used in {\commfont{}PLB10.MF} -%\: --- next two parameters, |pre_deflexion| and |post_deflexion|, control -%\: a rather small deflexion angle (in degrees) of the inner ogonek -%\: outline as compared to the outer one; they refere to the top and -%\: tip of an ogonek, respectively - -%\: The complete list of `ogonek' parameters can be found in the section -%\: ``OGONEK ACCESSORIES.'' - -%\: There is one more (rather unimportant) parameter, |is_smoke|. If this -%\: variable is assigned a known value, `smoked' proofs will not contain -%\: a rule marking the height of accented letters. -%%} +% This file provides accessories for making Polish diacritical characters: +% acute accent for |"C"|, |"N"|, |"L"|, |"S"|, |"Z"|, dot accent for |"Z"|, +% cross for |"L"| and ogonek for |"A"| and |"E"|. In order to avoid extra +% parameters (62 should be enough) the macros do a lot of “clever” stuff, +% trying to figure out needed dimensions. This is not always a trivial +% task and in some cases such extra parameters may prove to be unavoidable. +% Several additional parameters may be assigned a value, prior to reading +% the driver file, in order to override the default behaviour. +% +% One of them is +% – the factor controlling the slope of accents over majuscules, +% |cap_flat|; if the default slope is, say, $\beta$, the resulting +% slope is equal to |(1-cap_flat)*|$\beta$; this parameter is used +% in the sources of the following fonts: +% PLCSC10, PLDUNH10, PLTCSC10 +% +% Unexpectedly difficult to program turned out to be ogoneks. We decided +% that the best looking are ogoneks such that a single B\`ezier segment +% describes each of ogonek's edges. This necessitated introducing many +% parameters controlling the positions of control points (for more details +% see comments in the section “OGONEK ACCESSORIES”). All these +% (optional) parameters may be splitted into three groups of importance: +% primary, secondary and tertiary. The primary parameters are intended +% to be “normally” accessible to users, the secondary ones – only in +% case of emergency, the tertiary ones – rather not at all. +% +% The primary parameters are: +% +% – the factor controlling the depth of ogoneks, |depth_corr|; the +% resulting depth is equal to |depth_corr*desc_depth#| if the value +% of |depth_corr| is known, |desc_depth#| otherwise +% – the factor controlling the leftmost and tip positions +% of an ogonek, |left_corr|, |tip_xcorr| and |tip_ycorr|; +% the default distances are scaled using the values of the +% corresponding parameters +% – the scaling factor for the top and tip breadths of an ogonek, +% |top_breadth_corr|, |tip_breadth_corr| +% +% Some of the primary parameters are used in the sources of the following +% fonts: +% PLB10, PLBX5, PLBX6, PLBX7, PLBX8, PLFI10, PLITT10, PLR5, PLR6, PLR7, +% PLR8, PLR9, PLR12, PLR17, PLSL8, PLSL9, PLSL12, PLSSQ8, PLSSQI8, PLTI7, +% PLTI8, PLTI12, PLVTT10 +% +% The following four parameters we regard as of a secondary importance: +% +% – the pen ogoneks are to be filled with, |ogonek_pen#| (this is +% the only sharp ogonek parameter and is used in the sources of +% the {\commfont{}PLFF10} and {\commfont{}PLFI10} fonts) +% – the darkness of ogoneks may be controlled using two parameters, +% |0<pre_lightness<1| and |0<post_lightness<1|, referring to the top +% and tip of an ogonek, respectively; used in {\commfont{}PLB10.MF} +% – next two parameters, |pre_deflexion| and |post_deflexion|, control +% a rather small deflexion angle (in degrees) of the inner ogonek +% outline as compared to the outer one; they refere to the top and +% tip of an ogonek, respectively +% +% The complete list of `ogonek' parameters can be found in the section +% “OGONEK ACCESSORIES.” +% +% There is one more (rather unimportant) parameter, |is_smoke|. If this +% variable is assigned a known value, `smoked' proofs will not contain +% a rule marking the height of accented letters. % --------------------------------------------------------------------------- % --------------------------------------------------------------------------- % LAYOUT SETUP: -% (A MIXTURE OF EXTENDED CM, EXTENDED ASCII, AND ``LOCAL'') +% (A MIXTURE OF EXTENDED CM, EXTENDED ASCII, AND “LOCAL”) % --------------------------------------------------------------------------- % Polish letters are in the positions of extended CM layout: @@ -115,10 +111,10 @@ enddef; % while Polish opening quotation mark is in the position of ASCII 255: def quotes_positions = - french_opening_quotes:=174; % << - french_closing_quotes:=175; % >> + french_opening_quotes:=174; % « – can be accessed as ligature << + french_closing_quotes:=175; % » – can be accessed as ligature >> % exceptionally: - polish_opening_quotes:=255; % ,, + polish_opening_quotes:=255; % „ – can be accessed as ligature ,, enddef; polish_uc_positions; polish_lc_positions; quotes_positions; @@ -127,7 +123,7 @@ polish_uc_positions; polish_lc_positions; quotes_positions; % --------------------------------------------------------------------------- % The variable |improve_kerns| should not be set to |true| if one wants % to have PL fonts compatible with respective CM ones; thus the commands -% |if improve_kerns| ... |fi| may be regarded as comments (see also the files +% |if improve_kerns| … |fi| may be regarded as comments (see also the files % POLAN.MF, POLKUR.MF, POLTYT.MF and POLKAP.MF). if unknown improve_kerns: boolean improve_kerns; improve_kerns=false; fi; @@ -146,7 +142,7 @@ vardef limit_dist = 5/4u#*hppp enddef; % to be used in some crucial places instead of |vair|. vardef xvair = stem*vair#/stem# enddef; -% In particular, |qvair| (``quote vair'') is defined using |xvair|. +% In particular, |qvair| (“quote vair”) is defined using |xvair|. vardef qvair = max(round(xvair),fine+epsilon) enddef; % --------------------------------------------------------------------------- % GENERAL PURPOSE ACCESSORIES @@ -180,7 +176,7 @@ vardef fix_virgin z = % find a pair of virgin pairs jj:=incr jj else: jj=ii fi; exitif known ii; endfor; jj:=ii+1; -% now |ii+1=jj| and |z[ii]| and |z[jj]| are ``untouched'' +% now |ii+1=jj| and |z[ii]| and |z[jj]| are “untouched” enddef; %%% italcorr corrital @@ -217,13 +213,13 @@ enddef; % --------------------------------------------------------------------------- % |the_cap_flat| is a factor controlling the flatness of accents over % majuscules; a default value may be overriden by assigning a value to the -% variable |cap_flat| (cf. also |the_|... macros in ogonek accessories). +% variable |cap_flat| (cf. also |the_|… macros in ogonek accessories). vardef the_cap_flat = if known cap_flat: cap_flat elseif serifs and hefty: 1/5 else: 1/3 fi enddef; % --------------------------------------------------------------------------- % The |hpos_corr| variable is an optional parameter to |put_ogonek|, meant -% to be set locally inside |beginchar| ... |endchar|, if a horizontal +% to be set locally inside |beginchar| … |endchar|, if a horizontal % correction of the accent position is needed: numeric hpos_corr; % --------------------------------------------------------------------------- @@ -346,7 +342,7 @@ def put_accent = corrital z.right; % correct italic correction % adjust height (the same height is used in the program for the dotted `Z'): h:=if is_cap: y.top else: a_ht fi; - mark_height(a_ht#); + mark_height(a_ht#); penlabels([ii],[jj]); enddef; % --------------------------------------------------------------------------- @@ -384,7 +380,7 @@ def put_dot (suffix penkind) (expr sharp_d_d) = % the dot of the lc letter `i' % lower the dot if needed (for dotted `Z' only): if (charcode=dotted_Z) and (ove_>0): save low_; % |low_| is to be the maximal acceptable lowering of the dot - low_=max(0,min(ove_,gap_-penkind)); % somewhat arbitrary formula... + low_=max(0,min(ove_,gap_-penkind)); % somewhat arbitrary formula… forsuffixes $= ,l,r: y[jj]$:=y[jj]$-low_; endfor fi y[ii]=.5[y[jj]l,y[jj]r]; @@ -434,8 +430,8 @@ enddef; % that the basic font unit |u| may change during one session of font % generation (monospace and caps-small-caps) and that a few different % pens may be used to draw a single letter, you'll understand why so many -% |if| ... |else:| ... |fi| commands are used in the following code. -% +% |if| … |else:| … |fi| commands are used in the following code. +% % Outer and inner edges of an ogonek (suffixed with |l| and |r|, resp.) % are single B\`ezier segments; the outer one, a path % |p=z_a..controls z_b and z_c ..z_d| @@ -443,20 +439,20 @@ enddef; % |alpha_d| and two numbers |x_down|, |y_right|, find pairs |z_b| and |z_c| % such that the path |p| has the following properties: % (a) |direction p(z_a)=alpha_a| -% (b) |direction p(z_d)=alpha_d-180| +% (b) |direction p(z_d)=alpha_d-180| % (c) |direction p(x_down,some_y)=down| % (d) |direction p(some_x,y_right)=right| -% The problem is solved using a ``double'' bisection method, provided +% The problem is solved using a “double” bisection method, provided % that appropriate limits |z_b'|, |z_b''| and |z_c'|, |z_c''| for |z_b| % and |z_c|, respectively, are given; more precisely, -% |z_b=|$\lambda_b$|[z_b',zb'']| and |z_c=|$\lambda_c$|[z_c',zc'']| +% |z_b=|$\lambda_b$|[z_b', zb'']| and |z_c=|$\lambda_c$|[z_c', zc'']| % is supposed to hold for given |z_b'|, |z_b''|, |z_c'|, |z_c''| and % some $0<\lambda_b,\lambda_c<1$. % -% The inner edge is constructed by a careful modification of the outer one. +% The inner edge is constructed by a careful modification of the outer one. % % If a default behaviour of our program is not satisfying, the user may -% assign a value to the following ``emergency'' parameters (provided E knows +% assign a value to the following “emergency” parameters (provided E knows % what E is doing): % |depth_corr|, |left_corr|, |top_breadth_corr|, |tip_breadth_corr|, % |tip_xcorr|, |tip_ycorr|, |pre_angle|, |post_angle|, @@ -562,11 +558,11 @@ enddef; vardef the_pre_limit = % refers to the outer edge if known pre_limit: pre_limit else: x_down-3.5hi.u fi -enddef; +enddef; vardef the_post_limit = % refers to the outer edge if known post_limit: post_limit else: x_down-2hi.u fi -enddef; +enddef; vardef the_pre_lightness = % refers to the inner edge if known pre_lightness: pre_lightness else: @@ -590,7 +586,7 @@ enddef; vardef the_pre_deflexion = % refers to the inner edge if known pre_deflexion: pre_deflexion elseif known join_angle and not serifs: - if is_bold: -4 else: -2 fi\\ + if is_bold: -4 else: -2 fi\\ elseif not serifs: if is_bold: -8 else: -4 fi\\ else: 0 fi enddef; % --------------------------------------------------------------------------- @@ -760,7 +756,7 @@ def beginchar_twice(expr c,w_sharp,h_sharp,d_sharp) = % |sharp_calc| is checked in |corrital|, |mark_height|, |put_accent|, % and |put_dot| sharp_calc:=sharp_calc_; - if known sharp_calc: % carry out ``sharp'' calculations + if known sharp_calc: % carry out “sharp” calculations begingroup save mode,mag; mode:=canonical_sharp_mode; mode_setup; if known cmbase: font_setup; if not serifs: fisp:=round(1/3[fine,crisp]); prepare_pen fisp; fi @@ -787,7 +783,7 @@ def beginchar_twice(expr c,w_sharp,h_sharp,d_sharp) = def special expr t = enddef; def numspecial expr t = enddef; charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp; charic:=0; - else: % carry out ``discrete'' calculations + else: % carry out “discrete” calculations save mode_guard_; % dedicated to those who use Karl Berry's modes.mf mode:=prev_mode; mode_setup; if known cmbase: font_setup; |