summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/plain/jsmisc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/plain/jsmisc')
-rw-r--r--Master/texmf-dist/doc/plain/jsmisc/deutsch.doc329
-rw-r--r--Master/texmf-dist/doc/plain/jsmisc/deutsch.tex350
-rw-r--r--Master/texmf-dist/doc/plain/jsmisc/idverb.doc194
3 files changed, 873 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/plain/jsmisc/deutsch.doc b/Master/texmf-dist/doc/plain/jsmisc/deutsch.doc
new file mode 100644
index 00000000000..8285a980c3c
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/jsmisc/deutsch.doc
@@ -0,0 +1,329 @@
+% $Id: deutsch.doc,v 1.4 1995/07/30 13:23:56 schrod Exp $
+%----------------------------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+% This file is distributed without any copyright restriction.
+
+%
+% deutsch.doc -- typeset German documents with plain TeX.
+%
+% [TeX in MAKEPROG]
+% (history at end)
+
+
+\input progdoc
+
+\input names.sty
+\def\babel{{\sf babel}}
+
+
+
+\title{Typesetting German Documents with Plain \TeX{}}
+
+
+
+\chap Introduction.
+
+There are several defencies of plain \TeX{} if used for German
+documents:
+
+\item{---} Mappings of national characters (`umlauts' and `sharp~s')
+to macros or to other character codes (if special fonts are available)
+are missing.
+
+\item{---} \TeX{} produces lots of overfull hboxes for German texts.
+That's because the words there are usually longer than English ones.
+Furthermore we have to use much more hyphenation for German texts than
+for English ones, narrow typesetting is more important than few
+hyphenations. In particular, words with umlauts are not hyphenated
+often anyhow, even with the `multiple-word' approach from |german.sty|.
+
+\item{---} It is typographic usage that between compound words
+ligatures are not built. Plain~\TeX{} has no easy, readable way to
+provide this.
+
+\noindent This file does the according definitions. They are quite
+often only a kludge. But it is hard to make the restrictions
+disappear, sometimes it is even impossible within the current
+implementation of \TeX{}---and there will never be any other
+implementation. So we must live with these kludges.
+
+
+\sect Of course, there is more to German typesetting. Hyphenation,
+also for words with umlauts and sharp~s, etc. This basic
+functionality is supplied by the \babel{} system and DANTE's
+|german.sty|, we have to load the appropriate module.
+
+There's one problem, though. \babel{}~3.5 defines
+|\DeclareTextSymbol|, a symbol used by |german.sty| to decide if it
+shall use NFSS code to access symbols. But that usage will lead to an
+endless recursion, because some text symbols are defined by
+themselves. I don't know if that problem is caused by \babel{}'s code
+or by its usage in |german.sty| -- turning it off seems to be an
+appropriate fix.
+
+\beginprog
+\let\DeclareTextSymbol\undefined
+\input german.sty
+\endprog
+
+
+\sect But before we start we declare some shorthands for category
+codes. By declaring the at sign~(`|@|') as well as the
+underscore~`(|_|)' as letters we can use them in our macros. (I
+agree with D.~Knuth that |\identifier_several_words_long| is more
+readable than |\IdentifierSeveralWordsLong| and in every case better
+than |\p@@@s|.) With the at sign we can use the ``private'' Plain
+macros and with the underscore we can make our own macros more
+readable. But as we have to restore these category codes at the end
+of this macro file we store their former values in control
+sequences. This method is better than to use
+a group because not all macros have to be defined global this way.
+
+\beginprog
+\ifx \CatEscape\undefined
+ \chardef\CatEscape=0
+ \chardef\CatOpen=1
+ \chardef\CatClose=2
+ \chardef\CatIgnore=9
+ \chardef\CatLetter=11
+ \chardef\CatOther=12
+ \chardef\CatActive=13 % \active of plain.tex
+ \chardef\CatInvalid=15
+
+ \chardef\CatAtCode=\catcode`\@
+ \chardef\CatUsCode=\catcode`\_
+\fi
+
+\catcode`\@=\CatLetter % top level macro file
+\catcode`\_=\CatLetter
+\endprog
+
+
+\sect Let's identify this macro file against the user and in the Log file.
+
+\beginprog
+\begingroup
+ \catcode`\$=\CatIgnore
+ \catcode`\:=\CatIgnore
+ \message{Support for German documents, $Revision: 1.4 $}
+\endgroup
+\endprog
+
+
+
+\chap National Characters.
+
+By default no extended characters are available, except those defined
+below. I.e., we start to treat all characters from |"7F| to |"FF| as
+invalid characters.
+
+\beginprog
+\count@="7F
+\loop
+ \catcode \the\count@ = \CatInvalid
+ \advance\count@ by 1
+ \ifnum \count@ < "100
+\repeat
+\endprog
+
+
+\sect We provide a command for the definition of non-ASCII characters:
+|\ExtendChar|. A sample definition of an ``Umlaut-a''~(\"a) in the
+extended code of an IBM~PC (hex code~|"84|) is:
+$$
+ |\ExtendChar\^^84: {^^84}{\"a}|
+$$
+First the hex code is given as a control sequence, followed by a
+colon. Afterwards come two parameters, the first is again the hex
+code, the second is the token list which should be used instead of the
+hex code.
+
+The macro definition is rather easy, we just have to make the
+respective character active and bind it to it's new meaning.
+
+\beginprog
+\def\ExtendChar #1:{%
+ \catcode`#1 \CatActive
+ \extend_char
+ }
+\def\extend_char #1#2{%
+ \def #1{#2}%
+ }
+\endprog
+
+
+\sect Now we can define some replacements.
+
+The braces after the control sequences are needed when characters from
+the extended character set are written to an auxiliary file and read
+in later. During the |\write| they are expanded and following white
+space would be gobbled if the braces would not be there.
+
+\beginprog
+% ISO-Latin-1
+\ExtendChar\^^c4: {^^c4}{\"A}
+\ExtendChar\^^d6: {^^d6}{\"O}
+\ExtendChar\^^dc: {^^dc}{\"U}
+\ExtendChar\^^df: {^^df}{\ss{}}
+\ExtendChar\^^e4: {^^e4}{\"a}
+\ExtendChar\^^f6: {^^f6}{\"o}
+\ExtendChar\^^fc: {^^fc}{\"u}
+
+% IBM PC (code page 850)
+\ExtendChar\^^81: {^^81}{\"u}
+\ExtendChar\^^84: {^^84}{\"a}
+\ExtendChar\^^8e: {^^8e}{\"A}
+\ExtendChar\^^94: {^^94}{\"o}
+\ExtendChar\^^99: {^^99}{\"O}
+\ExtendChar\^^9a: {^^9a}{\"U}
+\ExtendChar\^^e1: {^^e1}{\ss{}} % actually \beta, used as \ss in Germany
+
+% Atari ST (like IBM PC, but with a real `sharp~s')
+\ExtendChar\^^9e: {^^9e}{\ss{}}
+\endprog
+
+
+
+\chap Paragraph Breaking.
+
+As outlined in the introduction, we allow longer interword spaces. A
+line now may have a badness up to 2500, over 1500 a warning is to be
+given. Furthermore the penalties for hyphenation are lowered because a
+narrow typesetting is preferred against few hyphenations.
+
+These values are still experimental and should be tuned.
+
+As |german.sty| uses \babel{} compatible structure, the german
+language hook is a good place to store such definitions. But to
+use \babel{}'s convenient macros, too, we have to assure that it's
+kernel code is loaded first.
+
+\beginprog
+\ifx \babel@core@loaded\undefined
+ \input babel.def
+\fi
+\addto\extrasgerman{%
+ \babel@savevariable\tolerance
+ \babel@savevariable\hbadness
+ \babel@savevariable\doublehyphendemerits
+ \babel@savevariable\finalhyphendemerits
+ \babel@savevariable\adjdemerits
+ \tolerance 2500 \hbadness 1500
+ \doublehyphendemerits 50000
+ \finalhyphendemerits 25000
+ \adjdemerits 50000
+ }
+\endprog
+
+
+\sect In some languages ligatures should not appear between compound
+words. We use {\tt \string\|\/} to mark those places. This is only
+done within text mode, in math mode {\tt \string\|\/} is still
+`$\|$'. But it is sure that one can always hyphenate between compound
+words, so we insert |\-|. To allow the hyphenation in other parts of
+the word though, we use |\allowhyphens| again.
+
+\beginprog
+\def\|{% % break open a ligature (if not in math mode)
+ \relax
+ \ifmmode \Vert
+ \else \allowhyphens\-\allowhyphens
+ \fi
+ }
+\endprog
+
+
+\sect Don't use the dreaded `double quote special meaning' stuff of
+|german.sty|. And use original umlauts. Already in M\"unster I voted
+against it\dots
+
+\beginprog
+\addto\extrasgerman{%
+ \mdqoff
+ \umlautlow
+ }
+\endprog
+
+
+\sect Define |\SwitchtoLanguage| for upward compatibility. It does
+not really do the same, the old definition was more similar to
+|\selectlanguage|. But other languages have to be declared
+explicitely, that's not done by this macro file. So we just want to
+make old documents processable.
+
+\beginprog
+\def\SwitchtoLanguage#1{\language \csname l@#1\endcsname}
+\endprog
+
+
+\sect We are finished; switch to german language (to enable the new
+extras defined above), restore the catcodes and prevent from following
+garbage.
+
+\beginprog
+\selectlanguage{german}
+
+\catcode`\@=\CatAtCode
+\catcode`\_=\CatUsCode
+
+\endinput
+\endprog
+
+
+%% \sect {\it Acknowledgements:}\quad I would like to thank XXX
+
+
+\bye
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% $Log: deutsch.doc,v $
+% Revision 1.4 1995/07/30 13:23:56 schrod
+% Discard babel definition of \DeclareTextCommand before including
+% german.sty, they are incompatible.
+%
+% Revision 1.3 1995/07/29 17:58:24 schrod
+% Use german.sty, not germanb.sty. (babel 3.5 is not functional for
+% plain TeX any more.) But we still want to use babel's macros, we have
+% to load it's kernel for that.
+%
+% Revision 1.2 1995/03/13 23:18:10 schrod
+% Started to manage this package with CVS. Made minor code cleanup.
+%
+% Revision 1.1 1994/10/16 16:57:30 schrod
+% Merged macros from local.tex, codes.tex, and language.tex. This
+% new file is mainly there to provide upward compatibility for our old
+% documents.
+%
+%
+%
+% pre-CVS Version History:
+%
+% DATE WHO REMARKS
+% 91-01-18 js set all extended characters to code invalid
+% 90-12-23 js added the definition of \ExtendChar for usage in codes.tex.
+% 90-10-06 js renamed from dlocal to local, it's now international,
+% adapted to TeX 3:
+% included codes.tex and langdef.tex if they exist,
+% assumed that language.tex is already loaded,
+% defined German parameters as a language hook,
+% removed first \allowhyphens in \uml@ut,
+% documented it with MAKEPROG.
+% 89-10-27 js was reworked for ILaTeX
+% 89-05-31 js defined \| as a separator for ligatures in text mode
+% 87-10-01 js introduced \protect,
+% set parameters for German page makeup
+% 87-??-?? kg first release
+%
+% kg: Klaus Guntermann <gunterma@<schrod@iti.informatik.th-darmstadt.de>
+% js: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Local Variables:
+mode: plain-TeX
+TeX-master: t
+TeX-brace-indent-level: 4
+End:
diff --git a/Master/texmf-dist/doc/plain/jsmisc/deutsch.tex b/Master/texmf-dist/doc/plain/jsmisc/deutsch.tex
new file mode 100644
index 00000000000..26f3e3719d6
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/jsmisc/deutsch.tex
@@ -0,0 +1,350 @@
+% $Id: deutsch.doc,v 1.4 1995/07/30 13:23:56 schrod Exp $
+%----------------------------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+% This file is distributed without any copyright restriction.
+
+%
+% deutsch.doc -- typeset German documents with plain TeX.
+%
+% [TeX in MAKEPROG]
+% (history at end)
+
+
+%%%%
+%%%%
+%%%% These TeX macros were documented with the documentation system
+%%%% MAKEPROG and automatically converted to the current form.
+%%%% If you have MAKEPROG available you may transform it back to
+%%%% the original input: Remove every occurence of three percents
+%%%% and one optional blank from the beginning of a line and remove
+%%%% every line which starts with four percents. The following lex
+%%%% program will do this:
+%%%%
+%%%% %%
+%%%%
+%%%% ^%%%\ ? ;
+%%%% ^%%%%.*\n ;
+%%%%
+%%%% If you just want to print the documentation you may fetch
+%%%% the archive print-makeprog.tar.Z from ftp.th-darmstadt.de (directory
+%%%% pub/tex/latex). It contains *all* used styles -- but beware, they
+%%%% may not be in a documented form...
+%%%%
+%%%%
+%%% \input progdoc
+
+%%% \input names.sty
+%%% \def\babel{{\sf babel}}
+
+
+
+%%% \title{Typesetting German Documents with Plain \TeX{}}
+
+
+
+%%% \chap Introduction.
+
+%%% There are several defencies of plain \TeX{} if used for German
+%%% documents:
+
+%%% \item{---} Mappings of national characters (`umlauts' and `sharp~s')
+%%% to macros or to other character codes (if special fonts are available)
+%%% are missing.
+
+%%% \item{---} \TeX{} produces lots of overfull hboxes for German texts.
+%%% That's because the words there are usually longer than English ones.
+%%% Furthermore we have to use much more hyphenation for German texts than
+%%% for English ones, narrow typesetting is more important than few
+%%% hyphenations. In particular, words with umlauts are not hyphenated
+%%% often anyhow, even with the `multiple-word' approach from |german.sty|.
+
+%%% \item{---} It is typographic usage that between compound words
+%%% ligatures are not built. Plain~\TeX{} has no easy, readable way to
+%%% provide this.
+
+%%% \noindent This file does the according definitions. They are quite
+%%% often only a kludge. But it is hard to make the restrictions
+%%% disappear, sometimes it is even impossible within the current
+%%% implementation of \TeX{}---and there will never be any other
+%%% implementation. So we must live with these kludges.
+
+
+%%% \sect Of course, there is more to German typesetting. Hyphenation,
+%%% also for words with umlauts and sharp~s, etc. This basic
+%%% functionality is supplied by the \babel{} system and DANTE's
+%%% |german.sty|, we have to load the appropriate module.
+
+%%% There's one problem, though. \babel{}~3.5 defines
+%%% |\DeclareTextSymbol|, a symbol used by |german.sty| to decide if it
+%%% shall use NFSS code to access symbols. But that usage will lead to an
+%%% endless recursion, because some text symbols are defined by
+%%% themselves. I don't know if that problem is caused by \babel{}'s code
+%%% or by its usage in |german.sty| -- turning it off seems to be an
+%%% appropriate fix.
+
+%%% \beginprog
+\let\DeclareTextSymbol\undefined
+\input german.sty
+%%% \endprog
+
+
+%%% \sect But before we start we declare some shorthands for category
+%%% codes. By declaring the at sign~(`|@|') as well as the
+%%% underscore~`(|_|)' as letters we can use them in our macros. (I
+%%% agree with D.~Knuth that |\identifier_several_words_long| is more
+%%% readable than |\IdentifierSeveralWordsLong| and in every case better
+%%% than |\p@@@s|.) With the at sign we can use the ``private'' Plain
+%%% macros and with the underscore we can make our own macros more
+%%% readable. But as we have to restore these category codes at the end
+%%% of this macro file we store their former values in control
+%%% sequences. This method is better than to use
+%%% a group because not all macros have to be defined global this way.
+
+%%% \beginprog
+\ifx \CatEscape\undefined
+ \chardef\CatEscape=0
+ \chardef\CatOpen=1
+ \chardef\CatClose=2
+ \chardef\CatIgnore=9
+ \chardef\CatLetter=11
+ \chardef\CatOther=12
+ \chardef\CatActive=13 % \active of plain.tex
+ \chardef\CatInvalid=15
+
+ \chardef\CatAtCode=\catcode`\@
+ \chardef\CatUsCode=\catcode`\_
+\fi
+
+\catcode`\@=\CatLetter % top level macro file
+\catcode`\_=\CatLetter
+%%% \endprog
+
+
+%%% \sect Let's identify this macro file against the user and in the Log file.
+
+%%% \beginprog
+\begingroup
+ \catcode`\$=\CatIgnore
+ \catcode`\:=\CatIgnore
+ \message{Support for German documents, $Revision: 1.4 $}
+\endgroup
+%%% \endprog
+
+
+
+%%% \chap National Characters.
+
+%%% By default no extended characters are available, except those defined
+%%% below. I.e., we start to treat all characters from |"7F| to |"FF| as
+%%% invalid characters.
+
+%%% \beginprog
+\count@="7F
+\loop
+ \catcode \the\count@ = \CatInvalid
+ \advance\count@ by 1
+ \ifnum \count@ < "100
+\repeat
+%%% \endprog
+
+
+%%% \sect We provide a command for the definition of non-ASCII characters:
+%%% |\ExtendChar|. A sample definition of an ``Umlaut-a''~(\"a) in the
+%%% extended code of an IBM~PC (hex code~|"84|) is:
+%%% $$
+%%% |\ExtendChar\^^84: {^^84}{\"a}|
+%%% $$
+%%% First the hex code is given as a control sequence, followed by a
+%%% colon. Afterwards come two parameters, the first is again the hex
+%%% code, the second is the token list which should be used instead of the
+%%% hex code.
+
+%%% The macro definition is rather easy, we just have to make the
+%%% respective character active and bind it to it's new meaning.
+
+%%% \beginprog
+\def\ExtendChar #1:{%
+ \catcode`#1 \CatActive
+ \extend_char
+ }
+\def\extend_char #1#2{%
+ \def #1{#2}%
+ }
+%%% \endprog
+
+
+%%% \sect Now we can define some replacements.
+
+%%% The braces after the control sequences are needed when characters from
+%%% the extended character set are written to an auxiliary file and read
+%%% in later. During the |\write| they are expanded and following white
+%%% space would be gobbled if the braces would not be there.
+
+%%% \beginprog
+% ISO-Latin-1
+\ExtendChar\^^c4: {^^c4}{\"A}
+\ExtendChar\^^d6: {^^d6}{\"O}
+\ExtendChar\^^dc: {^^dc}{\"U}
+\ExtendChar\^^df: {^^df}{\ss{}}
+\ExtendChar\^^e4: {^^e4}{\"a}
+\ExtendChar\^^f6: {^^f6}{\"o}
+\ExtendChar\^^fc: {^^fc}{\"u}
+
+% IBM PC (code page 850)
+\ExtendChar\^^81: {^^81}{\"u}
+\ExtendChar\^^84: {^^84}{\"a}
+\ExtendChar\^^8e: {^^8e}{\"A}
+\ExtendChar\^^94: {^^94}{\"o}
+\ExtendChar\^^99: {^^99}{\"O}
+\ExtendChar\^^9a: {^^9a}{\"U}
+\ExtendChar\^^e1: {^^e1}{\ss{}} % actually \beta, used as \ss in Germany
+
+% Atari ST (like IBM PC, but with a real `sharp~s')
+\ExtendChar\^^9e: {^^9e}{\ss{}}
+%%% \endprog
+
+
+
+%%% \chap Paragraph Breaking.
+
+%%% As outlined in the introduction, we allow longer interword spaces. A
+%%% line now may have a badness up to 2500, over 1500 a warning is to be
+%%% given. Furthermore the penalties for hyphenation are lowered because a
+%%% narrow typesetting is preferred against few hyphenations.
+
+%%% These values are still experimental and should be tuned.
+
+%%% As |german.sty| uses \babel{} compatible structure, the german
+%%% language hook is a good place to store such definitions. But to
+%%% use \babel{}'s convenient macros, too, we have to assure that it's
+%%% kernel code is loaded first.
+
+%%% \beginprog
+\ifx \babel@core@loaded\undefined
+ \input babel.def
+\fi
+\addto\extrasgerman{%
+ \babel@savevariable\tolerance
+ \babel@savevariable\hbadness
+ \babel@savevariable\doublehyphendemerits
+ \babel@savevariable\finalhyphendemerits
+ \babel@savevariable\adjdemerits
+ \tolerance 2500 \hbadness 1500
+ \doublehyphendemerits 50000
+ \finalhyphendemerits 25000
+ \adjdemerits 50000
+ }
+%%% \endprog
+
+
+%%% \sect In some languages ligatures should not appear between compound
+%%% words. We use {\tt \string\|\/} to mark those places. This is only
+%%% done within text mode, in math mode {\tt \string\|\/} is still
+%%% `$\|$'. But it is sure that one can always hyphenate between compound
+%%% words, so we insert |\-|. To allow the hyphenation in other parts of
+%%% the word though, we use |\allowhyphens| again.
+
+%%% \beginprog
+\def\|{% % break open a ligature (if not in math mode)
+ \relax
+ \ifmmode \Vert
+ \else \allowhyphens\-\allowhyphens
+ \fi
+ }
+%%% \endprog
+
+
+%%% \sect Don't use the dreaded `double quote special meaning' stuff of
+%%% |german.sty|. And use original umlauts. Already in M\"unster I voted
+%%% against it\dots
+
+%%% \beginprog
+\addto\extrasgerman{%
+ \mdqoff
+ \umlautlow
+ }
+%%% \endprog
+
+
+%%% \sect Define |\SwitchtoLanguage| for upward compatibility. It does
+%%% not really do the same, the old definition was more similar to
+%%% |\selectlanguage|. But other languages have to be declared
+%%% explicitely, that's not done by this macro file. So we just want to
+%%% make old documents processable.
+
+%%% \beginprog
+\def\SwitchtoLanguage#1{\language \csname l@#1\endcsname}
+%%% \endprog
+
+
+%%% \sect We are finished; switch to german language (to enable the new
+%%% extras defined above), restore the catcodes and prevent from following
+%%% garbage.
+
+%%% \beginprog
+\selectlanguage{german}
+
+\catcode`\@=\CatAtCode
+\catcode`\_=\CatUsCode
+
+\endinput
+%%% \endprog
+
+
+%%% %% \sect {\it Acknowledgements:}\quad I would like to thank XXX
+
+
+%%% \bye
+
+%%%
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% %
+%%% % $Log: deutsch.doc,v $
+%%% % Revision 1.4 1995/07/30 13:23:56 schrod
+%%% % Discard babel definition of \DeclareTextCommand before including
+%%% % german.sty, they are incompatible.
+%%% %
+%%% % Revision 1.3 1995/07/29 17:58:24 schrod
+%%% % Use german.sty, not germanb.sty. (babel 3.5 is not functional for
+%%% % plain TeX any more.) But we still want to use babel's macros, we have
+%%% % to load it's kernel for that.
+%%% %
+%%% % Revision 1.2 1995/03/13 23:18:10 schrod
+%%% % Started to manage this package with CVS. Made minor code cleanup.
+%%% %
+%%% % Revision 1.1 1994/10/16 16:57:30 schrod
+%%% % Merged macros from local.tex, codes.tex, and language.tex. This
+%%% % new file is mainly there to provide upward compatibility for our old
+%%% % documents.
+%%% %
+%%% %
+%%% %
+%%% % pre-CVS Version History:
+%%% %
+%%% % DATE WHO REMARKS
+%%% % 91-01-18 js set all extended characters to code invalid
+%%% % 90-12-23 js added the definition of \ExtendChar for usage in codes.tex.
+%%% % 90-10-06 js renamed from dlocal to local, it's now international,
+%%% % adapted to TeX 3:
+%%% % included codes.tex and langdef.tex if they exist,
+%%% % assumed that language.tex is already loaded,
+%%% % defined German parameters as a language hook,
+%%% % removed first \allowhyphens in \uml@ut,
+%%% % documented it with MAKEPROG.
+%%% % 89-10-27 js was reworked for ILaTeX
+%%% % 89-05-31 js defined \| as a separator for ligatures in text mode
+%%% % 87-10-01 js introduced \protect,
+%%% % set parameters for German page makeup
+%%% % 87-??-?? kg first release
+%%% %
+%%% % kg: Klaus Guntermann <gunterma@<schrod@iti.informatik.th-darmstadt.de>
+%%% % js: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
+
+
+%%%
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Local Variables:
+%%% mode: plain-TeX
+%%% TeX-master: t
+%%% TeX-brace-indent-level: 4
+%%% End:
diff --git a/Master/texmf-dist/doc/plain/jsmisc/idverb.doc b/Master/texmf-dist/doc/plain/jsmisc/idverb.doc
new file mode 100644
index 00000000000..79fb0b183dd
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/jsmisc/idverb.doc
@@ -0,0 +1,194 @@
+% $Id: idverb.doc,v 1.1 1995/03/13 23:18:11 schrod Exp $
+%----------------------------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+% Copyright conditions see below.
+
+%
+% idverb.doc --- typeset identifiers verbatim
+%
+% [plain TeX in MAKEPROG]
+% (history at end)
+
+
+\input progdoc
+
+\input names.sty
+\def\v{{\tt \vbar\/}}
+
+
+
+\title{Identifiers Verbatim \`a la {\ttitlefont WEB}}
+
+
+
+\chap Introduction.
+
+This macro files allows to write identifiers in a \WEB{} like style,
+i.e.\ as {\tt \origvert identifier\origvert\/}. The identifiers are
+typeset verbatim in the monospace type face. The macros
+|\makevertother| and |\makevertactive| are available to activate and
+deactivate the special behaviour of the vertical bar.
+
+
+\sect This macro file uses the namespace |idv|.
+
+\beginprog
+\ifx \IdvLoaded\undefined
+ \def\IdvLoaded{$Revision: 1.1 $}
+\else \endinput \fi % <-- one line!
+\endprog
+
+
+\sect These macros are supported. Send bug reports, comments and
+repairs.
+
+The reference version may be retrieved via anonymous ftp from
+|ftp.th-darmstadt.de| [130.83.47.112], directory |pub/tex/plain|. It's
+placed there as a gzipped tar file. (The information on the
+IP~number is dated March 13, 1995. It might have changed, also this is very
+unlikely. Use your friendly nameserver.)
+
+
+\sect This is freely distributable 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.
+
+This software is distributed in the hope that it will be useful, but
+{\bf without any warranty\/}; without even the implied warranty of
+{\bf merchantability\/} or {\bf fitness for a particular purpose}. See
+the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License in
+the file |License| along with this package; if not, write to the Free
+Software Foundation, Inc., 675~Mass Ave, Cambridge, MA~02139,~USA.
+
+
+\sect But before we start we declare some shorthands for category
+codes. By declaring the at sign~(`|@|') as well as the
+underscore~`(|_|)' as letters we can use them in our macros. (I agree
+with D.~Knuth that |\identifier_several_words_long| is more readable
+than |\IdentifierSeveralWordsLong| and in every case better than
+|\p@@@s|.) With the at sign we can use the ``private'' Plain macros
+and with the underscore we can make our own macros more readable. But
+as we have to restore these category codes at the end of this macro
+file we store their former values in control sequences. This method is
+better than to use a group because not all macros have to be defined
+global this way.
+
+Only the first macro file read in defines the |Cat| cseqs.
+
+\beginprog
+\ifx \CatEscape\undefined
+ \chardef\CatEscape=0
+ \chardef\CatOpen=1
+ \chardef\CatClose=2
+ \chardef\CatIgnore=9
+ \chardef\CatLetter=11
+ \chardef\CatOther=12
+ \chardef\CatActive=13 % \active of plain.tex
+ \chardef\CatInvalid=15
+
+ \chardef\CatAtCode=\catcode`\@
+ \chardef\CatUsCode=\catcode`\_
+\fi
+
+\catcode`\@=\CatLetter % top level macro file
+\catcode`\_=\CatLetter
+\endprog
+
+
+\sect Let's identify this macro file against the user and in the Log file.
+
+\beginprog
+\begingroup
+ \catcode`\$=\CatIgnore
+ \catcode`\:=\CatIgnore
+ \message{Verbatim identifiers, $Revision: 1.1 $}
+\endgroup
+\endprog
+
+
+\sect The usual verbatim macros use |\dospecials| to change the
+catcode of all special characters. We have to add `\v' to this list.
+The old meaning is stored in |\idv_OrigDospecials|.
+
+\beginprog
+\let\idv_OrigDospecials=\dospecials
+\begingroup
+ \def\do#1{\noexpand\do\noexpand#1}
+ \xdef\dospecials{\idv_OrigDospecials\do\|}
+\endgroup
+\let\idv_dospecials=\dospecials
+
+\def\makevertactive{\catcode`\|\CatActive \let\dospecials\idv_dospecials}
+\def\makevertother{\catcode`\|\CatOther \let\dospecials\idv_OrigDospecials}
+
+\makevertactive
+\endprog
+
+
+\sect Now we can define `\v'. This definition is a little bit tricky,
+as it redefines itself to |\egroup| to close the hbox. But if the hbox
+is ended, `\v' is restored to its original meaning. |\origvert| is
+given the original meaning of `\v'. |\vbar| is the character from the
+current font that has the ASCII code of a vertical bar, sometimes this
+{\it is\/} a vertical bar.
+
+\beginprog
+\let\origvert=|
+\chardef\vbar=`\|
+
+\def\idv_setup_verbatim{%
+ \def\do##1{\catcode`##1\CatOther}\idv_OrigDospecials
+ \parskip\z@skip \parindent\z@
+ \obeylines \obeyspaces \frenchspacing
+ \tt
+ }
+
+\def|{%
+ \leavevmode
+ \hbox\bgroup
+ \let\par\space \idv_setup_verbatim
+ \let|\egroup
+ }
+\endprog
+
+
+\sect We are finished;
+restore the catcodes and prevent from following garbage.
+
+\beginprog
+\catcode`\@=\CatAtCode
+\catcode`\_=\CatUsCode
+
+\endinput
+\endprog
+
+
+%% \sect {\it Acknowledgements:}\quad I would like to thank XXX
+
+
+\bye
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% $Log: idverb.doc,v $
+% Revision 1.1 1995/03/13 23:18:11 schrod
+% Started to manage this package with CVS. Made minor code cleanup.
+%
+
+%
+% Pre-CVS Log:
+%
+% 27 Jul 89 js Initial revision.
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Local Variables:
+mode: plain-TeX
+TeX-master: t
+TeX-brace-indent-level: 4
+End: