Archive for the 'latex' Category

Fußnote ohne Note

Genau das können die ncctools. Mit dem Befehl

\Footnotetext{MARKE}{Fußnotentext}

kann man eine Fußnote erzeugen, die durch eine beliebige MARKE gekennzeichnet wird. Hier kann man z.B. einen Stern, ein Kreuz oder eben auch ein Leerzeichen wählen. Ist jetzt schwer zu erklären warum ich eine Fußnote ohne Markierung haben will, aber das muss eben so sein. :-)

Man beachte, dass dieser Befehl im Gegensatz zum “Original” mit einem großen “F” anfängt.

Index

Hier gibt es eine nette, wenn auch schon ältere, Zusammenfassung wie man einen Index über einem Latex Dokument erstellt. Begriffe werden mit dem Befehl


\index{Begriff}

in dem Index aufgenommen. Mit der Option “see” kann man Verweise zu anderen Einträgen herstellen und mit Hilfe des “!” Operators lassen sich Begriffe unterordnen


\index{weiterer Begriff|see{Begriff}}
\index{Begriff!Unterbegriff}

Begriff, 7
…Unterbegriff, 11
weiterer Begriff, siehe Begriff

IMO ist das für einen Index schon ausreichend, wobei es noch etliche Anpassungsmöglichkeiten gibt. Das ganze sollte man dann natürlich auch noch mit dem entsprechenden Befehl bauen.


makeindex dokument.idx

Ich habe es trotz längerer Recherche und einigem Probieren nicht geschafft deutsche Umlaute richtig einzusortieren. Die Darstellung der Umlaute klappt bei mir auch ohne drehen am Indexstyle problemlos. Sobald ein Wort aber mit einem Umlaut beginnt, steht es leider ganz vorne im Index. Is mir mittlerweile auch zu blöd dem Fehler zu suchen, und “überwachen” wird jetzt einfach nicht in den Index aufgenommen. :-P

Latex und PDF

Möchte man ein fertiges PDF, wie z.B. das Pflichtenheft zu einer Diplomarbeit, in ein Latex Dokument einfügen, so könnte man folgendes machen:


\usepackage{pdfpages}
\includepdf[pages=1-5]{pflichtenheft.pdf}

Wenn statt der Seiten 1 bis 5 lieber alle Seiten haben möchte, dann ist “-” das Zeichen der Wahl. Die eingefügten PDF Seiten können wie Bilder skaliert werden und wenn gewünscht z.B. auch mit einer Kopfzeile versehen werden.


\includepdf[pages=-, scale=0.6]{pflichtenheft.pdf}
\includepdf[pages=-, pagecommand={\thispagestyle{headings}}]{pflichtenheft.pdf}

Signature

Anselm Lingnau beschreibt in seinem Buch “Latex Hacks”, was ich nur empfehlen kann, eine recht coole Art mit Zitaten und Unterschriften umzugehen.


\newcommand*{\signed}[1]
{\unskip\hspace*{1em plus 1fill}
\nolinebreak[3]\hspace*{\fill}\mbox{\emph{#1}}}

Mit diesem Macro kann man anschließend Zitate erzeugen, bei denen der Text linksbündig und der Autor rechtsbündig gesetzt wird.


\begin{quote}
"How can we have a five-year plan when you don't know what will happen in five minutes?"
\signed{Dilbert (08.02.08)}
\end{quote}

Code in Text hervorheben

Ist so nen Sache für sich. Ich bin mir noch nicht sicher wie ich am Ende Codeschnipsel oder Schlüsselwörter in Fließtext hervorheben möchte. Darum habe ich mir jetzt ein neues Makro “code” definiert:


\newcommand{\code}[1]{\texttt{#1}}

Wenn ich jetzt schreibe “\code{return}”, dann macht das auch nichts anderes als “\texttt{return}” aber ich habe später die Freiheit einfach die Hervorhebung zu ändern, und zwar ohne dass ich mittels copy/paste durch den ganzen Text gehen muss…

Code Schnipsel

Code Schnipsel einfach in LaTeX-Dokumente einfügen. Wer keine Lust mehr auf die verbatim-Umgebung hat, dem kann das Paket “listings” weiterhelfen.

Erst mal die beiden Pakete “listings” und “color” in der Präambel importieren und evtl. noch die Hintergrundfarbe für Listings festlegen.


\usepackage{listings}
\usepackage{color}
\definecolor{listinggrey}{rgb}{0.9,0.9,0.9}

Dann kann man im Dokument bequem, optisch ansprechende, Listings einfügen.


\lstset{language=java,
  basicstyle=\small,
  %numbers=left,
  tabsize=2,
  frame=single,
  backgroundcolor=\color{listinggrey}}
\begin{lstlisting}
public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello World!");
  }
}
\end{lstlisting}

Mehr dazu gibt es z.B. hier und speziell hier.

Hier Text einfügen

Wenn man so am schreiben ist, können Macros, die einen erinnern den Text später noch zu vervollständigen, recht hilfreich sein.


\newcommand{\addtext}{\textcolor{red}{<hier Text einfügen>}}
\newcommand{\addimage}{\textcolor{red}{<hier Bild einfügen>}}
\newcommand{\addtable}{\textcolor{red}{<hier Tabelle einfügen>}}

Yet another latex hint

Ich arbeite auf dem Mac mit dem Latex-Editor TeXShop. Wenn ich damit meine komplette Diplomarbeit mit allen Verzeichnissen kompilieren will, war das bis jetzt immer ein kleines Abenteuer, weshalb ich auf die Konsole ausgewichen bin.

Folgendes Shell-Script erledigt das ganze recht gut wenn man ihm den Namen der zu kompilierenden Tex-Datei übergibt:


#!/bin/sh
bfname=$1

#first run to build up basic structure
pdflatex $bfname.tex

#build Bibliography
bibtex $bfname

#build Glossary
makeindex $bfname.nlo -s nomencl.ist -o $bfname.nls

#build Index
makeindex $bfname.idx

#run two times to set the toc and references right
pdflatex $bfname.tex
pdflatex $bfname.tex

Mit einer kleinen Änderung kann man das ganze auch einfach in einer Datei mit der Endung “.engine” unter ~/Library/TeXShop/Engines ablegen und dann im Typeset-Menü von TeXShop auswählen.

Hier noch meine Diplomarbeit.engine:


#!/bin/sh
bfname="`basename "$1" .tex`"
pdflatex "$1"
bibtex "$bfname"
makeindex "$bfname".nlo -s nomencl.ist -o "$bfname".nls
makeindex "$bfname".idx
pdflatex "$1"
pdflatex "$1"

Lustige Latex Anekdote

Da ich ja gerade so ein bisschen am TeXten für die Diplomarbeit bin, würde ich auch gerne in der Firma Latex benutzen. Eigentlich auch kein Problem und Latex lief auch von Anfang an, nur eben langsamer als gewohnt. Mit langsam meine ich nicht etwa ein paar Sekunden länger, sondere eher ich geh mir mal nen Kaffee hohlen und kann ihn auch noch trinken bevor das Dokument einmal kompiliert ist. Wenn man so ein paar Verzeichnisse, einen Index und eine Literaturdatenbank hat ist das auch die Dauer schon ein wenig nervig, wenn man bei jeder Änderung das ganze drei mal kompilieren muss.

Continue reading ‘Lustige Latex Anekdote’

Schon wieder Latex

Nachdem ich mich jetzt ne knappe Stunde mit dem nomencl-Paket herumgeschlagen habe, muss ich meine Erkenntnisse doch noch kurz festhalten.

Auf jeden Fall sollte man sich das aktuelle Paket von ctan hohlen. Die meisten Probleme hingen bei mir damit zusammen, dass ich auf meiner Kiste im Büro und Zuhause unterschiedliche Versionen des Paktes verwendet hatte die dann doch nicht so wirklich kompatibel waren… nomencl auf meinem Mac war immerhin noch aus dem Jahre 2000.

Also einfach “nomencl.dtx” und “nomencl.ins” runterladen und mit “latex nomencl.ins” die beiden Dateien “nomencl.sty” und “nomencl.ist” erzeugen. Im Readme steht nun dass man “nomencl.sty” irgendwo hinpacken muss, wo latex sie findet, und gleiches gilt für “nomencl.ist” und makeindex. Zwecks Einfachheit und Problemfreiheit ist es evtl. ratsam die alten Dateien einfach zu überschreiben.

In die Präambel des tex-Dokument kommt nun folgendes:


\usepackage[intoc]{nomencl}
\renewcommand{\nomname}{Glossar}
\setlength{\nomlabelwidth}{.30\hsize}
\makenomenclature

Hierbei will ich den Namen auf “Glossar” setzen und zwischen die Begriffe und deren Erklärung ein wenig Abstand einfügen. Sollten man das Glossar nicht im Inhaltsverzeichnis haben wollen, so fällt die Option “intoc” weg. An passender Stelle im Dokument sollte jetzt noch das Glossar gedruckt werden:


\cleardoublepage
\markboth{\nomname}{\nomname}
\printnomenclature

Das “cleardoublepage” sowie “markboth” war bei der Dokument-Klasse “scrbook” nötig, da sonst im Seiten Kopf noch der Name des letzten Kapitels erscheint. Wie sich das mit anderen Dokument-Klassen verhält kann ich nicht sagen. Jetzt kann man an jeder Stelle im Text neue Einträge in das Glossar hinzufügen:


\nomenclature{UML}{Unified Modeling Language}

Natürlich sollten man das ganze auch noch mit makeindex kompilieren:


makeindex Document.nlo -s nomencl.ist -o Document.nls

Fertig!