summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/plain/pdcmac/maamac.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/plain/pdcmac/maamac.dtx')
-rw-r--r--Master/texmf-dist/source/plain/pdcmac/maamac.dtx627
1 files changed, 0 insertions, 627 deletions
diff --git a/Master/texmf-dist/source/plain/pdcmac/maamac.dtx b/Master/texmf-dist/source/plain/pdcmac/maamac.dtx
deleted file mode 100644
index a4398caa417..00000000000
--- a/Master/texmf-dist/source/plain/pdcmac/maamac.dtx
+++ /dev/null
@@ -1,627 +0,0 @@
-% maamac.dtx -- documentation & source for maamac.tex -*-tex-*-
-
-%%%@TeX-document-file {
-%%% title = "MAAMAC -- Malvern A Macros",
-%%% filename = "$texmf/doc/plain/pdcmac/maamac.dtx",
-%%% version = "$Revision: 1.5 $",
-%%% package = "pdcmac 1.0",
-%%% date = "$Date: 1995/04/06 13:33:44 $",
-%%% 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 maamac.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"
-%%%}
-
-%{{{ maamac
-%{{{ preamble
-
-\relax
-\input pdccode
-
-\document
-\rcs$Id: maamac.dtx,v 1.5 1995/04/06 13:33:44 pdc Exp $\endrcs
-
-\newcount\chcda \newcount\chcdc \newcount\chcdn
-\def\changecodes#1#2#3#4{%
- \chcda#2\relax \chcdc#3\relax \chcdn#4\relax
- \loop \ifnum\chcdn>0
- #1\chcda\chcdc
- \advance\chcda1 \advance\chcdc1 \advance\chcdn-1
- \repeat
-}
-\changecodes\mathcode{`a}{"7461}{26}
-
-\codefile{maamac.tex}
-%}}} preamble
-%{{{ introduction
-
-\author{P. Damian Cugley}
-\title{MAAMAC---Malvern A Macros}
-\advance\seccount-1
-\section{Introduction}
-
- This document describes |maamac.tex|, a collection of formatting
- macros for plain \TeX\ documents using fonts with the Malvern~A
- encoding. For example, it defines commands for making composite
- letters and special symbols.
-
-\subsec{About this document}
-
- The definitions file and this printed documentation are both in
- |maamac.dtx|, a `documented \TeX\ macros' file\footnote*{The
- \LaTeX~2e distribution uses files with the `|dtx|' suffix for
- similar purposes.} which, when processed by plain \TeX,
- generates a fresh copy of |maamac.tex| in the current directory
- in addition to the |dvi| file. This ensures that the printed
- documentation and the code it describes are identical. The
- |dtx| file uses the macros in |pdccode.tex|.
-
-\subsec{What is in MAAMAC?}
-
- The definitions in |maamac.tex| fall into three sections:
-\smallskip
-\item{\S1} Building {\it composite letters} like `\'e' from {\it
- marks} like `\'{}' and {\it base letters} like `e'. This gives
- new definitions for commands like |\'| and |\"|.
-\item{\S2} Symbols and special letters: replacements for existing
- commands like |\P| (\P) and |\ae| (\ae), and new commands like
- |\registered| and |\pounds|.
-\item{\S3} Switching between alphabets. The Malvern~A encoding includes
- separate small capital and medium capital alphabets in addition
- to the usual capitals and lower case. This section defines
- commands for transliterating a list of tokens from one alphabet
- to another.
-
-\smallskip\noindent
- The first two sections make changes to commands described in
- {\it\TeX book} Chapter~9 (and a few maths symbols from
- Chapter~16) and defined in Appendix~B.
-
-%}}} introduction
-%{{{ File identification
-\subsec{File identification}
-
- Nowadays, macro files start with some comments identifying the
- file.
-
-\code
- \|\% maamac.tex \fileversion~\filedate~-- Malvern A Macros
- |
- |%%%@TeX-definition-file {
- |%%% filename = "$texmf/tex/plain/pdcmac/maamac.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, macros",
- |%%% supported = "Maybe",
- |%%% abstract = "Macros for using the Malvern-A font coding
- |%%% scheme in plain TeX documents.
- |%%% This file was generated by running
- \|\%\%\%~~~~~~~~~~~~~~~~~~~plain TeX on \jobname.dtx",
- |%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
- |%%% copying = "DO NOT DISTRIBUTE THIS FILE.
- \|\%\%\%~~~~~~~~~~~~~~~~~~~Distribute \jobname.dtx only as part of the
- |%%% package it came in.",
- |%%% dependencies = "",
- |%%% }
- |
- \|\\message\{\fileversion~<pdc \filedate>\}
- |
-\endcode
-
-%}}}
-%{{{ building composite letters
-\section{Building composite letters}
-
- THis section redefines commands listed at the start of Chapter~9
- of the {\it\TeX book}: |\'|, |\"|, etc. The main difference is
- that these now use `medium capitals' and differently-drawn marks
- to make composite capital letters.
-
- I~also define \<chardef tokens> called |\acuteglyph|,
- |\twodotsglyph| which may be used to print these marks in a
- document: `the acute mark ``\'{}''\dots' might be typeset with
- `|the acute mark ``\acuteglyph''|\dots'. Also, if you don't
- like the way my macros look, you can say `|\accent\acuteglyph
- E|' rather than having to look up its glyph number.
-
-%{{{ utility macros
-
-\subsec{Utility macros}
-
- First some nicknames for scratch registers.
-\code
- |\dimendef\dimena0 \dimendef\dimenb2
- |\toksdef\toksa0
- |\countdef\counta255
- |\ifx\countb\UNDEFINED \csname newcount\endcsname\countb \fi
- |\ifx\countc\UNDEFINED \csname newcount\endcsname\countc \fi
-\endcode
-
- A macro to find the code in \TeX's internal encoding for a
- character. The character might be represented by (1)~a
- character with category code~11 or~12, (2)~a token defined with
- |\chardef|, or (3)~the token |\char| followed by a \<number>.
-\code
- |\def\code#1{%
- | \ifcat#1a%
- | `#1
- | \else\ifcat#1+%
- | `#1
- | \else\ifx\char#1
-\endcode
-\hbox{\hskip6\fontdimen6\tentt
- \% If the first token is |\char| the rest is the
- \<number> we want.}
-\code
- | \else
- | #1%
- | \fi\fi\fi
- |}
-\endcode
-
- So as to make conditional macros that can be skipped over if
- they appear nested inside another conditional, we make include
- the token |\then| amongst the arguments, making this the `if-'
- token to match the |\else| and |\fi| following it. This way we
- write, for example
-$$\hbox{|\ifcap|\<character> |\then| \<true text>
- |\else| \<false text> |\fi|}$$
-\code
- |\let\then=\iffalse
-\smallbreak
- |\def\ifcap#1\then{\expandafter\ifcapnum\code{#1}\then}
- |\def\ifcapnum#1\then{\ifnum\lccode#1=#1}
-\smallbreak
- |\def\iflower#1\then{\expandafter\iflowernum\code{#1}\then}
- |\def\iflowernum#1\then{\ifnum\uccode#1=#1}
-\endcode
-
- A macro to extract the slant-per-point parameter of a font in
- toe form of a \TeX\ \<factor>.
-\code
- |\def\fontslant#1{\expandafter\stripPT\the\fontdimen1#1}
-\smallbreak
- |\begingroup \uccode`2=`p \uccode`3=`t \uppercase{\toksa{\endgroup
- | \def\\#123{#1}
- |}} \the\toksa
- |\let\stripPT=\\
-\endcode
-%}}} utility macros
-%{{{ macros for placing marks
-
-\subsec{Macros for placing marks}
-
- This simple macro places the text |#3| at displaced
- $(\hbox{|#1|},\hbox{|#2|})$ from current position:
-\code
- |\def\putxy#1#2#3{\leavevmode\rlap{\hskip#1\raise#2\hbox{#3}}}
-\endcode
-
- Now we have a generic mark-placement macro. It is similar to
- the |\accent| primitive, but takes two extra parameters:
-$$
- \hbox{|\putmarkxy|\arg{$xf$}\arg{$dy$}\arg{$mark$}\arg{$base$}}
-$$
- The horizontal position $xf$ of the optical centre of the base
- letter (ignoring slant) is expressed as a \<factor> (i.e.,
- decimal fraction of the width of the base glyph). The vertical
- displacement $dy$ is expressed as a fragment of \TeX\ code that
- will calculate $dy$. The code is expanded after setting box~0
- to contain the base glyph, and must put the result in |\dimena|.
- For example, we could define
-$$
- \hbox{|\def\fakeaccent{\putmarkxy{0.5}{\dimena\ht0
- \advance\dimena-1ex }}|}
-$$
- This produces an approximation to the primitive |\accent|
- command.
-
- Given the $x$-factor $xf$, a base glyph with width $wd$, a font
- with slant $s$, the horizontal displacement $dx$ is given by
-$$
- dx = xf \times wd + s \times dy\quad.
-$$
- In this macro it is stored in |\dimenb|.
-\code
- |\def\putmarkxy#1#2#3#4{{%
- | \setbox0=\hbox{#4}#2\relax
- | \dimenb#1\wd0 \advance\dimenb\fontslant\font\dimena
- | \leavevmode
- | \putxy{\dimenb}{\dimena}{\hbox to 0pt{\hss\char#3\hss}}%
- | \box0
- |}}
-\smallbreak
- |\def\putmarky{\putmarkxy{0.5}}
-\endcode
-%}}} macros for placing marks
-%{{{ type I marks
-
-\subsec{Type~I Marks}
-
- A Type~I mark is one which does not have any scope for being
- `squashed' to go over capital letters---for example, the
- two-dots mark `\"{}' and macron `\={}'.
-
- Here's a macro for placing a Type~I mark given by |#1| (a
- \<number>) over base glyph |#2| (which is anything that |\code|
- understands). The difference between this macro and simply
- using |\accent| is (1)~if presented with a capital letter it
- will use the corresponding medium capital letter and (2)~the the
- mark is raised by an amount intended to centre it vertically
- between the top of the base letter and the top of the
- body-height---assuming it was original centered between
- body-height and $x$-height.
-
- If $H$ is the body height, $h$ the height of the base glyph,
-$$ \mathcode`/="202F
- \eqalign{dy &= { H + h \over 2 } - { H + 1\,{\rm
- ex} \over 2}\cr
- &= \textstyle { 1\over2}h - {1\over2}\,{\rm ex}\cr}
-$$
-\code
- |\def\typeImark#1#2{{%
- | \setbox2=\hbox{#2}%
- | \ifdim \ht2=1ex
- | \accent#1\relax#2%
- | \else
- | \counta\code{#2}%
- | \ifnum\counta>64 \ifnum\counta<96
- | \advance\counta 128
- | \fi \fi
- | \putmarky{\dimena0.5\ht0 \advance\dimena-0.5ex }
- | {#1}{\char\counta}%
- | \fi
- |}}
-\endcode
-
- Finally we define the composite-letter-building commands.
-\code
- |\chardef\dotglyph22 \def\.{\typeImark\dotglyph}
- |\chardef\twodotsglyph23 \def\"{\typeImark\twodotsglyph}
- |\chardef\macronglyph150 \def\={\typeImark\macronglyph}
- |\chardef\longmacronglyph151
- | \def\longmacronmark{\typeImark\longmacronglyph}
-\endcode
-%}}} type I marks
-%{{{ type II marks
-
-\subsec{Type~II Marks}
-
- These marks have an alternative glyph for use of capital and
- medium capital letters. As with |\typeImark|, |#1| is a
- \<number> and |#2| is anything understood by |\code|.
-\code
- |\def\typeIImark#1#2{{%
- | \counta#1\relax \countb\code{#2}%
- | \ifcap{#2}\then
- | \ifnum \counta<128 \advance\counta 128 \fi
- | \ifnum \countb<128 \advance\countb 128 \fi
- | \fi
- | \accent\counta \char\countb
- |}}
-\smallbreak
- |\chardef\acuteglyph8 \def\'{\typeIImark\acuteglyph}
- |\chardef\graveglyph9 \def\`{\typeIImark\graveglyph}
- |\chardef\circumglyph10 \def\^{\typeIImark\circumglyph}
- |\chardef\tildeglyph11 \def\~{\typeIImark\tildeglyph}
- |\chardef\ringglyph12 \def\ringmark{\typeIImark\ringglyph}
- |\chardef\caronglyph13 \def\v{\typeIImark\caronglyph}
- |\chardef\breveglyph14 \def\u{\typeIImark\breveglyph}
- |\chardef\hungarglyph15 \def\H{\typeIImark\hungarglyph}
-\endcode
- I have abbreviated `circumflex' as `circum' (consistent with
- Adobe's `|asciicircum|'). I~have called the hook `\v{}'
- `|caron|' because that is its name as used by ISO and Adobe.
- I~have called the long Hungarian umlaut `\H{}' `|hungar|' for
- want of a better name (it's shorter than |hungarumlaut|)..
-%}}} type II marks
-%{{{ cedilla ogonek
-
-\subsec{Cedilla and ogonek}
-
- The cedilla and ogonek each have a variant intended for capital
- letters (in this case the variant is larger not smaller).
-\code
- |\def\cedillalike#1#2#3{{%
- | \setbox0=\hbox{#3}%
- | \ifdim\ht0>1ex
- | \ooalign{\hidewidth\char#2\relax\hidewidth\crcr\unhbox0 }%
- | \else
- | \accent#1 #3%
- | \fi
- |}}
-\smallbreak
- |\chardef\cedillaglyph6 \chardef\Cedillaglyph134
- |\def\c{\cedillalike\cedillaglyph\Cedillaglyph}
-\smallbreak
- |\chardef\ogonekglyph7 \chardef\Ogonekglyph135
- |\def\k{\cedillalike\ogonekglyph\Ogonekglyph}
-\endcode
-%}}} cedilla ogonek
-%}}}
-%{{{ symbols
-\section{Symbols and special letters}
-%{{{ special letters
-
-\subsec{Special letters}
-
- The letters defined here that are not included in Chapter~9 of
- the {\it\TeX book} are the Icelandic thorn (|\TH|, |\th|) and
- eth\footnote*{Also called `edh'.} (|\DH|, |\dh|), the Polish
- {\it a} and {\it e} with ogonek (|\A|, |\a|, |\E|, |\e|), and
- the Sami eng\footnote\dag{Also called `ing' or `ng'.} (|\NG|,
- |\ng|).
-
- We also give replacements for {\it d}, {\it t} and {\it l} with
- hook (which are usually drawn with a apostrophe-like mark), and
- the Esperanto letter {\it hho} (\^h).
-\code
- |\chardef\TH"00 \chardef\th"10 \chardef\DH"04 \chardef\dh"14
- |\chardef\A "01 \chardef\a "11 \chardef\E "05 \chardef\e "15
- |\chardef\NG"02 \chardef\ng"12 \chardef\L "03 \chardef\l "13
- |\chardef\AE"5E \chardef\ae"7E \chardef\OE"5F \chardef\oe"7F
- |\chardef\O "5C \chardef\o "7C
-\smallbreak
- |\chardef\vd"9C \chardef\vt"9D \chardef\h "9E \chardef\vl"9F
- |\chardef\ss"18 \chardef\i "19 \chardef\j "1A
-\smallbreak
- |\def\aa{\ringmark a} \def\AA{\ringmark A}
-\endcode
-
-\code
-\smallbreak
- |\chardef\orda"98 \chardef\ordo"99 \def\No{N\ordo} \def\no{n\ordo}
- |\chardef\csuperior"98 \def\Mc{M\csuperior}
-\endcode
- The command |\Mc| is used for forming names like
- M\flushtop{\the\scriptfont\fam \b c}Donald.
-%}}} special letters
-%{{{ text syms
-
-\subsec{Other symbols used in text}
-
- There are several new symbols here. Note that |\trademark| is
- what you will get if you use the ASCII double quote character
- `|"|' in your manuscript.
-\code
- |\chardef\trademark "22
- |\chardef\copyright "FB \chardef\registered"FD
- |\chardef\careof "9A \chardef\Box "A0
- |\chardef\cents "A2 \chardef\pounds "A3
- |\chardef\currency "A4 \chardef\permille "A5
- |\chardef\yen "A8 \chardef\florin "A9
- |\chardef\dag "AA \chardef\ddag "AB
- |\chardef\gbdecimal "AE \chardef\minus "AF
- |\chardef\S "BA \chardef\P "BB
- |\chardef\degrees "C0
- |\chardef\lguillemet"BC \chardef\rguillemet"BE
-\endcode
- The |\careof| sign ($\rm ^c\!/\!_o$) is an abbreviation for
- `care of' in English-language addresses (actually, Australians
- traditionally write `$\rm ^c\!/\!_-$'). The raised dot
- |\gbdecimal| is the British decimal point (I~usually do
- |\mathcode`.=\gbdecimal| and let maths mode do all the work).
- The |\degrees| sign replaces \TeX's |$^\circ$|.
-
- The guillemets can also be obtained with the ligatures |<<| and
- |>>|.
-
-
-%}}} text syms
-%{{{ maths syms
-
-\subsec{Symbols used in maths}
-
- I have stuck with the plain \TeX\ conventions as much as
- possible---even though |\bullet| is more often used in text than
- maths.
-\code
- |\mathcode`\,"602C \mathcode`\-"20AF
- |\mathcode`\."002E \mathcode`\/"002F
-\smallbreak
- |\mathchardef\bullet "2020 \mathchardef\times "20A6
- |\mathchardef\backslash"005B \mathchardef\setminus "205B
- |\mathchardef\cdot "20AE \mathchardef\cdotp "60AE
-\smallbreak
- |\def\langle{\delimiter"40DB30A } \delcode`\<"0DB30A
- |\def\rangle{\delimiter"50DD30B } \delcode`\>"0DD30B
- |\def\lbrace{\delimiter"407B308 } \let\{\lbrace \mathcode`\{"407B
- |\def\rbrace{\delimiter"507D309 } \let\}\rbrace \mathcode`\}"407D
-\endcode
-
-%}}} maths syms
-%}}} symbols
-%{{{ switching alphabets
-\section{Switching between alphabets}
-
- This is one of the strange ideas that went into the design of
- the Malvern font---I wanted to have small capitals and medium
- capitals treated as separate alphabets rather than as a
- different style, just as I treat old-style and ranging numerals
- as separate symbols. These extra alphabets are present in all
- Malvern~A encodings\footnote*{Fonts with the Malvern~A encoding
- but made from normal PostScript fonts will have medium capitals
- replaced with full capitals, and old-style numerals replaced
- with ranging numerals.}
-
- These extra alphabets are obtained by transliterating a sequence
- of letters using the |\uppercase| and |\lowercase|
- commands.\footnote\dag{Alas! this task would be so much easier
- and more efficient if it were possible to declare new
- alphabet-switching tables styled after the |\uccode| and
- |\lccode| tables which make |\uppercase| and |\lowercase| work.
- Then all this nonsense could happen in \TeX's mouth, which has
- some advantages. I~can imagine commands |\newchartable| (used
- to create a token which can be used in the same way as
- |\uccode|) and |\usechartable| (used to defined macros that work
- like |\uppercase|). E\TeX\ hackers take note!} For example, to
- transliterate capitals into small capitals (the |\sc| command),
- we first make assignments so that, for example, |\lccode`a| is
- set to the code for small-capital $\scriptstyle A$, then apply
- |\lowercase| to the token list.
-
-\subsec{Setting upper and lower case codes for special letters}
-
- These entries in the |\uucode| and |\lccode| tables are used by
- the composite-letter-building commands rather then the
- alphabet-switchign commands, but they are included here to be
- near the other code-hackery.
-
-\code
- |\uccode\th\TH \lccode\TH\th \uccode\TH\TH \lccode\th\th
- |\uccode\a \A \lccode\A \a \uccode\A \A \lccode\a \a
- |\uccode\ng\NG \lccode\NG\ng \uccode\NG\NG \lccode\ng\ng
- |\uccode\l \L \lccode\L \l \uccode\L \L \lccode\l \l
- |\uccode\dh\DH \lccode\DH\dh \uccode\DH\DH \lccode\dh\dh
- |\uccode\e \E \lccode\E \e \uccode\E \E \lccode\e \e
- |\uccode\o \O \lccode\O \o \uccode\O \O \lccode\o \o
- |\uccode\ae\AE \lccode\AE\ae \uccode\AE\AE \lccode\ae\ae
- |\uccode\oe\OE \lccode\OE\oe \uccode\OE\OE \lccode\oe\oe
-\smallbreak
- |\uccode\i`I \uccode\j`J \lccode\i\i \lccode\j\j
- |\uccode\csuperior`C
-\endcode
-
-
-\subsec{A macro for changing character codes}
-
- The |\changecodes| command is used to change those segments of
- character tables that are contiguous and map onto a contiguous
- segment in the range. It is invoked as
-$$
- \hbox{\it |\changecodes| command x y n}
-$$
- (where $\it command$ is a token like |\uccode| or |\mathcode|
- and $x$, $y$, and $n$ are \<number>s), and does the equivalent
- of
-$$
- {\it command}\;i\mathrel{\hbox{\tt=}}
- j\qquad \hbox{for all $\cases{x \le i < x + n\cr
- y \le j < y + n\cr}$}
-$$
-
-\code
- |\def\changecodes#1#2#3#4{%
- | \counta#2\relax \countb#3\relax \countc#4\relax
- | \loop
- | \ifnum\countc>0
- | #1\counta\countb
- | \advance\counta 1
- | \advance\countb 1
- | \advance\countc-1
- | \repeat
- |}
-\endcode
-
- We can use this immediately to arrange that lowercasing medium caps
- makes lower case, and uppercasing small caps makes full caps:
-\code
- |\changecodes\uccode{"E1}{`A}{26}
- |\changecodes\uccode{"C1}{"C1}{26}
- |\changecodes\lccode{"E1}{"E1}{26}
- |\changecodes\lccode{"C1}{`a}{26}
-\endcode
-
- We also make old-style numerals behave as lower case for ranging
- numerals, and also arrange that maths mode uses ranging figures.
-\code
- |\changecodes\lccode{"B0}{`0}{10}
- |\changecodes\uccode{`0}{"B0}{10}
-\endcode
-
- In maths mode (1)~we use text italic for letters, since CM MAth
- Italic will not match the body text and (2)~we use ranging
- figures.
-\code
- |\changecodes\mathcode{`a}{"7461}{26}
- |\changecodes\mathcode{`A}{"7441}{26}
- |\changecodes\mathcode{`0}{"70B0}{10}
-\endcode
-
-\subsec{Changing the alphabet for special letters got with commands}
-
- When applying |\uppercase| or |\lowercase| to a token list,
- macros will be unaffected (|\ae| will still generate `ae'). To
- get around this we define macros that redefine these control
- sequences. They each take as parameters hex digits used to make
- character codes.
-\code
- |\def\capspecials#1#2{%
- | \chardef\TH"#10 \chardef\A "#11 \chardef\NG"#12
- | \chardef\L "#13 \chardef\DH"#14 \chardef\E "#15
- | \chardef\O "#2C \chardef\AE"#2E \chardef\OE"#2F
- |}
-\smallbreak
- |\def\lcspecials#1#2#3{%
- | \chardef\th"#10 \chardef\a "#11 \chardef\ng"#12
- | \chardef\l "#13 \chardef\dh"#14 \chardef\e "#15
- | \chardef\o "#2C \chardef\ae"#2E \chardef\oe"#2F
- | \def\ss{\char"#23 \char"#23 }\chardef\i"#39 \chardef\j"#3A
- |}
-\endcode
-\subsec{Pulling it all together}
- Now we can define the user macros that do the work. These take
- one argument, a piece of text to transliterate: |\sc{OX1~3QD}|
- produces a small-capital `${\rm\scriptstyle OX}{\mit 1\
- 3}{\rm\scriptstyle QD}$';
- |\csc{ABCdef}| produces caps and small caps
- `ABC{\the\scriptfont0 DEF}'.
-\code
- |\def\sc#1{{%
- | \changecodes\lccode{`A}{"E1}{26}\capspecials9F\lowercase{#1}%
- |}}
-\smallbreak
- |\def\mc#1{{%
- | \changecodes\lccode{`A}{"C1}{26}\capspecials8D\lowercase{#1}%
- |}}
-\smallbreak
- |\def\csc#1{{%
- | \changecodes\uccode{`a}{"E1}{26}\lcspecials9FE\uppercase{#1}%
- |}}
-\smallbreak
- |\def\allcaps#1{{%
- | \lcspecials054\uppercase{#1}%
- |}}
-\smallbreak
- |\def\alllc#1{{%
- | \capspecials17\lowercase{#1}%
- |}}
-\endcode
-%}}} switching alphabets
-\endcodefile
-\enddocument
-\bye
-%}}} maamac
-
-
-% Local variables:
-% fold-folded-p: t
-% fill-prefix: "\t"
-% End: