diff options
Diffstat (limited to 'Master/texmf-dist/source/plain/pdcmac/pdcmisc.dtx')
-rw-r--r-- | Master/texmf-dist/source/plain/pdcmac/pdcmisc.dtx | 555 |
1 files changed, 555 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/plain/pdcmac/pdcmisc.dtx b/Master/texmf-dist/source/plain/pdcmac/pdcmisc.dtx new file mode 100644 index 00000000000..4e73e2c8eda --- /dev/null +++ b/Master/texmf-dist/source/plain/pdcmac/pdcmisc.dtx @@ -0,0 +1,555 @@ +% pdcmisc.dtx -- documentation and source code for misc macro files -*-tex-*- + +%%%@TeX-document-file { +%%% title = "Miscellanous macro files", +%%% filename = "$texmf/doc/plain/pdcmac/pdcmisc.dtx", +%%% version = "$Revision: 1.4 $", +%%% package = "pdcmac 1.0", +%%% date = "$Date: 1995/03/30 16:13:08 $", +%%% 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 files pdcmigr.tex, pdcimth.tex, +%%% pdchyex.tex, pdcmasyb.tex. +%%% Running plain TeX on this file produces both the +%%% definitions files 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" +%%%} + +%{{{ pdcmisc.dtx +%{{{ preamble + +\relax +\input pdccode + +\document +\rcs$Id: pdcmisc.dtx,v 1.4 1995/03/30 16:13:08 pdc Exp $\endrcs + +\def\newfile{\lineno=0 } +%}}} preamble +%{{{ intro +\author{P. Damian Cugley} +\title{Miscellaneous macro files} + +%}}} intro +%{{{ pdcmigr + +\newfile +\section{PDCMIGR: Use math italic Greek capitals} + + Knuth notes that it is conventional to use unslanted Greek + capitals in maths, even though other letters are slanted + (I~personally think that it looks nicer to use slanted Greek + caps). Thus \TeX\ takes the Greek capitals from fam~0 by + default. + + If you are using a body text font that does not have the Greek + capitals---for example, almost any PostScript or Cork-style + font---then this no longer works. Better then to switch to + using the Greek capitals from the math italic font (fam~1). + That's what the file |pdcmigr.tex| does. The characters are + still in maths class~7, meaning that they will respect changes + to |\fam| made by font-switching commands. + +\codefile{pdcmigr.tex} + +\code + \|\% pdcmigr.tex \fileversion~\filedate -- see end of file % + for more info + \|\\message\{\fileversion~<\fileauthor~\filedate>\} +\smallbreak + |\mathchardef\Gamma = "7100 + |\mathchardef\Delta = "7101 + |\mathchardef\Theta = "7102 + |\mathchardef\Lambda = "7103 + |\mathchardef\Xi = "7104 + |\mathchardef\Pi = "7105 + |\mathchardef\Sigma = "7106 + |\mathchardef\Upsilon = "7107 + |\mathchardef\Phi = "7108 + |\mathchardef\Psi = "7109 + |\mathchardef\Omega = "710A +\endcode + + This file has more comments than code. Since the code is so + short I think I'll get away with putting the comments after an + |\endinput|. +\code + |\endinput +\smallskip + |%%%@TeX-definition-file { + |%%% filename = "$texmf/tex/plain/pdcmac/pdcmigr.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 = "A definition file for TeX, which redefines + |%%% \Gamma, ..., \Omega to use letters from the + |%%% maths italic font instead of the roman font. + |%%% This file was generated by running + |%%% plain TeX on pdcmisc.dtx", + |%%% copyright = "Copyright (c) 1991, 1995 P. Damian Cugley", + |%%% copying = "DO NOT DISTRIBUTE THIS FILE. + |%%% Distribute pdcmisc.dtx only as part of the + |%%% package it came in.", + |%%% dependencies = "", + |%%% } +\endcode + +\endcodefile +%}}} pdcmigr +%{{{ pdcimth + +\newfile +\section{PDCIMTH: use text italic letters in maths mode} + + Very few existing font families have a separate math-italic font. When + using these fonts as body fonts, with the Computer Modern fonts as + maths fonts, it looks wrong to have the maths letters in a completely + different style form the text italic. Therefore it makes sense to + redefine maths mode so that the letters come from the text italic font. + + This is also useful when multiple-letter identifiers are used in maths + mode. We c an say |$difference:=height+depth$| and get `$\it + difference:=height+depth$' instead of `$difference:=height+depth$'. + + In the following, the counters |\count0| to |\count4| are used as + follows: +$$\centerline{\vbox{\halign{\tt\cs{#}\hfil&&\quad#\hfil\cr + count0&mathcode for current upper case char\cr + count1&mathcode for current lower case char\cr + count2&ASCII code of current upper case char\cr + count3&ASCII code of current lower case char\cr + count4&number of characters left to redefine\cr +}}}$$ + The grouping prevents this temporary use conflicting with \TeX's + use of these counters. + +\codefile{pdcimth.tex} +\code + \|\% pdcimth.tex \fileversion~\filedate~- maths letters in text italic + \|\\message\{\fileversion~\filedate\} + | + |\begingroup +\smallbreak + | \count0="7400 \count1=\count0 + | \advance\count0 by`A \advance\count1 by`a + | \count2=`A \count3=`a \count4=26 +\smallbreak + | \loop\ifnum\count4>0 + | \advance\count4 by-1 + | \global\mathcode\count2=\count0 + | \global\mathcode\count3=\count1 + | \advance\count0 by1 \advance\count1 by1 + | \advance\count2 by1 \advance\count3 by1 + | \repeat +\smallbreak + |\endgroup +\endcode +\noindent + The value $\hbox{\H{}\tt 7400} + c$ used above means mathcode~7, + fam~4 (|\itfam|), character~$c$. + + Once again, the code is short enough that I think I can get away + with putting the comments at the end: +\code + |\endinput +\smallskip + |%%%@TeX-definition-file { + |%%% filename = "$texmf/tex/plain/pdcmac/pdcimth.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 = "A definition file for TeX, which redefines + |%%% mathcodes to use letters from the + |%%% text italic font instead of math italic. + |%%% This file was generated by running + |%%% plain TeX on pdcmisc.dtx", + |%%% copyright = "Copyright (c) 1991, 1995 P. Damian Cugley", + |%%% copying = "DO NOT DISTRIBUTE THIS FILE. + |%%% Distribute pdcmisc.dtx only as part of the + |%%% package it came in.", + |%%% dependencies = "", + |%%% } +\endcode +\endcodefile +%}}} pdcimth +%{{{ pdchyex + +\newfile +\section{PDCHYEX: Hyphenation exceptions} + + These hyphenation exceptions are ones I~use for must documents. + +\notepar + Of all the macro files in this package, this is the one you + should be most chary of using. These are written for a \TeX\ + system which uses American English hyphenation patterns, but are + intended to help it produce hyphenations suitable for British + English, and this peverse approach will probably lead to all + sorts of anomalies. Ideally separate hyphenation patterns will + be used for British English documents. +\endnotepar + +\codefile{pdchyex.tex} + +\subsec{File identification} + + The list of exceptions is expected to grow, so it seems best to + have the identification at the top of the file. + +\code + \|\% pdchyex.tex \fileversion~\filedate~-- some British hyphenations +\smallskip + |%%%@TeX-definition-file { + |%%% filename = "$texmf/tex/plain/pdcmac/pdchyex.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 = "A non-exhaustive set of hyphenation exceptions + |%%% designed to make TeX with American hyphenation + |%%% tables produce some British hyphenations. + |%%% This file was generated by running + |%%% plain TeX on pdcmisc.dtx", + |%%% copyright = "Copyright (c) 1991, 1995 P. Damian Cugley", + |%%% copying = "DO NOT DISTRIBUTE THIS FILE. + |%%% Distribute pdcmisc.dtx only as part of the + |%%% package it came in.", + |%%% dependencies = "", + |%%%} + | + \|\\message\{\fileversion~<\fileauthor~\filedate>\} + | +\endcode + +\subsec{Setting parameters} + + These settings are from {\it Hart's Rules} p.\thinspace141. +\code + |\lefthyphenmin=2 \righthyphenmin=3 \uchyph=0 +\endcode + +\subsec{And finally, the hyphenation exceptions} + +\code + |\hyphenation{ +\endcode + First, some words from {\it Hart's Rules}\/ pp.\thinspace14--15. + I've taken the list on p.\thinspace14 and included here those + which were given wrong hyphenation by \TeX's default tables. +\code + | le-gend le-gends re-adjust re-appear exact-ing +\smallbreak + + | abs-cess abs-cess-es abs-cessed ana-lyse ana-lyses + | ana-lysis ana-lyses appear-ance appear-ances bio-graphy + | celeb-rate celeb-rates celeb-rations cor-respond-ence + | depend-ent des-pise des-pises dis-pised dimin-ish + | dimin-ish-es dimin-ish-ed dis-connect dis-connect-ed + | dis-connects forget-ting gener-ally haemor-rhage + | illus-trate immedi-ate immedi-ately immport-ance + | inexplic-able inter-pret inter-est inter-ested + | inter-est-ing minis-ter origin-ally philo-sophy + | philo-sophic philo-sophic-ally prim-ary prob-ably + | semb-lance +\smallbreak + | calm-est debt-ors fea-ther fea-thers post-humous lamb-like + | poingn-ant tough-ish ach-ing archaeo-logy etymo-logy + | philo-logist psycho-logist tauto-logy zoolo-gist +\endcode + Now some random hyphenations I~encountered in my own documents + at some point. I~haven't checked these in a spelling + dictionary, so don't use them in documents where your life + depends on correct hyphenation. +\code + + | art-iest cig-ar-ette bio-logy bio-chem-is-try boy-friend + | brit-ain brit-ish com-ic com-ics cug-ley dogs-body + | dor-mouse gai-man graph-ic immedie-ate immedi-ate + | immedi-ately issue mckean mis-hap mis-haps news-letter + | news-paper night-crawler origin-ally origin-ator phys-ique + | phys-iques porn-o-graphy porn-o-graphic rec-om-mend-ation + | Ser-geant ser-geant Sien-kie-wicz spon-tan-e-ous + | spon-tan-e-ously stop-ped strip-ped teen-ager teen-agers + | tem-per-men-tal Thatch-er-ism Thatch-er-ite under-ground + | under-grounds var-i-able venge-ance warp-smith warp-smiths + | whirl-pool + + |} +\endcode +\endcodefile + +%}}} pdchyex +%{{{ pdccmsub + +\newfile +\codefile{pdccmsub.tex} +\section{PDCCNSUB: Substitutions using Computer Modern glyphs} + + The Malvern and PostScript repertoire includes some characters + not included in the \TeX\ Text fonts used by plain \TeX. I~have + made macros for some of these that assemble symbols from + existing characters. This way documents can be switched between + the different font encoding schemes mroe easily. They won't + look very pretty though. + +\notepar + These work acceptably with ten-point Computer Modern but might + need adjustment with other fonts. +\endnotepar + +%{{{ indentification +\subsec{File dientification} + +\code + \|\% \filename~\fileversion~\filedate~-- CM subs for PS glyphs +\smallskip + |%%%@TeX-definition-file { + |%%% filename = "$texmf/tex/plain/pdcmac/pdcmigr.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 simulating some PostScript characters + |%%% using glyphs form the Computer Modern family. + |%%% This file was generated by running + |%%% plain TeX on pdcmisc.dtx", + |%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley", + |%%% copying = "DO NOT DISTRIBUTE THIS FILE. + |%%% Distribute pdcmisc.dtx only as part of the + |%%% package it came in.", + |%%% dependencies = "", + |%%% } + | + \|\\message\{\fileversion~\filedate\} + | +\endcode + +%}}} indentification + + +\code + |\dimendef\dimena=0 +\endcode +\dimendef\dimena=0 + +%{{{ currency + +\subsec{Currency signs} + +\def\yen{{% + \ooalign{% + \hfil\raise0.25ex\hbox{$\scriptscriptstyle=$}\hfil\crcr + \hfil Y\hfil + }% +}} +\def\currency{{% + \ooalign{% + \dimena-0.10em + \hskip\dimena \raise0.2ex \hbox{\mathhexbox202}\hskip\dimena\crcr + \hfil \raise0.2ex \hbox{\mathhexbox20E}\hfil + }% +}} + + The Yen sign looks like `50\thinspace000\yen', the cents sign + like `37\rlap/c'. The pounds-sterling sign is always italic. +\code + |\def\pounds{{\it\char36 }} +\smallbreak + |\def\yen{{% + | \ooalign{% + | \hfil\raise0.25ex\hbox{$\scriptscriptstyle=$}\hfil\crcr + | \hfil Y\hfil + | }% + |}} +\smallbreak + |\def\cents{\leavevmode\hbox{\rm\rlap/c}} +\endcode + + The ISO~646 currency sign---originally created to replace the + dollar sign in the international reference version character + set---is supposed to be drawn as a circle with four `ears'; + we'll have to fake it rather crudely: `\currency', as in + `\currency100' or possibly `100\currency'. +\code + |\def\currency{{% + | \ooalign{% + | \hskip-0.1em + | \raise0.2ex \hbox{\mathhexbox202}\hskip-0.1em\crcr + | \hfil \raise0.2ex \hbox{\mathhexbox20E}\hfil + | }% + |}} +\endcode + + The florin sign `{\it f}' seems to have started life as a way of + getting an italic {\it f} on dot-matrix printers. In an italic + context it still has to be in itaics---switching to a roman + letter does not seem appropriate. +\code + |\def\florin{{\it f\/}} +\endcode + +%}}} currency +%{{{ circled letters + + +\subsec{Things in circles} + +\def\circledletter#1#2{{% + \ooalign{% + \hfil\kern#1\hbox{$\scriptstyle\rm #2$}\hfil\crcr + \mathhexbox20D% + }% +}} +\def\registered{\circledletter{0.02em}R} +\def\copyright{\circledletter{-0.045em}C} + Here's a general macro for making letters in circles---like + the registered trade mark sign `\registered', or the signs + `\circledletter{0.04em}P' and `\circledletter{0.02em}S' + (I~don't use them so I~haven't given them names) or even `\circledletter{0.05em}1'. A matching + copyright sing (using a small capital {\it c} instead of a + lower case {\it c}) looks like `\copyright'. Parameter |#1| + to the macro is the amount to shift the small letter relative + to the circle to get it optically centred. +\code + |\def\circledletter#1#2{{% + | \ooalign{% + | \hfil\kern#1\raise0.00ex \hbox{$\scriptstyle\rm #2$}\hfil\crcr + | \mathhexbox20D% + | }% + |}} +\smallbreak + |\def\registered{\circledletter{0.02em}R} + |\def\copyright{\circledletter{-0.045em}C} +\endcode +%}}} circled letters +%{{{ guillemets + +\subsec{Guillemets} + +\def\lguillemet{\leavevmode \raise0.5ex \hbox{$\scriptscriptstyle\langle\!\langle$}} +\def\rguillemet{\leavevmode \raise0.5ex \hbox{$\scriptscriptstyle\rangle\!\rangle$}} + + Ersatz guillemets look like \lguillemet this\rguillemet. +\code + |\def\lguillemet{% + | \leavevmode + | \raise0.5ex \hbox{$\scriptscriptstyle\langle\!\langle$}% + |} +\smallbreak + |\def\rguillemet{% + | \leavevmode + | \raise0.5ex \hbox{$\scriptscriptstyle\rangle\!\rangle$}% + |} +\endcode +%}}} guillemets +%{{{ misc +\subsec{Miscellaneous} + +\def\permille{{% + \setbox0 \hbox{/}% + \flushtop{$\scriptstyle0\!$}/% + \lower\dp0 \hbox{$\!\scriptstyle00$}% +}} +\def\orda{\flushtop{\the\scriptfont\ifnum\fam>0 \fam\else 0\fi \b a}} +\def\ordo{\flushtop{\the\scriptfont\ifnum\fam>0 \fam\else 0\fi \b o}} + + The per-mille sign `\permille' can't be made from `\%' sign because + matching the rings is impossible, so we use `0/00': +\code + |\def\permille{{% + | \setbox0 \hbox{/}% + | \flushtop{$\scriptstyle0\!$}/% + | \lower\dp0 \hbox{$\!\scriptstyle00$}% + |}} +\endcode + + The British decimal point is a raised dot: `3\mathhexbox201141' + instead of `3.141'. +\code + |\def\gbdecimal{\mathhexbox201} +\endcode + Unfortunately, this symbol has become a casualty of the `DTP + revolution', and the American use of a full stop as a decimal + point has become common. + + The glyphs `\orda' and `\ordo' are used in to abbreviate Spanish + ordinal numbers: the feminine {\it primera} becomes 1\orda, and + the masculine {\it primero} 1\ordo. +\code + |\def\orda{\flushtop{\the\scriptfont\ifnum\fam>0 \fam\else 0\fi \b a}} + |\def\ordo{\flushtop{\the\scriptfont\ifnum\fam>0 \fam\else 0\fi \b o}} +\endcode + + +%}}} misc +%{{{ sc and csc + +\subsec{Substitutions for Malvern's alphabet-switching commands} + + The macros used to select small capitals etc.\ in Malvern fonts + cannot work with Computer Modern, but might appear in documents + anyway. Instead they are all made equivalent to |\relax|. + +\code + |\let\sc=\relax + |\let\csc=\relax + |\let\mc=\relax +\endcode + +%}}} sc and csc + +\endcodefile + +%}}} pdcmasub +\enddocument +\bye +%}}} pdcmisc.dtx +%Local Variables: +%fill-prefix: " " +%fold-folded-p: t +%End: |