% The Computer Modern Text Italic family (by D. E. Knuth, 1979--1985)
% 8-bit characters with Czech accents (Petr Novak) 
% revised and edited 1992-93 (Karel Horak)
% european quotes and special hyphenchar added

% deleted -u# kerning for "b": & "p":

mode_setup; font_setup;

input itall;  % lower case (minuscules)
input italsp;  % lowercase specials (dotless \i, ligature \ae, etc.)

if ligs>1: font_coding_scheme:="TeX cs text";
 spanish_shriek=oct"074"; spanish_query=oct"076";
 input italig;  % letter ligatures
else: font_coding_scheme:=if ligs=0: "TeX cs typewriter text"
  else: "TeX cs text without f-ligatures" fi;
 spanish_shriek=oct"016"; spanish_query=oct"017"; fi

font_slant slant; font_x_height x_height#;
if monospace: font_normal_space 9u#; % no stretching or shrinking
 font_quad 18u#;
 font_extra_space 9u#;
 letter_fit#:=letter_fit:=0;
else: font_normal_space 6u#+2letter_fit#;
 font_normal_stretch 3u#; font_normal_shrink 2u#;
 font_quad 18u#+4letter_fit#;
 font_extra_space 2u#; fi

input romanu;  % upper case (majuscules)
input greeku;  % upper case greek letters
input itald;  % numerals
input italp;  % ampersand, question marks, currency sign
input romspu;  % uppercase specials (\AE, \OE, \O)
input punct;  % punctuation symbols common to roman and italic text
input accent;  % accents common to roman and italic text
if ligs>0: input comlig; fi  % ligatures common with roman text
if ligs<=1: input romsub; fi  % substitutes for ligatures

% Czech accented letters
input csaccent; % accent definitions
input csiacutl; % italic acute accented lowercase
input csihachl; % italic hachek accented lowercase
input csiothrl; % italic other accented lowercase
input csacutu; % upper case acute accented
input cshacheu; % upper case hachek accented
input csotheru; % upper case other accented
input csadded; % european quotes, oneperthousand
input cshyph; %% to allow special hyphenchar=156

ligtable "!": "`" =: spanish_shriek;
ligtable "?": "`" =: spanish_query;

% the following kerns should have been added:
%  - between opening quotes and some letters
%  - between |"."| and |"."| (...)
%  - between |"A"| and |"v"| (Average)
%  - between |"A"| and |"w"| (Awkward or Lem's Awruk)
%  - between |"F"|, |"P"|, |"T"|, |"V"|, |"W"|, |"Y"| and |"."|, |","|
% but for the sake of compatibility with CM's they would have been
% inserted only if |improve_kerns=true| (by default |improve_kerns=true|).

 k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning

if not monospace:
if improve_kerns: ligtable ".": "." kern -kkk#; fi
 ligtable "d": cs_dj: "w": "l": cs_ll: cs_lj: "l" kern +u#,
 cs_ll kern +u#, cs_lj kern +u#;
 ligtable "F": "V":
 if improve_kerns: "." kern -u#, "," kern -u#, fi
   "o" kern kk#, cs_oo kern kk#, cs_oe kern kk#,
   cs_uo kern kk#, "e" kern kk#, cs_ee kern kk#, cs_ie kern kk#,
   "u" kern kk#, cs_uu kern kk#, cs_ue kern kk#, cs_ou kern kk#,
   "r" kern kk#, cs_rr kern kk#, cs_rz kern kk#, "a" kern kk#, 
   cs_aa kern kk#, cs_ae kern kk#, "A" kern kkk#,
   cs_AA kern kkk#, cs_AE kern kkk#,
  "K": "X": "O" kern k#, cs_OO kern k#, "C" kern k#,
  cs_CZ kern k#, "G" kern k#, "Q" kern k#;
 ligtable "T": cs_TJ: "y" kern kk#, cs_yy kern kk#,
  "Y": cs_YY: "e" kern kk#, cs_ee kern kk#, cs_ie kern kk#,
  "o" kern kk#, cs_oo kern kk#, cs_oe kern kk#, cs_uo kern kk#,
  "r" kern kk#, cs_rr kern kk#, cs_rz kern kk#, "a" kern kk#, 
  cs_aa kern kk#, cs_ae kern kk#, "u" kern kk#,
  cs_uu kern kk#, cs_ue kern kk#, cs_ou kern kk#,
  "P": "W": "A" kern kk#, cs_AA kern kk#, cs_AE kern kk#
  if improve_kerns: , "." kern k#, "," kern k# fi;
 ligtable "O": cs_OO: cs_OE: cs_UO: "D":
    cs_DJ: "X" kern k#, "W" kern k#, "A" kern k#,
    cs_AA kern k#, cs_AE kern k#,
    "V" kern k#, "Y" kern k#, cs_YY kern k#;
 ligtable "A": cs_AA: cs_AE:
 if improve_kerns: "v" kern kk#, "w" kern kk#, fi
  "R": cs_RR: cs_RZ: "n" kern k#, cs_nj kern k#,
  "l" kern k#, cs_ll kern k#, cs_lj kern k#, "r" kern k#, cs_rr kern k#,
   cs_rz kern k#, "u" kern k#, cs_uu kern k#, cs_ue kern k#,
   cs_ou kern k#, "m" kern k#, "t" kern k#, cs_tj kern k#,
   "i" kern k#, cs_ii kern k#, "C" kern k#, cs_CZ kern k#,
   "O" kern k#, cs_OO kern k#, cs_OE kern k#,
   cs_UO kern k#, "G" kern k#, "h" kern k#, "b" kern k#, "U" kern k#,
   cs_UU kern k#, cs_UE kern k#, cs_OU kern k#,
   "k" kern k#, "v" kern k#, "w" kern k#, "Q" kern k#, 
   "L": cs_LL: cs_LJ: "T" kern kk#, cs_TJ kern kk#,
   "Y" kern kk#, cs_YY kern kk#, "V" kern kkk#, "W" kern kkk#,
%  "b": "c": cs_cz: 
   "e": cs_ee: cs_ie: 
%  "o": cs_oo: cs_oe: cs_uo:
%  "p":
   "r": cs_rr: cs_rz: "e" kern -u#, cs_ee kern -u#, cs_ie kern -u#,
   "a" kern -u#, cs_aa kern -u#, cs_ae kern -u#, 
   "o" kern -u#, cs_oo kern -u#, cs_oe kern -u#, cs_uo kern -u#,
   "d" kern -u#, cs_dj kern -u#, "c" kern -u#, cs_cz kern -u#,
   "g" kern -u#, "q" kern -u#;
 ligtable "n": cs_nj: "'" kern kkk#;
fi
if improve_kerns:
ligtable opening_quotes:
  "f" kern u#, "g" kern -k#, "j" kern u#,
  "p" kern -k#, "y" kern -k#, cs_yy kern -k#, "v" kern k#, "w" kern k#,
  "A" kern -k#, cs_AA kern -k#, cs_AE kern -k#, "C" kern -k#, cs_CZ kern -k#,
  "D" kern -k#, cs_DJ kern -k#, "E" kern -k#, cs_EE kern -k#, cs_IE kern -k#,
  "F" kern -k#, "H" kern -k#,
  "I" kern -k#, cs_II kern -k#, "J" kern -k#, "K" kern -k#,
  "L" kern -k#, cs_LJ kern -k#,
  "M" kern -k#, "N" kern -k#, cs_NJ kern -k#, "P" kern -k#,
  "R" kern -k#, cs_RZ kern -k#, cs_RR kern -k#, "S" kern -k#, cs_SH kern -k#,
  "T" kern kk#, cs_TJ kern kk#,
  "X" kern -k#, "Y" kern kk#, cs_YY kern kk#,
  "Z" kern -k#, cs_ZH kern -k#,
  "V" kern kkk#, "W" kern kk#;
fi
% there are ligature/kern programs for |"f"| in the {\tt italig} file
% and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file

bye.

