Donnerstag, März 26, 2009
Einige neue LaTeX-Kniffe
Linksbündige Listen
Wer sich in itemize-Umgebungen über den Blocksatz aufregt, schaltet äusserst einfach auf linksbündige Formatierung um:
\makeatletter
\g@addto@macro\itemize{\raggedright}
\makeatother
Quelle: Elemente der itemize-Umgebung linksbündig setzen
Listen ohne Ränder
Um weiterhin die Wahl zwischen linksbündig und Blocksatz zu haben, habe ich dafür kurzerhand eine neue Umgebung namens Itemize kreiert (man beachte die Grossschreibung), wo ich auch gleich noch einige Anpassungen an den Abständen vornehme. Leider ist es nämlich mit \begin{itemize} nicht möglich, Anpassungen an den linken und rechten Rändern vorzunehmen (Liste der veränderbaren Masse):
% Listen innerhalb Multicolumn
\newenvironment{Itemize}%
{\begin{list}{\textendash}{\leftmargin=1em
\rightmargin=0pt%
\partopsep=0pt%
\topsep=0pt%
\itemsep=0pt%
}%
{\singlespacing%
}}%
{\end{list}}%
Quelle: LaTeX: indentation itemize
Abschnitt mit drei Spalten
Wer innerhalb eines einspaltigen Dokuments für kurze Zeit auf mehrere Spalten umschalten möchte, benutzt das multicols-Package:
\setlength\columnsep{30pt}
\begin{multicols}{3}
\setlength\columnseprule{0.4pt}
\singlespacing
\raggedcolumns
... Text erste Spalte ...
\vfill \columnbreak
... Text zweite Spalte ...
\vfill \columnbreak
... Text dritte Spalte ...
\end{multicols}
Damit der Abstand zwischen den Spalten wirksam wird, ist darauf zu achten, dass die gewünschte Länge (hier: 30pt) vor dem generieren der Umgebung definiert wird. Mittels \columnbreak wechselt man in die nächste Spalte.
Quelle: Re: \columnsep with multicol
Silbentrennung verfeinert
Kurz vor Ende einer schriftlichen Arbeit beginnt man sich auch um die Ästhetik zu sorgen. Insbesondere Bindestriche sind für LaTeX nicht ganz trivial. Zur Rekapitulation:
- \- Ein Wort darf nur genau hier getrennt werden, sonst nirgends
- "- Zusätzliche Trennstelle
- "= Erstellt einen Bindestrich, nach dem nach Bedarf umbrochen wird
- -"" Dasselbe; der Bindestrich wird aber explizit geschrieben ("" ist der eigentliche Umbruch-Befehl)
- "~ Dieser Bindestrich darf nicht getrennt werden
Quelle: LaTeX-Wörterbuch: Silbentrennung
Sauber eingerückte Description-Listen
Mit Microsoft Word absolut kein Problem, mit LaTeX beisst man sich die Zähne aus. Dank The LaTeX Companion keine Hexerei mehr. Zuerst die Definition:
% Description-Listen
\newenvironment{Description}[1]
{\begin{list}{}%
{\renewcommand\makelabel[1]{\textsf{\textbf{##1}}\hfill}%
\singlespacing
\settowidth\labelwidth{\makelabel{#1}}%
\setlength\leftmargin{\labelwidth+\labelsep}}}%
{\end{list}}%
Bei der Anwendung im Dokument übergibt man der neu erstellten Listen-Umgebung dasjenige Description-Label mit den meisten Buchstaben. Anhand von diesem wird der Maximalabstand des Labels vom Beschreibungstext festgelegt:
\begin{Description}{Hier steht das längste Label}
\item[Kleineres Label] bla bla bla
\item[Mittelgrosses Label] bla bla bla
\item[Hier steht das längste Label] bla bla bla
\end{Description}Labels: Latex, Studium, Wissenschaft
Samstag, März 07, 2009
Damit LaTeX Paragraphen nicht vertikal auf die Seite verteilt
If latex can't fill a page (perhaps because the next object is a figure or table that doesn't fit, or because the next object is a heading that latex doesn't want to put at the foot of a page) then by default it will spread the vertical white space on the page so that the "height" of the page is the default height. If you want all the extra white space to appear at the bottom of such pages, add \raggedbottom before your \begin{document} line.
Quelle: Cambridge University Engineering Department - Squeezing Space in LaTeX
Wie lange habe ich mich darüber aufgeregt? Endlich ist die Lösung da ...
Dienstag, Oktober 14, 2008
Wörter von LaTeX-Dokumenten zählen
Ein klitzekleiner Vorteil hat Microsoft Word gegenüber LaTeX: Es ist äusserst simpel, die Anzahl Wörter und Zeichen eines Dokuments abzufragen.
Da LaTeX aber Inhalt mit Markup vermischt, ist es für solche Dokumente nicht trivial, eine aussagekräftige Zahl zu erhalten.
Glücklicherweise hat sich ein Perl-Jünger dieses Mankos angenommen und ein entsprechendes Script programmiert:
LaTeX word count: script and web-interface
Nachdem man dieses Script heruntergeladen und am geeigneten Ort installiert hat, produziert eine Ausführung folgende Ausgabe:
$ /usr/local/bin/TeXcount.pl *.tex ... TotalSUM Words in text: 7862 Words in headers: 115 Words in float captions: 525 Number of headers: 47 Number of floats: 0 Number of math inlines: 8 Number of math displayed: 0
Einen Wunsch hätte ich noch: Die Ausgabe der Zeichenzahl. Diese rechne ich derzeit mit 5 x 7862 hoch - von der Annahme ausgehend, dass deutsche Worter im Schnitt 5 Buchstaben besitzen.
Labels: Latex
Montag, Oktober 13, 2008
Altes Pfund (lb) in LaTeX
Wer das im deutschen Raum gebräuchliche alte Pfund-Symbol in LaTeX reproduzieren möchte (Screenshot auf Wikipedia), nehme sich das Paket MarVoSym zu Hilfe.
Bei meiner LaTeX-Installation unter Mac OS X war das Paket glücklicherweise bereits installiert, weshalb ich es nur noch in mein Dokument einbinden musste:
\usepackage{marvosym}
Ab sofort konnte ich das Währungs-Symbol folgendermassen drucken:
\Pfund
Bei der Suche nach dem entsprechenden Paket war die Comprehensive LaTeX Symbol List von grossem Wert.
Nachtrag: Manchmal wäre der Umweg über die Liste gar nicht nötig, steht doch in der Legende des Wikipedia-Bildlis ...
Kürzel für die Maßeinheit Pfund (erstellt mit dem marvosym-Paket für LaTeX)
Wer lesen kann hat klare Vorteile!
Labels: Geschichte, Latex
Donnerstag, Oktober 09, 2008
Mittelhochdeutsch: Wörterbuch und LaTeX
Wörterbuch
Derzeit schreibe ich an einer Proseminararbeit über ein Thema aus dem Spätmittelalter. Da die bernischen Quellen auf Mittelhochdeutsch (ich habe anfänglich den Oberbegriff Altdeutsch verwendet, der in Mittel- und Althochdeutsch zusammenfasst) abgefasst sind (Gott sei dank nicht in Lateinisch!), stolpere ich hie und da über Wörter, deren Bedeutung sich meiner Kenntnis entzieht.
Rettung naht - selbstverständlich im Netz:
Mittelhochdeutsches Handwörterbuch von Matthias Lexer
LaTeX
Wer mittelhochdeutsche Texte transkribiert, sollte folgenden Befehl auswendig lernen:
\r{u}
Quelle: LaTeX und althochdeutsche "Sonderzeichen"
Dies produziert einen u mit darüber hochgestelltem o - ein Buchstage, wie man ihn beispielsweise im Wort muolten antrifft.
Was das Wort bedeutet, zeigt eine Lexikon-Suche. ("mulde")
Nachtrag: Noch besser ist die Verwendung des Tipa-Packages, mit dem man wirklich jedes Mittelhochdeutsche Zeichen hinkriegt.
Man verwende dazu den \sups-Befehl:
l\sups{u}{i}ten
Die Tipa-Schriften (im Ordner type1 des ZIP-Archivs, dass man von www.ctan.org/get/fonts/tipa.zip herunterlädt) installiert man am Besten, indem man das Makefile anpasst (korrekter Pfad von $TEXMF) und danach ein
# make install
durchführt.
Damit tipa.map auch geladen wird, war bei mir noch ein
# texhash # mktexlsr # ./updmap --enable Map=tipa.map
nötig. Ansonsten generiert das Paket die Zeichen aus Bitmap-Schriften, was bei einer 100%igen Vergrösserung gut sichtbar wird.
Labels: Geschichte, Internet, Latex, Lexikon, Web
Montag, Juni 30, 2008
Anpassung der Silbentrennung von LaTeX
In den meisten Fällen trennt LaTeX Wörter anstandslos. Es kann aber Spezialfälle geben, wo man selber noch ein wenig Hand anlegen muss. Dafür bieten sich zwei Vorgehensweisen an:
- Bei Spezialkonstruktionen wie
[Hagel-]Schäden
beugt man hässlichen Umbrüchen vor, indem man[Hagel"~]""Schäden
schreibt. Das Wort wird so künftig nicht mehr getrennt. - Mit dem Befehl \hyphenation{...} kann man eigene Trenn-Regeln für alle Wörter definieren, die komisch getrennt werden. In meiner Liz-Arbeit sieht das dann so aus:
\hyphenation{Teil-as-pekt Blocka-de Frie-dens-ein-fuhr Ele-men-tar-scha-dens-sum-men}Von Vorteil ist, wer einen Duden (Bd. 1) zur Hand hat - die schwarzen und roten senkrechten Striche zwischen den Wortbausteinen geben die Trennungsorte an. Ersetzt man die senkrechten Striche im hyphenation-Befehl mit BIndestrichen, trennt man ab sofort Duden-konform.
Dienstag, Juni 03, 2008
LaTeX: chngcntr unter Mac OS X installieren
Um zu verhindern, dass die Zähler von Tabellen, Abbildungen und Fussnoten bei Beginn eines neuen Kapitels zurückgesetzt werden, hilft das Paket chngcntr
- Terminal.app starten
$ cd /usr/local/teTeX/share/texmf.tetex/tex/latex/
$ sudo mkdir chngcntr
$ cd chngcntr
$ sudo wget "http://www.dante.de/CTAN/macros/latex/contrib/misc/chngcntr.sty"
$ sudo /usr/local/teTeX/bin/powerpc-apple-darwin-current/texhash
Im Dokument fügt man anschliessend folgende Befehle ein:
\usepackage{chngcntr}
...
\counterwithout{footnote}{chapter}
\counterwithout{table}{chapter}
\counterwithout{figure}{chapter}
Dienstag, Juni 03, 2008
LaTeX: Überschriften in scrbook ohne Punkt nach der Nummerierung
Heute hat mein Liz-Fertig-Schreib-Marathon begonnen. Wie immer ist es äusserst optimal, im Endspurt noch kurz die ganze Dokumentstruktur auf den Kopf zu stellen. Will heissen: Aus KOMA-Script Article wird nun ein KOMA-Script Book. Bei knapp 200 Seiten eindeutig die bessere Wahl, weil einem so auch nicht die \subsubsections auszugehen drohen. Grösster Pluspunkt ist selbstverständlich die Unterteilung des Textes in Kapitel.
Einziger Haken: Seit dem Wechsel auf scrbook macht mir LaTeX einen Punkt hinter die Nummerierung der Titel. Aus ...
1.1 Fragestellung
... wurde ohne dass ich es so explizit gefordet hatte ...
1.1. Fragestellung
Unschön, und gemäss Duden auch ganz klar falsch.
Die Lösung des Problems (nach ca. 30 Minuten tüfteln und pröbeln im Netz entdeckt): pointlessnumbers! Somit sind meine Dokumentenklasse nun folgendermassen aus:
\documentclass[a4paper,12pt,oneside,pointlessnumbers]{scrbook}
Via: Re: KOMA-Script: pointlessnumbers
Soll mal einer drauf kommen ...
Tabellen- und Abbildungen nummerieren
Wie ich nun auch bemerkt habe, werden die Abbildungen und Tabellen neu nummeriert. Anstelle dem gewohnten ...
Tabelle 1
... steht nun ...
Tabelle <KAPITEL>.1
Um dieses Verhalten zu verhindern, behelfe man sich des folgenden Befehls:
\renewcommand*{\thefigure}{\arabic{figure}}
\renewcommand*{\thetable}{\arabic{table}}
Fussnote
Die Nummerierung der Fussnoten (Nachtrag: Und auch der Tabellen und Abbildungen) wird mit Beginn eines neuen Kapitels zurückgesetzt. Deshalb gibt es im Text mehrere Fussnoten mit der Nummer 1 (sofern mehrere Kapitel inkl. Fussnoten vorhanden sind).
Wie man dieses Verhalten deaktiviert, habe ich noch nicht herausgefunden. Es muss aber mit dem Hochsetzen des Chapter-Counters in Verbindung stehen.
Nachtrag: Die Lösung liegt nun im Folge-Artikel LaTeX: chngcntr unter Mac OS X installieren parat
Samstag, März 01, 2008
Wieso ich LaTeX Microsoft Word vorziehe
Primär sicherlich einmal, weil damit 150+-seitige wissenschaftliche Arbeiten (derzeit gerade mein Liz) deutlich effizienter verfasst werden können als mit dem Gebastel aus dem Hause Microsoft.
Für den Typographie-Liebhaber und Personen, die über einen Adlerblick verfügen, sollte auch Words Schriftformatierung ein No-Go sein:
There is still a further reason that definitely convinced me to abandon MS Word: you will never be able to produce professionally typeset and well-structured documents using most WYSIWYG word processors.
Word
LaTeX
Quelle: The beauty of LaTeX
Sagte er, und ging sich die soeben eingetroffene DVD 'Helvetica' anschauen ...
Labels: Design, Latex, Microsoft, Schriften, Typographie
Mittwoch, August 22, 2007
biblatex unter Mac OS X installieren
Lange Zeit habe ich mich für meine wissenschaftlichen Arbeiten im Studium mit dem Bibliographie-Paket jurabib abgemüht, das ursprünglich für die geschätzten Kollegen der Juristerei konzipiert wurde. Glücklich war ich mit dem Paket nie ganz, aber es verrichtete seine Arbeit zumindest zufriedenstellend.
Vor einigen Monaten dann stiess ich auf das Paket biblatex, das mit all dem alten Bibtex-Balast aufräumen will und die Logik in das Paket selber übernimmt. Bibtex bleibt für die Datenhaltung der Bibliographie veranwortlich, die Zitiererei wird nun aber von biblatex übernommen.
Die Installation unter Mac OS X ist relativ simpel, wenn man LaTeX bereits am Laufen hat:
- Download der ZIP-Datei von CTAN biblatex
- Entpacken
- Ausfindig machen des TeTex Root-Ordners (bei mir: /usr/local/teTeX/share/texmf.tetex/)
- Kopieren des Inhaltes des entpackten latex-Verzeichnisses nach /usr/local/teTeX/share/texmf.tetex/tex/latex/biblatex/
- Kopieren des Inhaltes des entpackten bibtex-Verzeichnisses nach /usr/local/teTeX/share/texmf.tetex/bibtex/bst/
- Ausführen von
texhash
- Fertig!
Stile für Historiker
Ein Hoffnungsschimmer macht sich am Horizont breit: Jemand hat auf Basis von biblatex Stile für die Geisteswissenschaften erstellt. Zu gebrauchen sind die Stile aber mit der von mir installierten biblatex-Version nicht, da eine geringere Version vorausgesetzt wird:
Wichtig: Die hier bereitgestellten styles arbeiten mit biblatex 0.2 zusammen. Mit anderen Versionen kann es durchaus Probleme geben. Eine Aktualisierung dieser Seite wird es frühestens mit der biblatex-Version 0.7 geben, da erst dann gewährleistet ist, dass die verwendeten Makros etc. stabil bleiben.
Quelle: biblatex-Styles für Geisteswissenschaftler
Die von obiger Seite heruntergeladenen Styles müssen analog in das Verzeichnis /usr/local/teTeX/share/texmf.tetex/tex/latex/biblatex/ kopiert werden. Dabei müssen einzelne Dateien in diesem Verzeichnis liegende Unterordner abgelegt werden:
Die .bbx-Dateien gehören in das dortige Unterverzeichnis bbx, die .cbx-Dateien entsprechend in das cbx-Unterverzeichnis.
Anschliessend noch ein
texhash
und die Styles sollten - zumindest - gefunden werden. Leider produzieren diese beim Kompilieren der .tex-Datei eine Fehlermeldung.
Bye bye, bibtopic
Mit biblatex ist es nun auch nicht mehr nötig, Literaturverzeichnisse mittels bibtopic zu unterteilen (wir Historiker unterscheiden ja bekanntlich zwischen Quellen und Sekundärliteratur und seit einigen Jahren auch noch nach Inhalten aus dem WWW).
Hierzu musste ich aber mein Literaturverzeichnis (.bib) überarbeiten: Anstelle ein Shell-Script vor dem Kompilieren mit Zuhilfenahme von bibtool aus der Master-Datei mittels Filter ein Quellen- und eine Sekundärliteratur-Datei zu generieren ...
bibtool -- 'select{doctype "Q"}' "$BIBLIO" -r "$RES" -o "$WORKDIR$BASENAME-quellen.bib"
bibtool -- 'select{doctype "L"}' "$BIBLIO" -r "$RES" -o "$WORKDIR$BASENAME-literatur.bib"
bibtool -- 'select{@url} new.entry.type' "$BIBLIO" -r "$RES" -o "$WORKDIR$BASENAME-internet.bib"
... filtere ich nun mit biblatex und Stichworten:
Im Header ...
\usepackage[style=authortitle-cverb]{biblatex}
% FILTERS
\defbibfilter{primary}{\keyword{Q}}
\defbibfilter{secondary}{\keyword{L}}
\defbibfilter{www}{\not \keyword{Q} \and \not \keyword{L}}
% HEADINGS
\defbibheading{primary}{\subsubsection{Zeitgenössische Publikationen}}
\defbibheading{secondary}{\subsection{Literatur}}
\defbibheading{www}{\subsection{World Wide Web}}
% BIBLIOGRAPHY
\bibliography{main.bib}
... sowie im Dokument:
\printbibliography[filter=primary,heading=primary] \printbibliography[filter=secondary,heading=secondary] \printbibliography[filter=www,heading=www]
Weiterführendes
Generelle Anleitung, wie man LaTeX-Pakete installiert
Labels: Latex
Mittwoch, August 15, 2007
LaTeX mit maximaler Seitenausnutzung und minimalen Seitenrändern
Heute habe ich eine meiner Web-Applikationen auf der Arbeit um die nützliche Funktion erweitert, PDF-Dateien auszugeben. Der Inhalt ist eine Tabelle (longtable, wer LaTeX-kundig ist), die im Querformat ausgegeben werden soll. Mit den Standardeinstellungen der Dokumentenklasse report konnte sich die Tabelle überhaupt nicht entfalten, weshalb ich mich auf der Suche nach Einstellungen machte, die den auf einer Seite zur Verfügung stehenden Platz maximieren:
\documentclass[10pt,a4paper,landscape]{report}
\setlength\topmargin{0cm}
\setlength\headheight{0cm}
\setlength\headsep{0cm}
\setlength\textheight{160mm}
\setlength\textwidth{245mm}
\setlength\oddsidemargin{0cm}
\setlength\evensidemargin{0cm}
\begin{document}
\end{document}
\textheight{} und \textwidth{} waren dabei die massgeblichen Befehle, auch wenn die anderen \setlengths ihren Teil zum Endprodukt beitragen.
Fazit: Anstelle von 16 habe ich das PDF auf 11 Seiten heruntergerechnet.


Abonnieren
