% File: MF Inputs grkpnct.mf % Author: Pierre A. MacKay % Internet: mackay@cs.washington.edu % Date: Friday, 06 May 1994 % Copyright 1994 by Pierre A. MacKay % The contents of this file are licensed free for % use and redistribution under the terms of the % GNU General Public License. For the terms of % this license see any publication of the Free % Software Foundation or any software packages % distributed by the Free Software Foundation. % % % Select from Computer Modern punctuation. % def selectpunct expr t = currenttitle:= t; if t = "Hash mark (number sign)" : let next_ = lose_it_ elseif t = "At sign" : let next_ = lose_it_ elseif t = "Semicolon" : code_offset := ASCII"?" - ASCII";"; let next_ = use_it_ elseif t = "Apostrophe" : code_offset := oct"035" - ASCII"'"; let next_ = use_it_ elseif t = "Reverse apostrophe" : code_offset := oct"034" - ASCII"`"; let next_ = use_it_ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef; % % Get the endash and emdash % (Maybe the double quotes should be added in some spare space.) % def selectcomlig expr t = currenttitle:= t; if t = "Closing quotes" : let next_ = lose_it_ elseif t = "Opening quotes" : let next_ = lose_it_ elseif t = "En dash" : code_offset := en_dash - oct"173"; let next_ = use_it_ elseif t = "Em dash" : code_offset := em_dash - ASCII"|"; let next_ = use_it_ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef; % % The specifically Greek additions to punctuation % def selectgkpunct expr t = currenttitle:= t; if t = "'Anw tele'ia" : let next_ = use_it_ elseif t = "Open quotes (eisagwgik'a)" : let next_ = use_it_ elseif t = "Close quotes (eisagwgik'a)" : let next_ = use_it_ else: let next_ = lose_it_ fi; next_ enddef; % Use Computer modern characters for as many signs as possible. let cmchar = selectpunct; input punct let ligtable_ = ligtable; let ligtable = lose_it_; % Only works because we want to skip over % the first character in this file too let cmchar = selectcomlig; input comlig let cmchar = relax; let ligtable = ligtable_; code_offset := 0; % Now do the special Greek punctuation. % For the << >> quotation marks keep a consistent symbolic identity % over a wide range of fonts. Adobe standard encoding gives these % the strikingly ornithological names "guillemot[right,left]". % (I believe this must be a sub-species of the awk family.) % In ibygrk.map the names are guillemotleft, guillemotright and % colongreek % let cmchar = selectgkpunct; readfrom("grpunct") let cmchar = relax;