Posts tagged ‘LaTeX’

fontenc und inputenc

Die Frage, wo eigentlich der Unterschied zwischen fontenc und inputenc liegt, wurde sehr ausführlich in einem stackexchange Posting beantwortet. Da ich selbst zwar schon seit Jahren TeXe, diesen Unterschied aber selbst nie ergründet habe, folgt hier die deutsche Übersetzung.

Beide Pakete adressieren vollkommen unterschiedliche Probleme.

  • inputenc erlaubt es dem Nutzer, Nicht-ASCII Zeichen direkt über die Tastatur einzugeben
  • fontenc kümmert sich um die Ausgabe, also darum welches Zeichen genutzt wird, um einen Buchstaben darzustellen

Beide Pakete sind nicht mit einander verbunden, es ist aber besser, fontenc vor inputenc in der Präambel zu laden. Mit \usepackage[T1]{fontenc} wählt man diejenige Codierung des Ausgabefonts so, die die meisten europäischen Sprachen (Deutsch, Französisch, Italienisch, Polnisch, etc.) enthält. Dies ist schon deshalb wichtig, weil TeX sonst Wörter mit akzentuierten Zeichen nicht korrekt trennen könnte.

Durch das Laden von \usepackage["encoding"]{inputenc} kann man direkt akzentuierte (Nicht-ASCII) Zeichen über die Tastatur eingeben. Wichtig ist hier, dass „encoding“ mit der TeX-Datei selbst korrespondiert, dies hängt einerseits von der Maschine und andererseit vom genutzten Editor ab. Das gebräuchlichste Encoding heute ist utf8.

Nutzt man nur \usepackage[T1]{fontenc}, und erhält man scheinbar richtigen Output, so ist die Datei vermutlich mit Latin-1 (ISO 8859-1) kodiert. Ausreichend ist dies jedoch nicht. Tippt man ein ß so erhält man SS in der Ausgabe, was falsch ist. Der richtige Aufruf ist daher


\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

Wie arbeiten die beiden Pakete? Schauen wir uns dies am Beispiel vom „ä“ an. Zuerst muss man sich bewusst sein, dass TeX nichts über Datei-Encodings weiß, es sieht nur die Zeichenzahl. Wenn man in einem auf latin-1 eingestellten Editor ein „ä“ eintippt, speichert der Rechner die Zahl 228.

TeX liest die Datei, findet das Zeichen Nummer 228, die Makros vom inputenc Paket transformieren dies in ein \“a.

Jetzt schlägt die Stunde von fontenc: Der Befehl \“a steht in einer Tabelle der akzentuierten Zeichen des Zeichensatzes, daraus macht fontenc „Setze Zeichen 228“ im aktuell gewählten Font. Beide Zahlen stimmen hier überein, daher wäre für das „ä“ das fontenc ausreichend.

Für ß stimmt dies nicht: Gespeichert wird die Zeichennummer 223, inputenc wandelt dies zu \ss, fontenc transformiert dies zu „Setze Zeichen 255“, an dieser Stelle sitzt bei T1-codierten Fonts das ß

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

PGFplots und Beamer

Marc van Dongen hat heute bei stackexchange ein schönes Minimal-Beispiel zu PGFplots veröffentlicht (http://tex.stackexchange.com/questions/44923/create-slide-with-graph-in-beamer).

\documentclass{beamer}
\usepackage{pgfplots}
\begin{document}
\begin{frame}[fragile]
   \frametitle{Bar Graphs}
\begin{tikzpicture}[scale=0.85]
\begin{axis}[xbar,tick align=outside,
             width=11cm,
             height=8cm,
             bar width={10pt},
             enlargelimits=0.13,
             nodes near coords,
             nodes near coords align=horizontal,
             point meta=x * 1, % The displayed number.
             xlabel=\textbf{Frequency of Winning the Final},
             xtick={0,5,...,35},
             ytick={1,...,13},
             yticklabels={Kerry,Laois,London,Waterford,Clare,Offaly,
                      Galway,Wexford,Dublin,Limerick,Tipperary,Cork,Kilkenny}
            ]
\addplot
[draw=blue,fill=blue!15]
coordinates
{(1,1) (1,2) (1,3) (2,4) (3,5) (4,6) (4,7) (6,8) (6,9) (7,10) (26,11) (30,12) (33,13)};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Farbige Tabellenzeilen mit colortbl

Hier ein kurzes Beispiel für farbige Tabellenzeilen mittels colortbl.

\documentclass[12pt]{article}
\usepackage[]{booktabs}
\usepackage{colortbl}
\usepackage[table]{xcolor}
\usepackage{helvet}
 
\definecolor{cell}{RGB}{220,230,240}
\definecolor{line}{RGB}{80,130,190}
 
\renewcommand{\arraystretch}{1.25}
\renewcommand{\familydefault}{\sfdefault}
 
\begin{document}
 
\arrayrulecolor{line}
\rowcolors{2}{cell}{white}
\begin{tabular}{llcl} \toprule
Name &Date&Version & Author \\ \midrule
Line1 & 05.02.2012 & 1.0 & AA \\ 
Line2 & 05.02.2012 & 2.0 & BB \\ 
Line3 & 05.02.2012 & 3.0 & CC \\ 
Line4 & 05.02.2012 & 4.0 & DD \\ 
Line5 & 05.02.2012 & 5.0 & EE \\ \bottomrule
\end{tabular}		
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Schneller TeXen mit Autohotkey, Autokey, Textexpander & Co – Teil 4

Bevor wir zum Textexpander unter Mac OS kommen, möchte ich noch ein interessantes Feature von Autokey vorstellen. Für die einzelnen Phrasen-Unterordner lassen sich selbst Kürzel definieren. In dem folgenden Beispiel habe ich die Menü Taste genutzt, die hier auf meinem Notebook zu finden ist.

Drücke ich diese Taste, so wird ein Menü mit den Inhalten des Ordners angezeigt und ich kann einen Eintrag auswählen.

Über den Schalter „Show in Tray menu“ wird gesteuert, ob dieses Kürzel auch im Menü von Autokey angezeigt werden soll.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Lebende Kolumnentitel mit scrpage2

Hier ein kurzes Beispiel für die Erstellung lebender Kolumnentitel mit scrpage2.

\documentclass{scrbook}
\usepackage[]{scrpage2}
\usepackage[]{blindtext}
 
\pagestyle{scrheadings}
\setheadsepline[\textwidth]{1pt}{}
 
\ohead{\headmark}
\ofoot[\pagemark]{\pagemark}
\cfoot{}
\chead{}
 
\begin{document}
\chapter{Hello}
\section{World}
 
\blindtext[10]
 
\end{document}

Ergebnis: scrpage2

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Mit ifdraft und tagging Dokumentteile ausblenden.

Hier ein Beispiel für die Kombination von ifdraft und tagging. Grundsätzlich würde ifdraft für viele Zwecke ausreichen, tagging bietet aber ein sauberes Interface und einige zusätzliche Befehle.

\documentclass[draft]{scrartcl} % delete the global option draft to see the difference
\usepackage[]{ifdraft}
\usepackage[]{tagging}
\ifdraft{\usetag{draft}}{\usetag{final}}
\begin{document}
 
\iftagged{draft}{Some text, if draft is set.}{Some text, if draft has not been set.}
 
\begin{taggedblock}{draft}
This is a draft block!
\end{taggedblock}
 
\begin{taggedblock}{final}
This is a final block!
\end{taggedblock}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Mit Python LaTeX-Code erzeugen

Die programmatische Erstellung von LaTeX-Code durch ein Framework hat mich schon immer interessiert, über ein stackexchange Posting (http://tex.stackexchange.com/questions/41875/generate-latex-truth-table-with-python-cheetah) wurde jetzt auch mein Interesse an der Erzeugung durch Python geweckt.

Hier ein Beispiel für die Erzeugung von LaTeX durch das Python Cheetah framework:

from Cheetah.Template import Template
definition = """\\documentclass{article}
 
\\title{$paper.title}
\\author{$author.name}
 
\\begin{document}
 
\\maketitle
 
 
\\end{document}"""
 
class author:
    """A simple example author class"""
    name = "Uwe Ziegenhagen"
    def f(self):
        return 'Hello World'
 
class paper:
    """A simple example paper class"""
    title = "My First paper"
    def f(self):
        return 'hello world'
 
 
uwe = author()
mypaper = paper()
 
print Template(definition, searchList=[{'author' : uwe,'paper' : mypaper}])

Erzeugt wird dadurch folgendes Dokument:

\documentclass{article}

\title{My First paper}
\author{Uwe Ziegenhagen}

\begin{document}

\maketitle

\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Unterschiedliche Bilder für Druck und Screen

PDFlatex unterstützt die Ausgabe unterschiedlicher Grafikversionen für Print und Screen. Die einzige Bedingung ist, dass beide Grafiken die gleiche Breite und Höhe haben.

Hier ein Beispiel:

\documentclass{scrartcl}
\usepackage[]{graphicx}
\begin{document}
 
\includegraphics[print=print.jpg]{draft.jpg}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Formulare füllen mit LaTeX

Wie man mit lpic.sty Formulare füllt, habe ich in einem früheren Blogeintrag bereits gezeigt: (http://uweziegenhagen.de/?p=1208). Hier ein neues Beispiel, dieses Mal für einen Kaufvertrag über ein gebrauchtes Rad, den man unter www.vsf.de/fileadmin/vsf/downloads/kaufvertragprivat.pdf herunterladen kann.

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[left=0cm,right=0cm,top=0cm,bottom=0cm]{geometry}
\usepackage[]{graphicx}
\usepackage[]{lpic}
\setlength{\parindent}{0pt}
\begin{document}
\begin{lpic}[]{kaufvertragprivat(0.999)} % coords(20)
\lbl[t]{41,248;\textcolor{black}{\small \textbf{Max Mustermann}}}
\lbl[t]{130,248;\textcolor{black}{\small \textbf{Martina Musterfrau}}}
\lbl[t]{55,240;\textcolor{black}{\small \textbf{Musterstr. 2, 12345 Musterstadt}}}
\lbl[t]{140,240;\textcolor{black}{\small \textbf{Musterweg 23q, 12345 Musterstadt}}}
\lbl[t]{50,230;\textcolor{black}{\small \textbf{Personalausweis, 1234567890}}}
\lbl[t]{40,160;\textcolor{black}{\small \textbf{Oranje}}}
\lbl[t]{44,150;\textcolor{black}{\small \textbf{Hollandrad}}}
\lbl[t]{41,140;\textcolor{black}{\small \textbf{28 Zoll}}}
\lbl[t]{45,131;\textcolor{black}{\small \textbf{schwarzblau}}}
\lbl[t]{40,122;\textcolor{black}{\small \textbf{12345}}}
\lbl[t]{40,100;\textcolor{black}{\small \textbf{Beleuchtung}}}
\lbl[t]{41,95;\textcolor{black}{\small \textbf{Gepäckträger}}}
\lbl[t]{41,90;\textcolor{black}{\small \textbf{Schutzbleche}}}
\lbl[t]{39,85;\textcolor{black}{\small \textbf{Kopfstütze}}}
\lbl[t]{42,80;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{42,75;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{42,70;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{60,59;\textcolor{black}{\small \textbf{Musterstadt, den \today}}}
\lbl[t]{167,71;\textcolor{black}{\Large \textbf{--1234--}}}
\lbl[t]{113,83;\textcolor{black}{\Large X}}
\lbl[t]{113,121;\textcolor{black}{\Large X}}
\lbl[t]{113,116;\textcolor{black}{\Large X}}
\lbl[t]{113,116;\textcolor{black}{\Large X}}
\lbl[t]{113,126;\textcolor{black}{\Large X}}
\lbl[t]{113,150;\textcolor{black}{\Large X}}
\lbl[t]{113,155;\textcolor{black}{\Large X}}
\end{lpic}
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Schneller TeXen mit Autohotkey, Autokey, Textexpander & Co – Teil 2

Im heutigen Artikel möchte ich Autokey vorstellen, das ich unter Ubuntu 11.10 benutze und das auch zumindest die von mir genutzten Autohotkey-Funktionen abdeckt.

Installation

Über sudo apt-get install autokey kann man zwar Autokey installieren, ich bevorzuge jedoch die ppa-Version, da diese unter Umständen aktueller ist.

Was muss man dafür tun? Nicht viel:

sudo add-apt-repository ppa:cdekter/ppa
sudo apt-get update
sudo apt-get install autokey

Ein Hinweis: Nach der Installation taucht das autokey eventuell nicht in der Unity Oberfläche auf, obwohl der Prozess im Hintergrund läuft. In diesem Fall drücken, dann sollte das Menü angezeigt werden. Unter Ubuntu 11.10 hatte ich zusätzlich das Problem, dass autokey die Einstellung zum automatischen Start nicht speichern wollte, weil der Pfad /home/uwe/.config/autostart/ fehlte, die manuelle Ordneranlage half in diesem Fall.

Im nächsten Teil dann mehr zur Bedienung von Autokey.

Nachtrag vom 28.06.2012: http://maketecheasier.com/make-autokey-works-in-ubuntu-natty/2011/06/26 erklärt, wie man Autokey auch unter Unity zum Laufen bekommt.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website