% magrmac.dtx -- documentation and source for magrmac.tex -*-tex-*- %%%@TeX-document-file { %%% title = "MAGRMAC.TEX -- Malvern Greek Macros", %%% filename = "$texmf/doc/plain/pdcmac/magrmac.dtx", %%% version = "$Revision: 1.3 $", %%% package = "pdcmac 1.0", %%% date = "$Date: 1995/03/29 16:32:24 $", %%% author = "P. Damian Cugley", %%% email = "damian.cugley@comlab.ox.ac.uk", %%% address = "Oxford University Computing Laboratory," %%% Parks Road, Oxford OX1 3QD, UK", %%% abstract = "This document describes and is the source code for %%% the TeX definitions file magrmac.tex. %%% Running plain TeX on this file produces both the %%% definitions file and the printed documentation.", %%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley", %%% copying = "This program is free software; you can redistribute %%% it and/or modify it under the terms of the GNU %%% General Public License as published by the Free %%% Software Foundation; either version 2 of the License, %%% or (at your option) any later version.", %%% notice = "This program is distributed in the hope that it will %%% be useful, but WITHOUT ANY WARRANTY; without even the %%% implied warranty of MERCHANTABILITY or FITNESS FOR A %%% PARTICULAR PURPOSE. See the GNU General Public %%% License for more details.", %%% notice = "You should have received a copy of the GNU General %%% Public License along with this program; if not, write %%% to the Free Software Foundation, Inc., 675 Mass Ave, %%% Cambridge, MA 02139, USA.", %%% codetable = "USASCII", %%% dependencies = "pdccode.tex" %%%} %{{{ magrmac.dtx %{{{ preamble \relax \input pdccode \document \rcs$Id: magrmac.dtx,v 1.3 1995/03/29 16:32:24 pdc Exp $\endrcs \codefile{magrmac.tex} %}}} preamble %{{{ introduction \author{P. Dmaian Cugley} \title{MAGRMAC---Malvern Greek Macros} \section{Introduction} This document describes |magrmac.tex|, a small file of macros for setting Greek with Malvern~G fonts. `Malvern~G' is the name of an encoding for typesetting Greek texts. Malvern release~$1{\cdot}2$ has a collection of fonts ({\tt ma$XX$g$YY$}) which use this encoding. The Levy and Dryllerakis fonts should work to an extent. The conventions for Malvern Greek text files are intended to be similar to those for K.~J.\ Dryllerakis's Greek\TeX\ (the `|kd|-' fonts), and will be most useful on computers where the operating system uses latin letters (as opposed to those which can display Greek letters on the screen). There is a brief guide for |magrmac.tex| called |magrman.tex|. \notepar These macros are not necessarily in final form and are not intended to be supported. Use them at your own risk. \endnotepar The document you are reading is a plain \TeX\ file called |magrmac.dtx|. This `documented \TeX\ macros'\footnote*{The suffix |dtx| is the same as files used to simlar effect in the \LaTeX~2e distribution.} file produces the file `|magrmac.tex|' in the current directory, in addition to the usual |dvi| file. The code lines in the printed documentation are identical to those in the macros file. %}}} introduction %{{{ file identification \section{File identification} Nowadays, macro files start with some comments identifying the file, for the benefit of people wondering what the file is for. \code \|\% magrmac.tex \fileversion~\filedate~-- Malvern Greek Macros |%%%@TeX-definition-file { |%%% filename = "$texmf/tex/plain/pdcmac/magrmac.tex", \|\%\%\% version~~~~~~~~= "\fileversion", \|\%\%\% date~~~~~~~~~~~= "\filedate", |%%% package = "pdcmac 1.0", |%%% author = "P. Damian Cugley", |%%% email = "damian.cugley@comlab.ox.ac.uk", |%%% address = "Oxford University Computing Laboratory, |%%% Parks Road, Oxford OX1 3QD, UK", |%%% codetable = "USASCII", |%%% keywords = "TeX, plain TeX, Malvern, Greek, macros", |%%% supported = "Maybe", |%%% abstract = "Macros for using Malvern Greek fonts. |%%% This file was generated by running |%%% plain TeX on magrmac.dtx", |%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley", |%%% copying = "DO NOT DISTRIBUTE THIS FILE. |%%% Distribute magrmac.dtx only as part of the |%%% package it came in.", |%%% dependencies = "", |%%%} | \|\\message\{\fileversion~\filedate\} | \endcode %}}} file identification %{{{ greek mode \section{Greek Mode} The Greek Mode is started with |\begingreek| for compatibility with the precedent of Greek\TeX\ and Levy's original Greek macros.\footnote*{The conventions of PDCFMT2 would suggest |\greek|\dots|\endgreek| but (besides being incompatible with existing Greek macros) it is probable that the hyphenation table code (|\language| code) for Greek would be called |\greek|, based on the names I~have seen used.} The token register |\everygreek| is expanded each time we enter Greek mode. At a minimum it should contain a command to select an appropriate Greek font. \code |\newtoks\everygreek |\chardef\other=12 \smallbreak |\def\begingreek{% | \begingroup | \catcode`\~\other \catcode`\|\other \catcode`\"\other | \the\everygreek |} \smallbreak |\let\endgreek=\endgroup \endcode %}}} greek mode \section{Customization} %{{{ lunate sigma, curly phi \subsec{Lunate sigma} The macro |\grlunatesigma| belongs in |\everygreek|. It makes |s| an active char expanding to |c|. A certain amount of jiggery-pokery is required because making |s| active makes it impossible to use the name |\grlunatesigma|! \code |\toksdef\toksa=0 \smallbreak |\begingroup \let\\=\toksa \catcode`\s=13 \catcode`\S=13 \\={\endgroup | \def\tmp{% | \catcode`\s\active \chardef s`c | \catcode`\S\active \chardef S`C | } |}\the\\ |\let\grlunatesigma=\tmp \endcode \subsec{Variant phi} In the end I~make the two-stroke phi $\phi$ the default one, with $\varphi$ as the `variant', for compatibility with plain \TeX. \code |\chardef\ninetytwo=92 \smallbreak |\begingroup \uccode`\~=`f \uppercase{\toksa={\endgroup | \def\grvarphi{% | \catcode`\f\active \chardef~\ninetytwo | } |}} \the\toksa \endcode %}}} lunate sigma %{{{ accent \subsec{One-accent Greek} The |\monotonik| macro makes all the accent characters generate the modern symmetrical accent, while the breathings and iota subscript do nothing. \code |\begingroup \catcode`\<=\active \catcode`\>=\active | \catcode`\'=\active \catcode`\`=\active \toksa={\endgroup | \def\monotoniko{% | \catcode\lq\'\active \chardef'3 | \catcode\lq\`\active \chardef`3 | \catcode\lq\~\active \chardef~3 | \catcode\lq\<\active \let<\relax | \catcode\lq\>\active \let>\relax | \catcode\lq\|\active \let|\relax | } |}\the\toksa \smallbreak |\def\plutoniko{% | \catcode`\'\other \catcode`\`\other \catcode`\~\other | \catcode`\<\other \catcode`\>\other \catcode`\|\other |} \endcode %}}} accent %{{{ define delims \subsec{Choose shorthand delimiters for Greek Mode} Define |#1| to be a `greek shift' in the way |$| is a maths shift. Like |$|, |#1| will stand for either |\begingreek| or |\endgreek| as required. |#1| must be a one-character control sequence (as might be used after |`|). \code |\def\grdelimiter#1{ | \begingroup \uccode`~=`#1 \uppercase{\toksa={\endgroup | \def~{\begingreek \let~\endgreek} | }} \the\toksa |} \endcode %}}} define delims \endcodefile \enddocument \bye %}}} macros for greek % Local variables: % fold-folded-p: t % tex-macros-p: t % End: