diff options
Diffstat (limited to 'Master/texmf-dist/doc/plain/jsmisc/deutsch.doc')
-rw-r--r-- | Master/texmf-dist/doc/plain/jsmisc/deutsch.doc | 329 |
1 files changed, 0 insertions, 329 deletions
diff --git a/Master/texmf-dist/doc/plain/jsmisc/deutsch.doc b/Master/texmf-dist/doc/plain/jsmisc/deutsch.doc deleted file mode 100644 index 8285a980c3c..00000000000 --- a/Master/texmf-dist/doc/plain/jsmisc/deutsch.doc +++ /dev/null @@ -1,329 +0,0 @@ -% $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: |