Personal tools

LaTeX

From Wissensbasis

(Redirected from Latex)
Jump to: navigation, search

Für die Erstellung von Ausarbeitungen empfehlen wir Ihnen LaTeX.

Vorlagen für Ausarbeitungen

Werkzeuge

  • Liste von LaTeX-Werkzeugen (Wikipedia)
  • TeX Live: LaTeX-Distribution für verschiedene Betriebssysteme
  • MacTeX: LaTeX-Distribution für Mac OS.
  • MikTeX: LaTeX-Distribution für Windows.
    • Tipp: Installieren mit der Option "Complete": Pakete vorher per FTP-Client herunterladen und dann aus dem Verzeichnis installieren.
  • TeXnicCenter: LaTeX-Editor für Windows mit Rechtschreibprüfung. Eine LaTeX-Distribution muss vorher bereits installiert sein (z.B. Miktex, s.o.)
    • Rechtschreibprüfung: unter Extras->Optionen->Rechtschreibung zu aktivieren (englische Version: Tools -> Options -> Spelling)
    • das Nachladen/Installieren ist in der mitgelieferten Texniccenter-Hilfe unter TeXnicCenter -> Configuration -> Advanced Configuration beschrieben
    • Hinweise bei Fehler "LaTeX terminates with "GUI framework cannot be initialized" if invoked from TeXnicCenter"
      • Texniccenter und Miktex 2.8 haben ein kleines Kompatibilitätsproblem, s. http://miktex.org/2.8/issues
      • Unter Windows 7 kann es helfen den Texniccenter mit Administratorrechten zu starten, wenn Pakete automatisch installiert werden sollen [1].
      • Ansonsten kann man pdflatex einmalig von der Kommandozeile starten, dann werden Pakete korrekt installiert. Danach funktioniert pdflatex auch im Texniccenter wieder.
  • LEd: LaTeX-Editor für Windows
  • TeXlipse LaTeX-Plugin für Eclipse (unterstützt UTF-8)
  • teTeX: LaTeX-Distribution für Linux
  • Kile: LaTeX-Editor für KDE
  • gVim: Der Klassiker unter den Editoren
  • Verbosus: Browser-basierter LaTeX-Editor
  • Jabref: Verwaltung von BibTeX-Einträgen (Java)
  • Mendeley Literatur Verwaltung mit Möglichkeit zum BibTex-Export

Tutorials und Hilfen

LaTeX-Tipps

Build-Skript für LaTeX

Oft hat man das Problem, daß bei der Generierung von PDFs der eigentliche Dokumenten-Ordner mit den Hilfsdateien (*.aux, *.toc usw.) "verschmutzt" wird. Eine Möglichkeit zur Vermeidung davon ist es, einen gen-Ordner anzulegen, in den die Kompilate dann erzeugt werden. Ein Build-Skript kann man dann auch im gen-Folder ablegen (hier mit biber statt BibTEX):

cd ..
pdflatex --output-directory=gen document
biber gen\document
pdflatex --output-directory=gen document
pdflatex --output-directory=gen document
cd gen

Den gen-Ordner kann man dann einfach im SVN auf "ignore" setzen und hat eine saubere Lösung.

SVN-Informationen im Dokument anzeigen

Mit dem Paket svn-multi ist es möglich, SVN-Revisions-Informationen direkt im Dokument anzuzeigen. Dazu ruft man einmalig auf der Konsole

svn propset svn:keywords "LastChangedBy LastChangedRevision LastChangedDate HeadURL" foo.tex

für die betreffende Datei auf oder benutzt die entsprechende Keywords-Funktion in Eclipse/Tortoise. Im LaTeX-Dokument selbst kommt dann folgendes in die Präambel:

\usepackage{svn-multi}
\svnidlong
{$HeadURL$}
{$LastChangedDate$}
{$LastChangedRevision$}
{$LastChangedBy$}

Diese Platzhalter werden beim nächsten SVN update/commit durch Revisions-Informationen ersetzt. Dann kann man im Dokument beispielsweise die Informationen durch folgende Befehle in eine Fußnote einbinden:

\footnote{Author: \svnauthor; Revision: \svnrev; Last changed on: \svndate; URL: \url{\svnkw{HeadURL}}}

Quelle: [2]

Einbindung von Graphiken:

  • Am besten bindet man Graphiken immer im platzsparenden und skalierbaren Vektorformat ein. Bei der häufig gewählten Ausgaben von TeX-Dokumenten als PDF bietet es sich dabei an, die Graphiken selbst als PDF einzubinden. Als freies Werkzeug, dass über die Druckausgabe PDF mit Vektorgraphiken produziert, hat sich FreePDF bewährt. Die Verwendung von PDF-Dateien erfordert, dass man seine TeX-Quellen mit pdflatex kompiliert. Bei der Ausgabe nach Postscript über latex+dvips sind EPS-Dateien für die Graphiken zu verwenden. Diese können mit Hilfe von Ghostscript aus PDFs oder nach PDF konvertiert werden (ps2pdf / pdf2ps, in z.B. MikTeX enthalten).
  • Auf Thinkingms wird beschrieben, wie man so genannte "Viewports" dazu verwendet einen Ausschnitt aus einer PDF-Graphik für die Anzeige in LaTeX-Dokumenten zu verwenden. Alternativ werden ebenfalls Werkzeuge beschrieben, die es ermöglichen weiße Flächen aus PDFs zu entfernen.
  • Werkzeuge für zum Bearbeiten und Beschneiden von PDF-Dokumenten: PDF Edit, PDF Crop

Falsche Referenzierung von Graphiken:

Um falsche Referenzierungen von Grafiken zu vermeiden, sollte in der figure-Umgebung unbedingt immer
\caption
vor
\label
stehen. Sonst kann es vorkommen, dass LaTeX Mist baut und statt der richtigen Nummer der Grafik die Nummer des Abschnitts ausgibt, in dem sich die Grafik befindet.

Wörter in LaTeX-Dokumenten zählen:

Web-Formular

Bindestriche

Für Bindestriche "= verwenden (bei Verwendung von Packages wie german, ngerman), damit die Wortteile umgebrochen werden können. Also etwa Wort"=Trennung. Der Befehl steht in englischsprachigen Dokumenten nicht zur Verfügung. Um ihn dennoch verwenden zu können, folgendes in die .sty-Datei schreiben:

\RequirePackage[english]{babel}
\useshorthands{"}
\defineshorthand{"=}{%
 \nobreak % allow hyphenation in the previous word but no break here
 -% explicit hyphen with break point of \exhyphenpenalty
 \hskip\z@skip % enable hyphenation in the following word
}

Alternativ lässt sich auch das Makro shorthands aus ngerman auch für die englische aktivieren (Vielen Dank an Markus Kohm für diesen Tipp!), damit stehen für Englisch auch noch weitere shorthands zur Verfügung:

% Activate all shorthands of ngerman for english, too:
\RequirePackage[ngerman,english]{babel}% ngerman must be loaded additionally, to
                               % make the ngerman shorthands available
\addto\extrasenglish{\languageshorthands{ngerman}}% use ngerman shorthands for
                               % english, too
\useshorthands{"}% use shorthand prefix-character "

Zeilenumbruch verhindern:

Möchte man bewirken, dass etwa "see section 5.4" im Text stets in einer Zeile steht (also die Zahl "5.4" in der gleichen Zeile steht wie das Wort "section"; ein Zeilenumbruch am Leerzeichen verhindert wird), kann man eine Tilde ~ verwenden: "section~\ref{sec:myLabel}"

Quellcode einbinden:

Benutzen Sie z.B. das Paket "Listings" (siehe hier). Weitere vordefinierte Sprachen

Verbatim-Schriftart einstellen:
\lstset{fancyvrb=true}

Index erstellen:

siehe hier.

Kennzeichnung neuer Abschnitte (sogenannte change bar)

  • Überprüfen, ob das Paket changebar installiert ist (kann von http://www.ctan.org/tex-archive/macros/latex/contrib/changebar/ bezogen werden):
  • \usepackage[color]{changebar}
    einfügen
  • vor \begin{document}, wobei VN als Abkürzung für Vorname/Nachname (z.B. DD für Donald Duck) steht:
    \newenvironment{VNchange}{\cbstart}{\cbend}
  • den veränderten Abschnitt markieren:
    \begin{VNchange} neuer Text \end{VNchange}

Tabellen aus z.B. Excel verwenden

Hilfreiches Tool LaTable, in das man Excel Tabellen hinkopieren und wieder als LaTeX Tabellen herauskopieren kann, weiterhin Bearbeitungen wie Rahmen

Equations

It is recommended to not use eqnarray as it introduces inconsistencies. See Avoid eqnarray! by Lars Madsen for details.

Zeilenumbruch in textt-Umgebung

Text innerhalb von texttt wird standardmässig nicht umgebrochen, da für textt kein Zeilenumbruchzeichen definiert ist. Dies kann man manuell setzen, z.B. in einem eigenen angepassten Kommando:

\newcommand\mytexttt[1]{\texttt{\hyphenchar\font=45\relax #1}}

Details siehe hier: http://tex.stackexchange.com/questions/44361/how-to-automatically-hyphenate-within-texttt

Bibtex-Tipps

Avoid dashed lines in author field in IEEEtran, IEEEtranSA, etc.

In IEEE bibtex styles, dashed lines are inserted in the author field if the same author (or combination of authors) appears multiple times in a bibliography list. This is default behaviour of the IEEE styles, but can be turned off.

To turn this behaviour of, insert the following code at the beginning of the bib files:

@IEEEtranBSTCTL{myctlfullname,
CTLdash_repeated_names = "no"
};

With this command, special IEEEtran options can be set.

In your latex file, put the following code before the
\begin{document}
instruction:
\makeatletter
\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
\def\@bstctlcite[#1]#2{\@bsphack
  \@for\@citeb:=#2\do{%
    \edef\@citeb{\expandafter\@firstofone\@citeb}%
    \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
  \@esphack}
\makeatother
In your latex file, put the following code after the
\begin{document}
instruction:
\bstctlcite{myctlfullname}

The code in the latex file enables the IEEE options to be regarded when parsing the bib file.

For more details, see http://mirrors.ctan.org/macros/latex/contrib/IEEEtran/bibtex/IEEEtran_bst_HOWTO.pdf.

Bibtex Troubleshooting

In general, if something bibtex-related causes errors or does not look as intended, make sure to inspect the Bibtex warnings and errors at the end of the log when creating your PS/PDF. Look for the line "This is BibTeX, version ..." and go through all items. An error message with something like "',' expected" indicates that one of your BibTeX entries misses commas to separate fields.

Multiple Bibliographies

If you want to have multiple bibliographies, e.g. scientific publications separated from online resources, you will find this comparison of packages for multiple bibliographies useful. If differencing by entry type is sufficient, you might want to use \printbibliography[title={Book references},type=book] etc. to have multiple bibliographies with biblatex.

If you need to combine numeric and author-year styles in multiple bibliographies using bibtex, this minimal example adapted from fix #70 for biblatex should do the trick:

\usepackage[citestyle=authoryear,bibstyle=authortitle,backend=biber,labelnumber,defernumbers]{biblatex}
\DeclareCiteCommand{\citemisc}[\mkbibbrackets]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[bibhyperref]{%
     \printfield{prefixnumber}%
     \printfield{labelnumber}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
\defbibenvironment{online}
  {\list
     {\printtext[labelnumberwidth]{%
  \iffieldundef{shorthand}
    {\printfield{prefixnumber}%
     \printfield{labelnumber}}
    {\printfield{shorthand}}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}
% ...
\printbibliography[nottype=misc]
\printbibliography[env=online,sorting=none,title=Miscellaneous,type=misc]

Take care to define the numeric citation command using DeclareCiteCommand instead of the standard newcommand. Furthermore, you might consider to omit the sorting=none option.

Troubleshooting

  • Error message about LaTeX sources being older than 5 years when using Miktex: Use the Miktex Update function to update all packages (or all packages that are older than 5 years). Even if your Miktex distribution is newer (e.g. Miktex 2.8), it came with older source files that will be outdated earlier than the whole distribution.

Links

KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft