% 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: