% dxcligtb.mf
%
% (c) Copyright 1995, 1996 J"org Knappen
% (c) Copyright 1990, 1992 Norbert Schwarz
%
% This file is part of dcfonts version 1.3
%
% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
% copyrite.txt for further information
%
% You find some documentation in dcdoc.tex (needs LaTeX2e)
%
% Content:
%
% ligatures and kerning for "caps and small caps" fonts
%
% This file should not be called for monospaced fonts !
%
% The following ligatures are integrated:
%
% --
% ---
% -<hyphenchar>
% >>
% <<
% ``
% ''
% ,,
% !` and ?`
%
version_check(0,9); % |version_check| was introduced in dc1.3
ligtable
"-": "-" =: oct"025",
oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
ligtable
oct"025": "-"=:oct"026"; % "---" => emdash
ligtable "<": "<" =: oct"023"; % "<<"
ligtable ">": ">" =: oct"024"; % ">>"
ligtable ",": "," =: oct"022"; % ",,"
ligtable "!": "`" =: oct"275"; % spanish shriek
ligtable "?": "`" =: oct"276"; % spanish query
%
%
def lig_o_table (expr k) =
"o" kern k, oct"256" kern k, oct"362" kern k, oct"363" kern k,
oct"364" kern k, oct"365" kern k, oct"366" kern k,
oct"367" kern k
enddef;
def lig_co_table =
"o": oct"256": oct"362": oct"363":
oct"364": oct"365": oct"366":
oct"367"
enddef;
%
%
def lig_a_table (expr k) =
"a" kern k, oct"240" kern k, oct"241" kern k, oct"340" kern k,
oct"341" kern k, oct"342" kern k,
oct"343" kern k, oct"344" kern k, oct"345" kern k,
oct"346" kern k
enddef;
def lig_A_table (expr k) =
"A" kern k, oct"200" kern k, oct"201" kern k, oct"300" kern k,
oct"301" kern k, oct"302" kern k,
oct"303" kern k, oct"304" kern k, oct"305" kern k
enddef;
def lig_ca_table =
"a": oct"241": oct"242": oct"340":
oct"341": oct"342":
oct"343": oct"344": oct"345":
oct"346"
enddef;
def lig_c_table (expr k) =
"c" kern k, oct"242" kern k, oct"243" kern k, oct"347" kern k
enddef;
def lig_C_table (expr k) =
"C" kern k, oct"202" kern k, oct"203" kern k, oct"307" kern k
enddef;
%
def lig_e_table (expr k)=
"e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
oct"351" kern k, oct"352" kern k, oct"353" kern k
enddef;
def lig_u_table (expr k)=
"u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
oct"372" kern k, oct"373" kern k, oct"374" kern k
enddef;
%
def lig_cA_table =
"A": oct"200": oct"201": oct"300": oct"301": oct"302":
oct"303": oct"304": oct"305"
enddef;
def lig_cO_table =
"O": oct"216": oct"322": oct"323": oct"324": oct"325":
oct"326": oct"330"
enddef;
def lig_O_table (expr k) =
"O" kern k,
oct"216" kern k, oct"322" kern k, oct"323" kern k,
oct"324" kern k, oct"325" kern k,
oct"326" kern k, oct"330" kern k
enddef;
def lig_U_table (expr k) =
"U" kern k, oct"226" kern k, oct"227" kern k, oct"331" kern k,
oct"332" kern k, oct"333" kern k, oct"334" kern k
enddef;
%
%
%
%
k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
ligtable
"P":
"T":
"Y": "a" kern kk#,
lig_A_table(kk#);
ligtable
"F":
"V":
"W":
if serifs:
lig_a_table(kkk#),
lig_A_table(kkk#),
else:
lig_a_table(kk#),
lig_A_table(kk#),
fi
"K":
"X": lig_o_table(k#),
lig_O_table(k#),
lig_c_table(k#),
lig_C_table(k#),
"g" kern k#, oct"247" kern k#,
"G" kern k#, oct"207" kern k#,
"q" kern k#,
"Q" kern k#;
ligtable
"O":
"D": "x" kern k#,
"X" kern k#,
"w" kern k#,
"W" kern k#,
lig_a_table(k#),
lig_A_table(k#),
"v" kern k#,
"V" kern k#,
"y" kern k#, oct"375" kern k#, oct"270" kern k#,
"Y" kern k#, oct"335" kern k#, oct"230" kern k#;
ligtable
lig_cA_table:
if serifs:
"R":
fi
lig_c_table(k#),
lig_C_table(k#),
lig_o_table(k#),
lig_O_table(k#),
"g" kern k#, oct"247" kern k#,
"G" kern k#, oct"207" kern k#,
lig_u_table(k#),
lig_U_table(k#),
"q" kern k#,
"Q" kern k#,
"L":
"T" kern kk#, oct"224" kern kk#, oct"225" kern kk#,
"t" kern kk#, oct"264" kern kk#, oct"265" kern kk#,
"Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
"y" kern kk#, oct"270" kern kk#, oct"375" kern kk#,
"V" kern kkk#,
"v" kern kkk#,
"W" kern kkk#,
"w" kern kkk#;
ligtable
"I":
"I" kern -k#; % Richard III
if not monospace:
k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
ligtable
"p":
"t":
"y": lig_a_table(kk#);
ligtable
"f":
"v":
"w":
if serifs:
lig_a_table(kkk#)
else:
lig_a_table(kk#)
fi,
"k":
"x": lig_o_table(k#),
lig_c_table(k#),
"g" kern k#, oct"247" kern k#,
"q" kern k#;
ligtable
lig_co_table:
"d": "x" kern k#,
"w" kern k#,
lig_a_table(k#),
"v" kern k#,
"y" kern k#, oct"270" kern k#, oct"375" kern k#;
ligtable
lig_ca_table:
if serifs: "r": fi
lig_c_table(k#),
lig_o_table(k#),
"g" kern k#, oct"247" kern k#,
lig_u_table(k#),
"q" kern k#,
"l": "'" kern kk#,
"t" kern kk#, oct"264" kern kk#, oct"265" kern kk#,
"y" kern kk#, oct"270" kern k#, oct"375" kern k#,
"v" kern kkk#,
"w" kern kkk#;
ligtable
"i": "i" kern -k#;
fi % skiing
endinput;
|