%META:TOPICINFO{author=“HerbertVoss” date=“1351795971” format=“1.1” version=“1.10”}% %META:TOPICPARENT{name=“FAQ”}%
In den meisten Fällen liegt die Schuld an der Verwendung oder Neudefinition eines Makros, welches im Namen oder in der Definition ein @
enthält, also einem At-Zeichen. Diese Zeichen ist aber nicht als Bestandteil eines Makronamens innerhalb des normalen Dokuments erlaubt.
Beispielsweise tritt der Fehler bei 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 auf. Vermeiden kann man diesen Fehler, indem man die Definition in eine .sty
-Datei verschiebt oder in der Präambel mit \makeatletter ... \makeatother
klammert, wie beispielsweise <verbatim>\makeatletter \@removefromreset{footnote}{chapter} \makeatother</verbatim>Dadurch wird das Zeichen @
zu einem normalen Buchtsbaen ( letter
) und kann ganz normal benutzt werden. Am Ende der Definition wird es wieder der sogenannten Kategorie “ other
” zugeordnet.
Mit der Deklaration \@addtoreset{equation}{section}
kann man erreichen, daß der Gleichungszähler immer dann auf Null zurückgesetzt wird, wenn der Abschnittszähler erhöht wird. Diese Deklaration wird implizit aufgerufen, wenn man in der Deklaration des Gleichungszählers das optionale Argument verwendet, also \newcounter{equation}[section]
. Soll das Gegenteil erreicht werden, so wird das Paket ,remreset` benötigt, das die Deklaration \@removefromreset
implementiert, mit der man durch \@removefromreset{equation}{section}
obiges nachträglich wieder rückgängig machen kann.
Einfacher geht es mit den Anweisungen \counterwithin
und \counterwithout
, die das Paket ,chngcntr` definiert. Beispiel:
\counterwithin{equation}{section}
Näheres ist der Beschreibung am Ende der Datei ,,chngcntr.sty`` zu entnehmen.
Ja. Zu diesem Zweck dient das Standard-LaTeX-Paket ,inputenc`. Es setzt die leider nicht standardisierten Zeichen mit einem Code>127
in eine einheitliche für TeX verständliche Kodierung um. Damit dies so wie gewünscht erfolgt, muss als Paketoption die zutreffende Kodierung des jeweiligen Betriebssystems angegeben werden: <pre> \usepackage[Kodierung]{inputenc} </pre> Die folgenden Angaben und weitere sind für ,Kodierung` möglich:
utf8 | → | Die meisten Unix-Systeme |
latin1 | → | Die meisten Unixsysteme, Windows und VMS |
latin9 | → | inklusive Euro-Zeichen |
ansinew | → | Windows (Unwesentliche Abweichungen zu ,latin1`) |
cp850 | → | OS/2, auch mit MSDOS, falls explizit die Codepage IBM-850 benutzt wird Apple-Macintosh |
applemac | → | Mac |
Dokumente, die unter Verwendung von ,inputenc` geschrieben sind, können trotz unterschiedlicher Zeichenkodierung in den meisten Fällen auch auf fremden Systemen übersetzt werden. Eine Mischung unterschiedlicher Kodierungen ist allerdings nicht möglich. Siehe dazu auch: Wie kann ich Umlaute in Texinfo-Dokumenten verwenden? Gibt es eine deutsche/internationalisierte Version von Texinfo?
Mit der aktuellen Version 4.0 können Umlaute mit dem Makro @"
(Bsp: @"A
), Akzente mit @'
(Bsp: @'e
) usw. eingegeben werden. Darüberhinaus existieren auch die Lettern wie @ss{}
, die Ligaturen @AE{}
, @ae{}
, @OE{}
und @oe{}
, die Lettern mit Ring @AA{}
und @aa{}
, die durchgestrichenen Lettern @O{}
und @o{}
und einige mehr.
Die Unterstützung auch der deutschen Sprache ist in neueren Versionen bereits enthalten. Für weitere Information siehe texinfo.org.
Um Umlaute verwenden zu können, muß man unter emTeX eine Formatdatei “8-bit clean” erzeugen, da sonst alle Zeichen mit Code>127
auf das Zeichen 127 (= ^^?) abgebildet werden, das in TeX normalerweise als “invalid” deklariert ist. “8-bit clean” werden Formatdateien mit <pre>makefmt 8bit … </pre> (bzw. tex -i -8 ...
) erstellt.
Die Klasse ,scrlettr2` des KOMA-Script-Paketes und die Klasse ,akletter`, beide zur Erstellung von Briefen gedacht, unterstützen die Erstellung von Serienbriefen. Neben diesen gibt es mit den LaTeX-Paketen ,mailing`, ,textmerg`, ,finder`, ,formletter` und ,tk_Brief` noch weitere Pakete für Serienbriefe.
Für eine kleinere Anzahl von Serienbriefen kann man den Text des Briefes auch in einem Makro mit \newcommand
definieren, wobei man die für jeden Empfänger unterschiedlichen Textteile diesem Makro als Parameter übergibt. Anschließend wird dieses Makro dann mehrmals mit jeweiliger Anrede, Name, Straße, Ort usw. aufgerufen.
KOMA-Script: | http://mirror.ctan.org/macros/latex/contrib/koma-script/ | akletter: | http://mirror.ctan.org/macros/latex/contrib/akletter/ | mailing: | http://mirror.ctan.org/macros/latex/contrib/mailing/ | textmerg: | http://mirror.ctan.org/macros/latex/contrib/textmerg/ | formletter: | http://mirror.ctan.org/macros/generic/formlett/ | tk_Brief: | http://www.deres-mueller.de/tk_Brief/ | Link ungültig |
Mit dem im Paket mdwlist<a name"63" id="63"></a> enthaltenen Anweisungen =\suspend{enumerate}
und \resume{enumerate}
kann der Zähler für die Aufzählungspunkte entsprechend gesetzt werden.
Das ,expdlist` bietet mit der Anweisung \listpart
die Möglichkeit, in Listen Einschübe einzuflechten. Benötigt man mehrere zusammengehörige Aufzählungslisten nur wegen dieser Einschübe, so ist dieses Paket die bessere Lösung.
Man verwende <pre><verbatim> \jobname.tex </verbatim></pre> für diesen Zweck. Eine portable Lösung, um auch das Verzeichnis, in dem sich die Datei befindet, zu erhalten, existiert nicht.
Die naheliegende Lösung <pre><verbatim> \renewcommand\figurename{Abb.} \renewcommand\tablename{Tab.} </verbatim></pre> funktioniert so mit dem Paket ,german`oder ,ngerman`<a name=“66” id=“66”></a>, wenn danach die Sprache nicht gewechselt wird.
Das Paket ,babel` schaltet jedoch erst zu Beginn des Dokuments auf die gewählte Sprache um. In diesem Fall werden dann \figurename und \tablename auf die in ,babel` definierten Standardwerte ,Abbildung` bzw. ,Tabelle` gesetzt. Mit folgender Definition kann das Problem gelöst werden:
<verbatim> \usepackage[german]{babel} \addto\captionsgerman{% \renewcommand\figurename{Abb.}% \renewcommand\tablename{Tab.}% } </verbatim>
Bei Verwendung der neuen deutschen Rechtschreibung ist entsprechend <pre><verbatim> \usepackage[ngerman]{babel}
\addto\captionsngerman{% \renewcommand\figurename{Abb.}% \renewcommand\tablename{Tab.}% } </verbatim></pre> einzufügen.
Um die Suche nach Dateien zu beschleunigen, verwenden einige TeX-Systeme eine Datenbank mit den Dateinamen im TeX-Baum. Werden neue Dateien hinzugefügt oder Dateien entfernt, so muss man bei diesen Systemen die Datenbank auf den aktuellen Stand bringen.
Unter teTeX oder fpTeX geht das durch Aufruf von mktexlsr
oder texconfig rehash=; in älteren Versionen muss man =texhash
verwenden.
Unter MikTeX sollte man fehlende Komponenten über das MikTeX-Options-Tool installieren, das automatisch die Datenbank der Dateinamen auf den aktuellen Stand bringt. Um diese Datenbank für den TeXMF- und den lokalen Verzeichnisbaum in allen sonstigen Fällen zu aktualisieren, klickt man auf <br /> Start → Programme → MikTeX → MikTeX Options <br /> und dort auf der Registerkarte Roots auf Refresh FNDB oder man ruft in der MS-DOS-Eingabeaufforderung initexmf -u
auf.
Bei Verwendung des LaTeX-Pakets ,trace`<a name"69" id="69"> </a> werden viele dieser oft unnützen Informationen unterdrückt. Mit den enthaltenen Anweisungen =\traceon
und \traceoff
lassen sich die zu untersuchenden Bereiche weiter einschränken. Besonders günstige Ergebnisse werden mit eLaTeX erzielt (siehe <a linkindex=“149” href=“Weiterentwicklungen#33”>hier</a>)) . Näheres ist in der Paketbeschreibung nachzulesen.
Bei der Eingabe eines Apostrophzeichens für \'e
, "'
oder ''
kommt es bei Benutzung einer entsprechenden Tastaturbelegung immer wieder vor, dass man statt des Apostrophs (Code 29 in ASCII) auf der Tastatur das ähnlich aussehende Akzentzeichen (Code 180 in ISO Latin-1) verwendet.
Die üblichen Einstellungen von LaTeX sind derart, dass innerhalb einer minipage
<a name"72" id="72"></a>oder einer =\parbox
Absätze ohne Einzug und mit vertikalem Abstand gesetzt werden. Will man dies ändern, so kann man für Einzelfälle die entsprechenden Längenregister anpassen: <pre><verbatim> \begin{minipage}{…} \setlength\parindent{1em} \setlength\parskip{0pt} … \end{minipage} </verbatim></pre> Soll diese Änderung für alle Umgebungen einheitlich erfolgen, so ist eine der beiden internen Anweisungen \@minipagerestore
oder \@parboxrestore
zu ändern. \@minipagerestore
wirkt nur auf minipage
-Umgebungen, während \@parboxrestore
neben minipage
auch auf \parbox
als auch auf andere Umgebungen und Anweisungen (wie Fließumgebungen, \caption
, \marginpar
, Fußnoten) wirkt. Folgendes Beispiel zeigt die Änderung von \@minipagerestore
, wobei man diese Zeilen in eine .sty-Datei oder mit \makeatletter ... \makeatother
geklammert in die Dokumentpräambel schreiben muss: <pre><verbatim> \newcommand\<orig@minipagerestore{>} \let\orig@minipagerestore=\@minipagerestore \renewcommand\@minipagerestore{% \<orig@minipagerestore> \setlength\parindent{1em}% \setlength\parskip{0pt}% } </verbatim></pre>
Mit dem Paket ,relsize`<a name=“74” id=“74”></a> kann man die Schriftgröße um einige Stufen kleiner oder größer als die aktuell verwendete wählen.
Hierzu dienen die Anweisungen \smaller
, \larger
oder \relsize{n}
bzw. \textsmaller{text}
, \textlarger{text}
und \mathsmaller{formel}
, \mathlarger{formel}
.
Will man die Schriftgröße aller Fußnoten, Bildunterschriften oder Überschriften um eine Stufe kleiner oder größer wählen, so ist es besser die Makros für Fußnoten, Unterschriften bzw. Überschriften entsprechend abzuändern. Dies kann sehr einfach mit Paketen wie ,footmisc`, ,caption`, ,titlesec` oder ,sectsty`, die an anderer Stelle erwähnt werden, erfolgen.
Der Artikel ,,Some Experiences in Running METAFONT and METAPOST`` von Peter Wilson beschreibt die Verwendung von METAPOST in LaTeX.
Peter Wilson: <br />Some Experiences…: | http://mirror.ctan.org/info/metafp.pdf <br /> http://mirror.ctan.org/info/metafp.ps | Vincent Zoonekynd:<br /> Métapost examples: | http://www.math.jussieu.fr/~zoonek/LaTeX/Metapost/metapost.html <br /> http://mirror.ctan.org/info/metapost/examples/ |
Die einfache Vorgehensweise eine vorhandene Anweisung \foo
durch beispielsweise <pre><verbatim> \renewcommand\foo[1]{% … tue was … \foo{#1} … nochmal was …} </verbatim></pre> zu redefinieren, funktioniert nicht, da sich \foo
immer wieder selbst (rekursiv) aufrufen würde, man also eine Endlosschleife hätte. Um diese zu vermeiden, muss man zuerst die Bedeutung des Makros \foo
unter einem anderen Makronamen retten und diesen dann in der neuen Definition verwenden: <pre><verbatim> % Die Originaldefinition des Makros unter einem neuen Namen retten. % Sicherstellen, dass der neue Name bislang undefiniert ist: \newcommand\origfoo{} % Originaldefinition unter neuem Namen merken: \let\origfoo=\foo % % Makro nun neu definieren: \renewcommand\foo[1]{% … tue was … \origfoo{#1}% … nochmal was …} </verbatim></pre>
Für das Hochstellen von Zeichen ohne Einschaltung des Mathematikmodus bietet LaTeX die Anweisung \textsuperscript an.
Mit den folgenden Definitionen, die analog der Definiton von \textsuperscript sind, erhält man eine entsprechende Anweisung \textsubscript zum Tiefstellen von Zeichen:
<verbatim> \DeclareRobustCommand*\textsubscript[1]{% \@textsubscript{\selectfont#1}} \newcommand\@textsubscript[1]{% {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} </verbatim>
Da diese Definitionen LaTeX-interne Anweisungen verwenden, müssen sie in eine Paketdatei oder in \makeatletter … \makeatother geklammert werden.
Die Pakete ,subscript` `<a name=“78” id=“78”> </a> und ,lhelp` sowie die aktuelle Version der KOMA-Script-Klassen enthalten bereits diese Definition und ist daher einer eigenen Definition vorzuziehen.
Die Anweisung \today
<a name=“80” id=“80”></a> liefert die sprachabhängig formatierte Darstellung des aktuellen Datums, beispielsweise ,,19. September 2003``.
Das Paket ,scrtime` des KOMA-Script-Paketes stellt die Anweisung \thistime
zur Verfügung, mit der die aktuelle Uhrzeit in der Form hh:mm ausgegeben wird.
Das Paket ,scrdate` des KOMA-Script-Paketes stellt die Anweisung \todaysname
zur Verfügung, mit der der aktuelle Wochentag aufgegeben wird.
Im Buch ,,Der LaTeX-Begleiter`` bei der Beschreibung des Paketes ,calc` findet man als Anwendungsbeispiel eine von KOMA-Script unabhängige Lösung, die wie \thistime das TeX-Register \time
auswertet.
Eine komfortable Lösung zur unterschiedlichen Datumsdarstellung bietet das Paket ,isodate`. Hier werden neben der ,,alten`` und ,,neuen`` deutschen Darstellung auch österreichische, US-englische, französische, dänische und norwegische Formate unterstützt.
Für Uhrzeiten und Zeitzonen in unterschiedlicher Darstellung dient das Paket ,uhrzeit`.
Die Pakete ,mdwlist`<a name=“82” id=“82”></a>, ,paralist` und ,expdlist` bieten verschiedene Möglichkeiten, das Aussehen von Listen zu beeinflussen. Dabei können sowohl die Einrückungstiefen und vertikale Abstände als auch das Aussehen der Marken bei ,description`-artige Listen angepaßt werden. Außerdem stehen vordefinierte kompakte Listen, bei ,paralist` auch innerhalb des fließenden Textes, zur Verfügung.
Leider bietet LaTeX hier keine Anweisungen an, aber man kann sich dennoch einfacher TeX-Mittel bedienen. Der Wert eines Längenregister \laenge
wird in der Protokollausgabe mit \showthe\laenge
ausgegeben; zur Ausgabe wird der Formatierlauf unterbrochen und kann mit Return fortgesetzt werden. Für die Anzeige im Text ist die Anweisung \the\laenge
hilfreich, die zum Wert des Längenregisters expandiert. Beide Anweisungen geben den Wert in Punkten an, für andere Einheiten muss selbst umgerechnet werden. Zum Umrechnen eignet sich das Paket ,printlen`<a name=“84” id=“84”>.</a>
Es gibt etliche meist auf dem PDF-Format basierende Lösungen. Einen guten Überblick bietet die folgende Adresse.
Michael Wiedmann: Screen Presentation Tools http://www.miwie.org/presentations/presentations.html
Die in der folgenden unvollständige Aufstellung unter ,,zu ersetzen durch`` gemachten Angaben sollten, auch wenn sie hier nicht näher begründet werden können, befolgt werden. Es handelt sich nicht vorrangig um formale Gründe, die diesen Empfehlungen zugrunde liegen. Im Zweifelsfall ziehe man geeignete Dokumentationen zu Rate.
veraltetes/ ungünstiges Paket | zu ersetzen durch |
---|---|
a4,a4wide | Klassenoption a4paper (KOMA 3 oder höher: paper=a4) |
doublespace | setspace |
epsfig, epsf,graphics | graphicx |
fancyheadings | fancyhdr, scrpage2 (speziell bei KOMA) |
floatfig, picinpar,here | float,picins, floatflt, wrapfig |
umlaut | inputenc |
ngerman,german | babel mit Option ngerman |
isolatin1 | inputenc mit Option latin1 |
natdin | dinat |
scrlettr | scrlettr2 |
scrpage | scrpage2 |
t1enc | fontenc mit Option T1 |
times oder pslatex oder paltino | mathptmx, helvet, courier |
subfigure, subfig | subcaption |
SIunits, SIstyle, unitsdef, units, fancyunits und fancynum | siunitx |
euler | eulervm |
glossary | glossaries |
anysize | geometry, typearea, zwpagelayout |
utopia | fourier |
veraltetes/ ungünstiges Anweisungen | zu ersetzen durch |
---|---|
\it , \rm , \bf===== | \itshape , =\rmfamily , =\bfseries bzw. <br /> =\textit{...} , =\textrm{...} , =\textbf{...} |
Texthervorhebung mit: \textit= | =\emph{…} (oft so gemeint) |
center-Umgebung innerhalb von Gleitumgebungen | \centering |
\\ , um im Fließtext einen Absatz zu beginnen | Leerzeile oder \par |
$$...$$ | \[ ...\] oder \begin{displaymath}...\end{displaymath} |
\includegraphics{dateiname.endung} | \includegraphics{dateiname} |
– Main.MarcoDaniel - 16 Mar 2009