Subject: TeX, LaTeX, DANTE e.V.: FAQ - Fragen und Antworten (Part 8 of 11)
From: [email-masked] (DANTE e.V., FAQ-Maintainer)
Date: 3 Feb 1997 11:28:05 GMT
Newsgroups: de.comp.text.tex,de.answers,news.answers

Posted-By: auto-faq 3.3 beta (Perl 5.003)
Archive-name: de-tex-faq/part8
Posting-Frequency: monthly
Copyright-Notice: siehe Abschnitt 1.1/see Section 1.1
URL: http://www.dante.de/dante/dante-faq.html

		Fragen und Antworten (FAQ) über

		   das Textsatzsystem TeX und
		       ~~~~~~~~~~~~~~~~~~
	DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

		 (Version 24 vom Februar 1997)

	    === Teil 8: TeX, LaTeX, Makros, etc. (IV) ==

8.1) Mathematischer Formelsatz
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

8.1.1) Für Zahlenbereiche möchte ich die Symbole für N, Z, Q, R, C
       mit Doppelstrich verwenden.  Wie bekomme ich diese Zeichen?

Ursprünglich wurden diese Symbole mit fetten Buchstaben geschrieben.
Da dies mit Kreide auf einer Tafel (`blackboard') sehr umständlich
wäre, hat man die Schreibweise mit den Doppelstrichen erfunden.
  Die einfachste Möglichkeit ist daher, die Symbole einfach fett zu
drucken, also \mathbf{N} (bzw. {\bf N} in plain-TeX/LaTeX 2.09).
  So auf die Schnelle ist auch die `poor man's solution' mit
\(\mathsf{I\!\!\:N}\) ausreichend.  Jedoch wird diese Lösung
spätestens für die ganzen, rationalen und komplexen Zahlen (Z, Q, C)
schwieriger.
  Ansonsten könnte man auch auf \mathcal (\cal in LaTeX 2.09) und bei
Verwendung von AMS-(La)TeX auf \mathbb bzw. \Bbb ausweichen.

  Es gibt aber auch folgende Schriften, die Buchstaben mehr oder
weniger so wie `an der Tafel geschrieben' enthalten:

 - bbold (von Alain Jeffrey)
   ohne Serifen, zwei dünne Striche, vollständiger Zeichensatz
 - doublestroke (von Olaf Kummer)
   mit Serifen wie CMR, ein dicker und ein dünner Strich,
   nur Großbuchstaben
 - bbm (von Gilles F. Robert)
   sollte allen Wünschen gerecht werden, alle Varianten, wie fett,
   mit oder ohne Serifen, etc.

Die Auswahl einer dieser Schriften ist reine Geschmackssache.

bbold:         CTAN: fonts/bbold/
mathbbol:      CTAN: macros/latex/contrib/supported/jknappen/
          definiert AMS-(La)TeXs \mathbb-Anweisung so um, daß statt
          der Original-AMS- die `bbold'-Schriften verwendet werden
doublestroke:  CTAN: fonts/doublestroke/
bbm:           CTAN: fonts/cm/bbm/
                     (bzw. fonts/cm/sauter23/holin/bbm/)
                     macros/latex/contrib/supported/bbm/

8.1.2) Für Lagrange-Dichten hätte ich gern ein geschwungenes L,
       \mathcal{L} ist nicht das, was ich wünsche?
 
Schreibschriftbuchstaben für den Mathematiksatz (nur Großbuchstaben)
sind in den rsfs-Schriften (Ralph Smith Formal Script) enthalten. Sie
können mit dem Paket `mathrsfs' und dem Befehl \mathscr{L} eingebunden
werden.  Das Paket `calrsfs' ergibt Schreibschriftbuchstaben anstelle
der kalligraphischen Buchstaben mit dem Befehl \mathcal{L}.
 
rsfs:      CTAN: fonts/rsfs/
           CTAN: fonts/cm/sauter23/holin/rsfs/b-rsfs.mf
mathrsfs:  CTAN: macros/latex/contrib/supported/jknappen/
calrsfs:   CTAN: macros/latex/contrib/other/calrsfs/

8.1.3) Ich suche das Zeichen ... für den Formelsatz, und kann es nicht
       in den Standardfonts finden?
 
Zeichen, die in den CM-Fonts fehlen, sind mit wirklich sehr großer
Wahrscheinlichkeit in den AMS-Fonts `msam' oder `msbm' vorhanden.  Die
Einbindung in LaTeX erfolgt mit dem Paket `amsfonts', die Einbindung
in plain-TeX mit `\input amssym.tex'.
 
amsfonts: CTAN: fonts/ams/amsfonts/...
amssym:   CTAN: fonts/ams/amsfonts/plaintex/amssym.tex

8.1.4) Warum fügt TeX in einer mathematischen Formel hinter einem
       Dezimalkomma einen kleinen Zwischenraum ein?

Die meisten TeX-Makropakete und -Formate gehen davon aus, daß man
einen Dezimalpunkt statt eines -kommas verwendet.  Für den
Dezimalpunkt, der in einer mathematischen Formel die Bedeutung eines
`Ordinary'-Symbols hat, wird daher zwischen Ziffern kein zusätzlicher
Zwischenraum eingefügt.  Das Komma hat in Formeln die Bedeutung eines
`Punctuation'-Symbols, man kann es daher als Trennzeichen in einer
Aufzählung verwenden, da TeX mit einem kleinen Zwischenraum dafür
sorgt, daß Formeln wie `f(x, y)' gut aussehen.

Das Problem des falschen Abstandes für ein Dezimalkomma kann man auf
verschiedene Arten beheben. Für einzelne Fälle mag es reichen, das
Komma einfach mit {...} zu klammern, da geklammerte Formelteile
diesselben Abstände wie ein `Ordinary'-Symbol bekommen:

	$\pi = 3{,}1415\ldots$

Eine andere Methode erklärt das Komma zu einem `Ordinary'-Symbol statt
eines Trennzeichens:

	%%%% alte Definition:
	%% \mathcode`\,="613B
	%%%% neue Definition:
        \mathcode`\,="013B

und wenn man statt der \mathcode-Zuweisung die Anweisung
\DeclareMathSymbol in LaTeX2e verwendet:

	%%%% alte Definition:
	%% \DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
	%%%% neue Definition:
	\DeclareMathSymbol{,}{\mathord}{letters}{"3B}

Der Preis hierfür ist natürlich, daß in `f(x,y)' der zusätzliche
Zwischenraum fehlt. Aber auch das läßt sich in den Griff bekommen,
etwa mit Definitionen wie

	% make ',' an ordinary Symbol in decimal numbers
	\mathchardef\CommaOrdinary="013B
	\mathchardef\CommaPunct   ="613B
	\mathcode`,="8000   % , im Math-Mode aktiv machen
	{\catcode`\,=\active
	 \gdef ,{\obeyspaces\futurelet\next\CommaCheck}}
	\def\CommaCheck{\if\space\next\CommaPunct\else\CommaOrdinary\fi}

Hiermit ist es möglich, zwischen `3,1415' und `f(x, y)' zu
unterscheiden; steht hinter dem Komma ein Leerzeichen, ist das
Trennzeichen gemeint, sonst das Dezimalkomma.

8.1.5) AMS-LaTeX: Was ist der Unterschied zwischen dem `amstex'- und
       dem `amsmath'-Paket?

Dies wird in der Datei `diff12.tex' des AMS-LaTeX-Packages erläutert:
In AMS-LaTeX Version 1.0 und 1.1, beide nur für LaTeX 2.09, war
`amstex.sty' das Hauptpaket, das mehr oder weniger direkt aus Michael
Spivaks AMS-TeX-Makros entstanden ist.  AMS-LaTeX Version 1.2 für
LaTeX2e enthält nun neben `amstex.sty' ein neues Paket namens
`amsmath.sty', das nun unabhängig von `amstex.sty' weiterentwickelt
werden kann.  `amstex.sty' kann dadurch eingefroren werden, sodaß alte
Dokumente weiterhin unverändert formatiert werden können.  Für neue
Dokumente sollte man `amsmath.sty' verwenden, da nur noch dieses Paket
unterstützt und weiterentwickelt wird.  Die Unterschiede zwischen
`amsmath.sty' und `amstex.sty' sind der Dokumentation in der Datei
`diff12.tex' zu entnehmen.

amslatex:    CTAN: macros/latex/packages/amslatex/
diff12.tex:  CTAN: macros/latex/packages/amslatex/math/diff12.tex

8.1.6) AMS-Fonts: Ein altes Dokument benutzt die Fonts `msxm' und
       `msym'.  Wo kann ich diese finden?

Die Fonts `msxm' und `msym' sind veraltet und wurden vor einigen
Jahren durch die Fonts namens `msam' und `msbm' ersetzt.  Beide Fonts
sind im AMS-Font-Paket enthalten.
  Selbst wenn man die Quellprogramme für die beiden veralteten Fonts
`msxm' und `msym' hätte, könnte man aus diesen keine gf- oder
pk-Dateien erzeugen, da die Fonts `msxm' und `msym' mit dem Vorgänger
des aktuellen METAFONT-Programmes namens `MF79' in der Sprache `SAIL'
geschrieben waren.  Aus diesem Grund wurden die beiden Fonts auch nur
als pxl- oder pk-Dateien verteilt.

msxm/msym:  CTAN: fonts/vf-files/msx2msa/
            (enthält virtuelle Fonts für `msxm' und `msym', die die
             realen Fonts `msam' und `msbm' verwenden)

8.1.7) Das Integral- und Summationszeichen ist für in 11pt und
       besonders für in 12pt gesetzte Dokumente zu klein.

Den Math-Extension-Font `cmex10', aus dem die `großen' Symbole
stammen, sollte man nicht einfach vergrößern, da einige Parameter
dieses besonderen Fonts den mathematischen Formelsatz in TeX
bestimmen.  Da es bisher für 11pt und 12pt keine speziellen
Math-Extension-Fonts gibt, verwendet LaTeX2e für alle Schriftgrößen
den 10pt-Font `cmex10'.
  Mit dem Paket `exscale' verwendet LaTeX2e skalierte `cmex10'-Fonts
und paßt die Anweisungen \big, \bigg, etc. entsprechend an.

exscale.sty:  CTAN: macros/latex/{base,unpacked}/ (LaTeX2e-Verteilung)

8.2) Verschiedene sonstige Zeichen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

8.2.1) Wie bekomme ich ein Gradzeichen?

Das Gradzeichen erhält man am einfachsten mit LaTeX2e mittels

	\newcommand{\grad}{\ensuremath{^\circ}}

Da die Anweisung \ensuremath in LaTeX 2.09 nicht existiert, muß man
hier den konventionellen Weg wählen (der auch in LaTeX2e
funktioniert):

	\newcommand{\grad}{\mbox{\(\mathsurround=0pt{}^\circ\)}}

Hat man schon die Text-Companion-Schrift der EC-Schriftfamilie
installiert, kann man auch mit dem Paket `textcomp' auf ein
Gradzeichen mit \textdegree und auf ein fertig zusammengesetztes
Grad-Celsius-Zeichen mit \textcentigrade zugreifen.

ec-fonts,
tc-fonts:  CTAN: fonts/jknappen/ec/
textcomp:  CTAN: fonts/psfonts/ts1/  (momentan als Testversion!)

8.2.2) Wo finde ich ein Promillezeichen?  Ich möchte endlich
       1,1\,Promille statt 0,11\,\% eingeben können.

`Die TeXnische Komödie' vom Dezember 1993 enthielt folgende Lösung,
die auf der TeXbook-Lösung zu Übung 11.6, S. 67+311, basiert (an
LaTeX2e angepaßt [br]):

\newcommand{\promille}{%
  \relax\ifmmode\promillezeichen
        \else\leavevmode\(\mathsurround=0pt\promillezeichen\)\fi}
\newcommand{\promillezeichen}{%
  \kern-.05em%
  \raise.5ex\hbox{\the\scriptfont0 0}%
  \kern-.15em/\kern-.15em%
  \lower.25ex\hbox{\the\scriptfont0 00}}

Die zusätzliche \(..\)-Umgebung im Makro \promille ist für LaTeX2e
zwingend notwendig, da sonst in einigen Fällen Zeichen fehlen könnten.
(Man könnte auch die Anweisung \ensuremath aus LaTeX2e verwenden.)
  Leider paßt das erzeugte Promillezeichen von der Form her nicht zum
Prozentzeichen.

Ein viel bessere Lösung in Form von fertigen Lettern bieten die
`wasy'- und die Text- bzw. Text-Companion-Schriften der EC-Schriften:

Promillezeichen aus den `wasy'-Schriften:
  \usepackage{wasysym}
  \permil

Promillezeichen aus der Text-Companion-(tc)-Schrift der EC-Schriften:
  \usepackage{textcomp}
  \textperthousand

Diese Lösungen haben den Vorteil, daß sie auch von der Form zum
üblichen Prozentzeichen passen.

wasy:      CTAN: fonts/wasy2/
wasysym:   CTAN: macros/latex/contrib/supported/wasysym/
ec-fonts,
tc-fonts:  CTAN: fonts/jknappen/ec/
textcomp:  CTAN: fonts/psfonts/ts1/  (momentan als Testversion!)

8.2.3) Ich benötige einen liegenden bzw. gedrehten `dagger' oder
       ein ähnliches liegendes Zeichen.  Wie?

Entweder sucht man nach einem fertigen Font mit einem solchen Symbol
oder ändert die Quelle eines Fonts, falls dieser beispielweise als
mf-Datei vorliegt, und fügt in die Quelle eine Operation zum Drehen
eines Zeichens ein.
  Falls der dvi-Gerätetreiber in der Lage ist, Teile der Ausgabe zu
drehen, kann man unter LaTeX2e die Anweisung \rotatebox aus dem
`graphicx'-Package verwenden:

	\rotatebox[origin=c]{90}{\(\dagger\)}

graphicx:  CTAN: macros/latex/packages/graphics/

8.2.4) Wie erzeuge ich ein Zeichen für `trademark' (TM),
       `registered trademark' (R) oder `copyright' (C)?

Diese Zeichen durch Box-Konstruktionen zusammenzubauen, ergibt in den
meisten Fällen sehr unbefriedigende Ergebnisse.  Unter LaTeX2e hat man
mit der Anweisung \textcircled{<Zeichen>} eine sehr einfache
Möglichkeit dafür, jedoch erhält man nur für einzelne Zeichen, wie für
das `c' im Copyright-Zeichen \copyright, ein einigermaßen gutes
Ergebnis.  Eine erste Näherung für das Trademark-Zeichen (TM) ist
\DeclareRobustCommand{\trademark}{\ensuremath{^{\mathrm{TM}}}}.
  Sehr viel einfacher und besser sind die fertigen Zeichen, wie
\texttrademark, aus den Text-Companion-Fonts `tc...' aus dem
EC-Schrift-Paket.  Unter LaTeX2e gibt es zur einfachen Einbindung das
`textcomp'-Package.
  Beginnend mit LaTeX2e von Dezember 1995 gibt es standardmäßig neben
der Definition für das Copyright-Zeichen auch Definitionen für die
Zeichen `trademark' und `registered trademark' (\texttrademark,
\textregistered).

tc-Fonts:  CTAN: fonts/jknappen/ec/
textcomp:  CTAN: fonts/psfonts/ts1/  (momentan nur als Betatest-Version!)

8.3) Chemischer Struktur- und Formelsatz
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

8.3.1) Wie kann ich chemische Strukturformeln mit LaTeX setzen?

Folgende drei Pakete können unter LaTeX 2.09 verwendet werden.  Ob sie
auch unter LaTeX2e oder plain-TeX verwendbar sind, muß selbst getestet
werden.  [Die folgende Liste ist recht unvollständig! Freiwillige?]

 - XymTeX: A Macro Package for Typsetting Chemical Structural
           Formulas, von Shinsaku Fujita

   Dieses System ist das umfangreichste.  Es verwendet vorgefertigte
   Molekülklassen, in denen die Atompositionen vom Anwender belegt
   werden können.  Durch die `Kondensation' solcher Klassen lassen
   sich so ziemlich alle denkbaren Moleküle zaubern.  Ohne Handbuch
   (127 Seiten) und Zeit aber eher unbrauchbar, weil sehr kompliziert.
   Eine Beschreibung findet sich auch in der Tugboat 16/1, S. 81--88.

 - Chemstruct: Chemische Strukturformeln mit TeX, von Michael Ramek

   Hier gibt man im wesentlichen von einem Bezugsatom ausgehend die
   Art und die Himmelrichtung der Bindung an und gelangt so recht
   schnell zu brauchbaren Ergebnissen.  So hangelt man sich von Atom
   zu Atom...  (Handbuch mit 18 S.)

 - ChemTeX: Typsetting Chemical Equations using LaTeX

   Scheint auch mit Molekülklassen zu arbeiten, wenn auch längst nicht
   so komplex wie XymTeX, damit anwendungsfreundlicher, aber auch nur
   für einen begrenzten Satz an Strukturen geeignet...
   (Handbuch mit 42 S.)

 - PPCHTeX: Typesetting Chemical Formulas in TeX,
            von J. Hagen und A.F. Otten

   Auf PiCTeX basierendes Paket, mächtig.  Beschrieben in Proceedings
   of the 9th European TeX Conference EuroTeX'95, Arnhem, S. 197--222
   und TUGboat 17(1), März 1996, S. 54-66.

 - Chemsym -- Chemical Symbols, von Mats Dahlgren

   Vereinfacht die Eingabe und den Satz von chemischen
   Reaktionsformeln, indem eine große Menge von chemischen Symbolen
   vordefiniert werden.  Für LaTeX2e, mit Dokumentation.

Daneben gibt es noch Programme wie ChemDraw, ChemWindow o.ä., bei
denen man die erstellte Strukturformel als PS-Datei ausgeben und dann
in (La)TeX einbinden kann.

xymtex:      CTAN: macros/latex209/contrib/xymtex/
chemstruct:  CTAN: macros/latex209/contrib/chemstruct/
chemtex:     CTAN: macros/latex209/contrib/chemtex/
PPCHTeX:     CTAN: macros/context/ppchtex/
chemsym:     CTAN: macros/latex/contrib/other/chemsym/

8.3.2) Bei der Verwendung des Paketes `chemtex' mit LaTeX2e erhalte
       ich bei der Zuweisung \textfont1=\tenrm einen Fehler. Abhilfen?

\tenrm ist ein alter, nur intern in LaTeX 2.09 zu verwendender Name
eines Font (Siehe auch Teil ``LaTeX2e -- Probleme beim Umstieg'').
Mit dem Package `rawfonts' kann man diese Namen (nach-)definieren:

\usepackage[only,tenrm]{rawfonts}

rawfonts:  CTAN: macros/latex/packages/tools/

8.3.3) Das Makro \chemical, das u.a. auch in Helmut Kopka, ``LaTeX --
       eine Einführung'' beschrieben wird, funktioniert ebenso nicht
       mehr.  Was muß man ändern?

Der im Makro (das aus dem TeXbook stammt!) verwendete Name \tensy des
Math-Symbol-Font ist nur in plain-TeX und LaTeX 2.09 definiert.
LaTeX2e lädt darüberhinaus die für den mathematischen Formelsatz
notwendigen Fonts erst zu Beginn der ersten zu setzenden Formel, so
daß man auch durch Nachdefinition mit Hilfe des Packages `rawfonts' in
bestimmten Situationen einen Fehler bekommen kann.
  Hier ist eine für LaTeX2e verwendbare Definition von \chemical (die
man in eine .sty-Datei schreiben oder mit \makeatletter...\makeatother
klammern muss):

\DeclareRobustCommand{\chemical}[1]{%
  {\(\m@th
     \edef\resetfontdimens{\noexpand\)%
       \fontdimen16\textfont2=\the\fontdimen16\textfont2
       \fontdimen17\textfont2=\the\fontdimen17\textfont2\relax}%
   \fontdimen16\textfont2=2.7pt \fontdimen17\textfont2=2.7pt
   \mathrm{#1}%
   \resetfontdimens}}

8.4) Verschiedenes
~~~~~~~~~~~~~~~~~~

8.4.1) Wie kann ich in einer tabular-Umgebung eine Spalte speziell
       setzen, ohne dies in jedem Eintrag zu wiederholen?

Das Paket `array' erweitert die array- und tabular-Umgebung um weitere
Deklarationen, wie > und <, in der Tabellenpräambel.  So wird mit

    \begin{tabular}{c>{\scshape}cc}

die zweite der drei Spalten in Kapitälchen gesetzt.

array:  CTAN: macros/latex/packages/tools/

8.4.2) Wieso kann ich in einer tabular-Umgebung die letzte Spalte
       nicht mit \raggedright rechtsbündig setzen?

\raggedright definiert die Anweisung \\ um, die in der tabular- und
array-Umgebung zur Markierung des Zeilenendes benutzt wird.  In
LaTeX2e und den Paketen `array' und `longtable' existiert daher seit
Dezember 1994 die neue Anweisung \tabularnewline, die man für diesen
Zweck anstelle von \\ verwenden kann.
  Für andere Pakete und ältere Versionen kann man auch folgenden Trick
aus dem Buch `Der LaTeX-Begleiter' anwenden:

    \newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}

Statt einem einfachen \raggedright verwendet man in einer Tabelle dann
\PreserveBackSlash{\raggedright}.

8.4.3) Wie kann ich die Standard-Brotschrift durch eine andere,
       beispielsweise CM-Sans-Serif, ersetzen?

Mit LaTeX2e geht dies einfach durch

    \renewcommand{\familydefault}{cmss}

oder, falls man stattdessen die Sans-Serif-Variante der aktuellen
Schrift verwenden will, mit

    \renewcommand{\familydefault}{\sfdefault}

in der Präambel des Dokuments.
  Genauso einfach kann man die Schriftfamilie fuer \rmdefault,
\sfdefault und \ttdefault ersetzen.  Falls die PostScript-Anpassungen
installiert sind, ersetzt man beispielsweise durch

    \renewcommand{\rmdefault}{ptm}
    \renewcommand{\sfdefault}{phv}
    \renewcommand{\ttdefault}{pcr}

CM-Roman durch Times-Roman, CM-Sans-Serif durch Helvetica und
CM-Typewriter durch Courier.

8.4.4) Ich erhalte die Fehlermeldung ``! You can't use `\spacefactor'
       in vertical mode.'', mache ich etwas falsch?

In den meisten Fällen liegt die Schuld an der (Re-)Definition eines
internen Makros, also eines Makros mit einem At-Zeichen `@' am Anfang
des Namens.  Beispielsweise tritt der Fehler auf, nach der Definition

\renewcommand{section}{%
  \@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus-.2ex}%
                 {2.3ex plus.2ex}{\normalfont\Large\bfseries}}

in der Dokumentpräambel.  Man beachte, dass sowohl `\@startsection'
neben `\z@' ein At-Zeichen im Namen haben und daher normalerweise als
Folge der Tokens `\@', `s', `t', ... `n' und nicht als ein Token
`\@startsection' gelesen wird.  
  Vermeiden kann man diesen Fehler, indem man die Definition einfach
in einer .sty-Datei vornimmt oder in der Präambel mit \makeatletter...
\makeatother klammert.

8.4.5) Wie kann ich Umlaute in Texinfo-Dokumenten verwenden? Gibt es
       eine deutsche/internationalisierte Version von Texinfo?

Einen Patch für eine Internationalisierung der Texinfo Version 2.151
wurde von Ralph Schleicher <[email-masked]> erstellt. Der Code
ist inzwischen Eigentum der FSF. Ralph Schleicher ist weiterhin der
Ansprechpartner. Weitere Informationen findet man unter

    http://www.UL.BaWue.DE/~rs/ftp.html#texinfo-i18n

ftp://ftp.UL.BaWue.DE/purple/gnu/texinfo-i18n.tar.gz   (Patch, 11 kB)
ftp://ftp.gwdg.de/pub/gnu2/i18n/pre-release/texinfo-i18n-3.7.tar.gz
	(Vollversion von Texinfo 3.7 mit obigem Patch)

--- DE-TeX-FAQ Ende Teil 8 ---