summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf
diff options
context:
space:
mode:
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.mf184
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;