diff options
Diffstat (limited to 'fonts/utilities/mff-29/dkpunct.mf')
-rw-r--r-- | fonts/utilities/mff-29/dkpunct.mf | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/fonts/utilities/mff-29/dkpunct.mf b/fonts/utilities/mff-29/dkpunct.mf new file mode 100644 index 0000000000..7986c955fa --- /dev/null +++ b/fonts/utilities/mff-29/dkpunct.mf @@ -0,0 +1,86 @@ +% dkpunct.mf - punctuation for Ditko +% Copyright (C) 1990 Damian Cugley +% - pdc Sun. 30 Sept. 1990 + +if testing: endinput fi + +% - pdc Sun. 30 Sept. 1990 + +def straight_line(expr code, wd_u) = + beginchar(code, wd_u, 1/2penh# + 1/2cap_ht#, 0v#, 1/3, 1/3); + pickup square_pen; + top lft z1 = (l, h); top rt z2 = (r, h); + draw z1--z2; + labels(1,2); + endchar; +enddef; + +"hyphen"; straight_line("-", 6); +ifcode short_dash: "short dash"; + straight_line(code.short_dash, 12); +fi +ifcode long_dash: "long dash"; + straight_line(code.long_dash, 18); +fi + +%% Comma-like objects: + +vardef draw_comma@# = + fill top lft z@# -- bot lft z@# + dip_dp*down + -- bot rt z@# -- top rt z@# -- cycle; +enddef; + +vardef draw_inverted_comma@# = + fill top lft z@# -- bot lft z@# + -- bot rt z@# -- top rt z@# + dip_dp*up -- cycle; +enddef; + +def quotation_marks(expr code, double_b, left_b) = + stdchar(code, if double_b: 1 + 2penw#/u# else: penw#/u# fi, 1, 1); + pickup square_pen; + top lft z1 = (l, h if left_b: - dip_dp fi); + if left_b: draw_inverted_comma1; else: draw_comma1; fi + if double_b: + top rt z2 = (r, h if left_b: - dip_dp fi); + if left_b: draw_inverted_comma2; else: draw_comma2; fi + fi + labels(1 if double_b: , 2 fi); + endchar; +enddef; + +"apostrophe"; quotation_marks("'", false, false); +"inverted comma"; quotation_marks("`", false, true); +ifcode left_quote: "left double quote"; + quotation_marks(code.left_quote, true, true); +fi +ifcode right_quote: "right double quote"; + quotation_marks(code.right_quote, true, false); +fi + +ifcode german_quote: "german left quotation mark"; + beginchar(code.german_quote, 1 + 2penw#/u#, penh#, 0v#, 1, 1); + pickup square_pen; + top lft z1 = (l, h); draw_comma1; + top rt z2 = (r, h); draw_comma2; + labels(1, 2); + endchar; +fi + +def semicolon(expr code, dot_b, comma_b) = + beginchar(code, penw#/u#, if dot_b: cap_ht# else: penh# fi, + if comma_b: dip_dp# else: 0v# fi, 1, 1); + pickup square_pen; + if dot_b: + top lft z1 = (l, h); drawdot z1; labels(1); + fi + bot lft z2 = (l, baseline); + if comma_b: draw_comma2; else: drawdot z2; fi + labels(2); + endchar +enddef; + +"full stop"; semicolon(".", false, false); +"comma"; semicolon(",", false, true); +"colon"; semicolon(":", true, false); +"semicolon"; semicolon(";", true, true); + |