Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!howland.erols.net!worldnet.att.net!news.mathworks.com!uunet!in2.uu.net!158.250.39.26!Gamma.RU!srcc!news.uni-stuttgart.de!news.urz.uni-heidelberg.de!german From: dantefaq@dante.de (DANTE e.V., FAQ-Maintainer) Newsgroups: de.comp.text.tex,de.answers,news.answers Subject: TeX, LaTeX, DANTE e.V.: FAQ - Fragen und Antworten (Part 8 of 11) Supersedes: Followup-To: de.comp.text.tex Date: 3 Feb 1997 11:28:05 GMT Organization: DANTE, Deutschsprachige Anwendervereinigung TeX e.V. Lines: 489 Approved: news-answers-request@MIT.EDU Distribution: world Expires: 20 Mar 97 12:27:57 Message-ID: References: Reply-To: dantefaq@dante.de (DANTE e.V., FAQ-Maintainer) NNTP-Posting-Host: sun.dante.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Summary: This posting contains a list of Frequently Asked Questions (and their answers) about the typesetting system TeX and about DANTE e.V., the german-speaking TeX users group. It is in German and uses the ISO Latin-1 character set. Keywords: FAQ TYPESETTING TeX USERGROUP DANTE Originator: german@sun.dante.de Xref: senator-bedfellow.mit.edu de.comp.text.tex:291 de.answers:1037 news.answers:93727 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{} 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 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 ---