dantefaq:verschiedenes

%META:TOPICINFO{author=“HerbertVoss” date=“1351795971” format=“1.1” version=“1.10”}% %META:TOPICPARENT{name=“FAQ”}%

Verschiedenes

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
applemacMac

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.

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.

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

  • dantefaq/verschiedenes.txt
  • Last modified: 2023/02/28 10:39
  • by 127.0.0.1