Festplatte bei der Arbeit
Heute gibt es eine Portion Hardware-Porn:
Heute gibt es eine Portion Hardware-Porn:
Vor einer Woche tagte das letzte Gremium und auch hier gab es einen eindeutigen Beschluss: Mein
Lehrauftrag für das Wintersemester 2010/11 wird genehmigt. Also startet bald mein nächstes Großprojekt, die eigene Vorlesung. Ich werde zusammen mit einem weiteren Professor des Lehrstuhls für Informatik die Vorlesung IT-Sicherheit halten und bin sehr auf diese neue Erfahrung gespannt.
Die ursprüngliche Idee für diese Vorlesung kam aus der Studentenschaft. Während der Proteste anfangs des letzten Semesters monierten Studenten das fehlende Thema. Über diverse Iterationsstufen kam der Vorschlag schließlich bei mir an und der Stein ins Rollen. Ich halte schon seit vielen Jahren Seminare. Zu Beginn waren es hauptsächlich Finanzthemen, genauer Devisen- und Wertpapierhandel. Später schwenkte ich auf den Softwaresektor um. Anfangs war Java der Hauptinhalt, später erweiterte ich mein Angebot auf GNU/Linux (Zertifizierung, Administration etc.), IT-Sicherheit (BSI Grundschutz) und Datenschutzthemen. Die letzteren Felder beackere ich auch in praktischer Tätigkeit. Daher wurde mir das nötige Wissen und die Fähigkeit zur Schulung anerkannt. Die diversen zuständigen Gremien gaben ihre Zustimmung und nun kann es losgehen.
Wenn es soweit ist, berichte ich über die Inhalte und eventuell interessante Begebenheiten aus der Vorlesung. Seit gespannt!
Erst gestern schrieb ich zum Thüringer Gesetz zur Ausführung des Zensusgesetzes 2011. Jetzt las ich gerade, dass der Thüringer Landtag heute die zweite Beratung zum Gesetz beginnen wird. Wen es interessiert, sollte ab 14 Uhr in den Stream schauen.
Update: Die Beratung zum Gesetz wurde verschoben, da der Innenausschuss seine Arbeit noch nicht beendet hat.
Ganz unter dem Radar der Bürgerrechtsaktivisten laufen die Planungen zu einer neuen Volkszählung. Im Mai 2011 soll das gesamte deutsche Volk wieder erfasst und zum Teil befragt werden. Das entsprechende Zensusgesetz 2011 wurde vom Bundestag bereits verabschiedet. In Thüringen und anderen Bundesländern müssen/sollten Gesetze zur Ausführung des Zensusgesetzes beschlossen werden. Der Thüringer Landtag befragte diverse Organisationen, darunter den AK Vorrat. Ich habe für die Ortsgruppe Jena des AK eine Stellungnahme verfasst. Diese Stellungnahme ist im wesentlichen die Beantwortung von acht Fragen der Parlamentarier. Leider hatte ich nur knapp vier Tage, um die Fragen zu beantworten und angesichts der Komplexität der Materie war das viel zu wenig. Nichtsdestotrotz versuchte ich, alle Fragen nach besten Wissen und Gewissen zu beantworten. Nun bin ich gespannt, wie es weitergeht.
Eine weitere Stellungnahme findet ihr bei den Thüringer Piraten.
Heute geht es in der Reihe mit einem grafischen Programm weiter. Frank bewirbt schon lange
sein
Baby Geany. Das ist
ein Gtk-basierter Editor. Ich kenne einige Leute, die den gern
nutzen. Frank hat für Geany ein LaTeX-Plugin geschrieben. Daher kann
der Editor bequem mit LaTeX umgehen.
Nach dem ersten Öffnen des Programms sieht man die Menüleiste und drei Flächen, Symbole, Statusfenster und die Eingabefläche für den Text. Das LaTeX-Plugin arbeitet nicht kontextbezogen, d.h. es ist entweder immer an oder immer aus. Um es zu aktivieren, klickt man auf Werkzeuge -> Plugin Manager (Wieso fehlt hier eigentlich der Trennstrich?) und aktiviert das Feld LaTeX. Damit erscheint im Menü Werkzeuge ein neuer Eintrag LaTeX. Fortan steht das Plugin zur Verfügung.
Beim Öffnen einer leeren Datei passiert zunächst nichts. Startet
man beispielsweise mit der Eingabe von \documentclass, so
bietet Geany nach den ersten drei Zeichen eine Vervollständigung
an. Bei mehreren Optionen kann der Nutzer mit der Cursor- oder
Maustaste das Gewünschte wählen. Schön wäre, wenn zusätzlich zum Namen
des Befehls geschweifte Klammern eingebaut werden würden. Weiterhin
würde ich mir bei Befehlen wie \documentclass
oder
\usepackage
eine Auswahlliste wünschen. Das vereinfacht
die Eingabe und vermeidet Fehler.
Eine bequemere Variante ist der LaTeX-Assistent. Er ist über
Werkzeuge -> LaTeX -> LaTeX-Assistent zu
erreichen. Über ein grafisches Menü kann der Nutzer wählen, welche
Klasse, Zeichensatz etc. er benutzen will. Bei der Dokumentklasse
bleibt im Menü unklar, welche Klassen (KOMA-Script, Beamer etc.)
verwendet werden. Weiterhin gibt es genau eine Brief-, Artikelklasse
usw. Während bei der Auswahl von Buch, Artikel und Bericht die
KOMA-Script-Klassen benutzt werden, wird bei der Auswahl von Brief die
Klasse letter
eingebunden. Ich würde mir entweder mehr
Auswahlmöglichkeiten oder eine bessere Bezeichnung im Menü
wünschen. Die Auswahl des Zeichensatzes birgt einen Bug. Wählt der
Nutzer Sonstiges
als Zeichensatz (Was soll das sein?), so
ergibt sich im Dokument die Ausgabe \usepackage[%
\title{}
, d.h. hier fehlt eine schließende Klammer und LaTeX
wird beim Übersetzen auf die Nase fallen. Das Menüfeld
Schriftgröße
bietet zum einen eine Vorauswahl, lässt sich aber
auch frei beschreiben. Der Grund wird mir nicht so recht
klar. Schließlich sind als Papiergröße nur A4, A5 und A6
gelistet. Gerade die gängigere Letter-Größe fehlt.
Für den regelmäßigen Schreiber von LaTeX-Texten empfiehlt sich ein
Template. Diese Datei sollte im Verzeichnis
~/.config/geany/templates/files liegen und die
Dateiendung .tex
besitzen. In dem Falle kann die Vorlage
über Datei -> Neu (aus Vorlage) gewählt werden.
Schließlich kann Geany bestehende Dateien öffnen. Dabei liest
der Editor die Datei einmal komplett durch und versucht, Informationen
zu extrahieren. Diese finden sich in der linken Fläche
Symbole
. Dort sind Kommandos, Abschnittsüberschriften, Labels
etc. gelistet. Ich finde, gerade die Auflistung der
Abschnittsüberschriften hinterlässt mehr Verwirrung als Klarheit. Denn
zum einen sind diese alphabetisch geordnet und dann auch getrennt nach
Überschriftsebenen. Mir wäre es lieber, wenn sie nach dem Vorkommen im
Text geordnet wären. Die Liste der Umgebungen ist für mich ebenfalls
ohne Nutzwert, denn diese ist wieder alphabetisch geordnet und
verzeichnet nur den Namen der Umgebung (itemize, figure, table
etc.).
Nun kommt der große Moment, wo wir Text eingeben können. Doch schon
die Eingabe einer Überschrift erscheint schwierig. Ich fand keine
Hilfe bei der Eingabe, außer der bereits oben erwähnten Auswahlliste
bei der Eingabe von drei Buchstaben. Doch gerade auf einer deutschen
Tastatur führt die häufige Eingabe des Backslash bei mir zu Schmerzen
in der Hand. Daher versuche ich das zu umgehen und Geany ist dann
direkt körperlich anstrengend. Umgebungen können mittels des Menüs
eingegeben werden. Meines Wissens gibt es hierfür keine standardmäßige
Tastaturkombination. Wenn man sich eine anlegt, wird die Arbeit
zumindest ein wenig erleichtert. Jedoch wäre es sehr wünschenswert,
wenn bei der Auswahl einer Liste gleich ein erstes \item
eingefügt würde und bei der table
-Umgebung könnten
ähnlich zu AUCTeX gleich diverse Optionen abgefragt werden.
Beim Mathesatz sieht die Lage nicht viel besser aus. Im wesentlichen muss jedes Zeichen per Hand eingegeben werden. Das ist eine Menge Tipparbeit und recht umständlich. Gerade für Anfänger kann ich daher Geany nicht empfehlen. Denn ich vermute, die werden schnell gefrustet sein.
Alles in allem ist Geany für mich der erste Editor, den ich im wesentlichen für nicht benutzbar halte (wohlgemerkt für meine Zwecke!). Außer wenigen kleinen Änderungen in einer Datei möchte ich keine größeren Änderungen an einer LaTeX-Datei vornehmen müssen. Denn das fühlt sich umständlich an und wird in meinem Fall mit der Zeit schmerzvoll.
Die LaTeX-Suite für den Editor vim war mein Einstieg in die LaTeX-Welt unter GNU/Linux. Denn ich nutz(t)e vim und da lag es nahe, den für LaTeX-Dokumente zu verwenden. Jedoch fühlte sich die Bearbeitung der Texte immer irgendwie umständlich an. Daher ging ich damals schnell auf die Suche nach Alternativen. Im folgenden will ich euch die Grundprinzipien mal näherbringen.
Wie AUCTeX sollte auch die LaTeX-Suite ein Teil des Paketmanagements sein. Im Idealfalle lässt es sich direkt nach der Installation nutzen. Bei Debian, Ubuntu und den abgeleiteten Distributionen ist eventuell Handarbeit nötig. Denn diese aktivieren das Paket nicht sofort. Der Nutzer muss auf der Kommandozeile den Befehl vim-addons install latex-suite (oder als Root vim-addons -w install latex-suite) eingeben. Damit werden diverse Symlinks in das .vim-Verzeichnis gelegt. Wer es lieber manuell hat, kann den Anweisungen auf der Download-Seite folgen. Im wesentlichen ist da nur das Paket herunterzuladen, zu entpacken und schließlich müssen die Dateien an die richtige Stelle kopiert werden.
Die LaTeX-Suite sollte nun (La)Tex-Dateien beim Öffnen
erkennen. Das ist jedoch nicht immer der Fall. Die wichtigste
Einstellung ist dabei filetype plugin on
. Sie sollte
entweder in der globalen oder zumindest in der lokalen vimrc gesetzt
sein. Damit werden dann die Dateien mit den üblichen Endungen korrekt
identifiziert und die LaTeX-Suite steht zur Verfügung. Die Autoren der
Software empfehlen weiterhin folgende Einstellungen zu setzen.
set grepprg=grep\ -nH\ $*
filetype indent on
let g:tex_flavor=’latex’
Die erste Zeile benutzt das Programm grep mit Optionen, die
den Dateinamen mit anzeigen. Diese Angabe benötigt LaTeX-Suite für die
Verarbeitung bestimmter Informationen. Die zweite Zeile bringt
automatische Einrückung des Quellcodes und erhöht so die Lesbarkeit
des Codes. Ab der Version 7 von vim werden Dateien mit der Endung
.tex
als Plain-TeX behandelt und die LaTeX-Suite steht
nicht zur Verfügung. Meist wird diese Endung auch für LaTeX-Dateien
verwendet (Wer es besser machen will, nutzt .ltx
.). Daher
empfiehlt sich diese Einstellung für alle, die die Endung
.tex
für die LaTeX-Dateien nutzen.
Beim Öffnen einer leeren Datei passiert zunächst nichts. Wenn ihr
die grafische Version des Vim benutzt, dann seht ihr drei neue
Menüeinträge. Am einfachsten ist es, nach meiner Auffassung, mit
i in den Eingabemodus zu wechseln und dort EDO
einzugeben. Dann erscheint das Grundgerüst einer LaTeX-Datei versehen
mit Markern der Art: <+..+>
. Diese könnt ihr mit
der Tastenkombination Strg+j anspringen und in die
entsprechenden Felder Werte eintragen. Gerade bei der Dokumentklasse
wäre es wünschenswert, wenn die Software eine Auswahlliste
präsentieren würde bzw. wenn es eine Art Vervollständigung gäbe. Denn
manuelle Eingabe ist eine Fehlerquelle. Im nächsten Schritt will der
Nutzer vermutlich diverse Pakete einbinden. Dazu reicht es, auf einer
leere Zeile den Paketnamen gefolgt von der Taste F5
einzugeben. LaTeX-Suite macht daraus automatisch die korrekte
Zeile. Bei grafischen Vim könnt ihr auch das Menü verwenden. Ähnlich
wie bei AUCTeX muss der Cursor zum Einfügen eines neuen Paketes an der
richtigen
Stelle stehen.
Wie der jed, kann auch die LaTeX-Suite gut mit Templates umgehen. Legt dazu einfach die entsprechende Datei in das templates-Verzeichnis. Mit dem Befehl :TTemplate name lässt sich das gewünschte Template einbinden.
Schließlich werdet ihr sicher bereits bestehende Dokumente öffnen. Hier liest die Software die Datei ein und versucht, diverse Informationen über eingebundene Pakete, selbst definierte Kommandos etc. zu extrahieren. Die Informationen stehen dann im Dokument in Form von Vervollständigung zur Verfügung.
Nachdem das Dokument geöffnet ist und der Dokumentkopf steht, kann
der eigentliche Text bearbeitet werden. Die LaTeX-Suite bietet diverse
dreibuchstabige Abkürzungen zum Einfügen von Befehlen oder
Umgebungen. Oben sahen wir bereits EDO für die
Dokumentklasse. Der erste Buchstabe zeigt an, ob ein
Environment oder eine Section verwendet wird. Die
weiteren beiden Buchstaben sind dann eine typische Abkürzung. So steht
SSE für section, SPA für part, EIT
für itemize. Standardmäßig setzen die Entwickler beim Mathesatz auf
displaymath
, eqnarray
und auch
equation
. Laut l2tabu
ergibt das falsche Abstände und sollte daher vermieden werden. Will
man daher eher gather
oder align
verwenden,
ist noch ein wenig Konfigurationsarbeit vonnöten. Die einfachste
Möglichkeit, eine der obigen Umgebungen zu nutzen, wäre
gather*+F5 einzugeben. Die Software setzt automatisch die
begin
- und end
-Tags. Das artet schnell in
vie Tippaufwand aus. Daher sollte es ebenso einen dreibuchstabigen
Code geben. Dazu könnt ihr beispielsweise :call IMAP
(’EGA’,“\\begin{gather*}\<CR><++>\<CR>\\end{gather*}<++>”,’tex’)
eingeben. Dann ergibt die Eingabe von EGA folgende
Ausgabe (Der Cursor wird an die korrekte Stelle platziert.):
\begin{gather*}
\end{gather*}<++>
Bei jedem Neustart des Vim müsste die Anweisung jedoch erneut eingegeben werden. Daher empfiehlt es sich die Einstellung permanent zu setzen:
augroup MyIMAPs
au!
au VimEnter * call IMAP (’EGA’,“\\begin{gather*}\<CR><++>\<CR>\\end{gather*}<++>”,’tex’)
augroup END
Nachdem diese Schwierigkeiten überwunden sind, bleibt der Mathesatz eine große Stolperfalle. So existieren zwar für griechische Buchstaben Abkürzungen (Beispiel: `s für σ). Aber standardmäßig gibt es nichts für Integrale, Summen, Sinus/Kosinus etc. Das heißt hier muss der Nutzer anfangs viel Aufwand in eine vernünftige Konfiguration stecken. Ich fände es wesentlich besser, wenn es für oft benutzte Mathbefehle vorkonfigurierte Einstellungen gäbe (oder mich jemand auf diese Einstellungen hinweist).
Der oben beschriebene Aufwand war für mich eines der Hauptgründe, auf LaTeX-Suite als permanenten Editor zu verzichten. Weiterhin fühlt sich die Bearbeitung von Texten irgendwie umständlicher an. Zudem gibt es einiges, was laut Dokumentation problemlos geht und bei einem Test mit Standardeinstellungen eben nicht funktioniert. Dazu gehört:
\dots
.Wahrscheinlich existiert da draußen für jedes Problem eine Lösung. Aber im Allgemeinen habe ich keine Lust, beim Mitschreiben einer Vorlesung von solche einem Bug überrascht zu werden und mich minutenlang mit der Behebung aufzuhalten. Daher habe ich damals gegen die Software entschieden und auch beim Testen für den Blogbeitrag blieb mein Eindruck von damals weitgehend bestätigt.
AUCTeX ist eine weitere Hilfe für die Berabeitung von LaTeX-Dokumenten. Die Software selbst ist kein Editor, sondern eine Art Erweiterung (Modus) für den GNU/Emacs oder XEmacs. Ich nutze den GNU/Emacs und werde daher im weiteren auch nur auf diesen eingehen.
Unter GNU/Linux ist der Modus meist in der Paketverwaltung der
Distribution enthalten. Sucht dort einfach nach dem Wort
auctex
. Wahrscheinlich werdet ihr schnell fündig und könnt das
Paket installieren. Wer es nicht findet oder lieber Software aus den
Quellen baut, kann sich diese herunterladen und mit
dem üblichen Dreisatz (./configure && make &&
make install) an den Start bringen.
Mit Microsoft Windows kenne ich mich nicht so gut aus. Die Webseite von AUCTeX hat jedoch eine gute Anleitung zur Installation. Als ich AUCTeX das letzte Mal unter Windows installierte, ging das ohne Probleme.
Nachdem AUCTeX seinen Weg auf euer System gefunden hat, muss der
Emacs eventuell wissen, dass er den Modus bei LaTeX-Dokumenten aktivieren
soll. Dazu muss die Zeile (load “auctex.el” nil t t)
in
die .emacs
eingetragen werden. Der Schritt ist aber nicht
in jedem Fall nötig. Diverse Distributionen haben globale
Einstellungen, die den Schritt bereits vornehmen.
Des Weiteren ist es sehr nützlich, wenn AUCTeX das Dokument beim Öffnen scannt, um selbst definierte Befehle, eingebundene Pakete etc. zu finden. Hierfür müssen die unten stehenden Zeilen ihren Weg in die Konfigurationsdatei finden:
(setq TeX-auto-save t)
(setq TeX-parse-self t)
Ich schreibe naturgemäß viele mathematische Texte. Daher möchte ich
den Mathemodus in AUCTeX aktiv haben und der RefTeX-Modus zum
Verwalten von Referenzen soll aktiv sein. Daher habe ich meine
.emacs
um die folgenden Zeilen ergänzt.
(add-hook ‘LaTeX-mode-hook ‘LaTeX-math-mode)
(add-hook ‘LaTeX-mode-hook ‘turn-on-reftex)
AUCTeX behandelt Dateien mit den üblichen Endungen (.tex, .ltx, .sty etc.) als LaTeX-Dateien. Hin und wieder habe ich es mit der Endung .latex zu tun. Damit AUCTeX auch hier seine Stärken ausspielen kann, muss ich eine Zeile in der Konfiguration ergänzen.
(add-to-list ‘auto-mode-alist ‘(“\\.latex” . tex-mode))
Nach diesen Einstellungen könnt ihr mit der Bearbeitung der Texte loslegen. Einige finden es unter Umständen schöner, wenn bestimmte Schlüsselworte bunt sind (Syntax Highlighting) oder das der Text nach einer bestimmten Anzahl Zeichen umbrochen wird. Dies lässt sich in den allgemeinen Einstellungen des Editors festsetzen.
Wenn ihr eine leere Datei öffnet, bleibt diese zunächst leer. Mit
der Tastenkombination Strg+c Strg+e öffnet sich im
Minibuffer das Menü zum Einfügen einer neuen Umgebung. AUCTeX erkennt,
dass das Dokument leer ist und bietet automatisch die
document
-Umgebung zum Einfügen an. Wenn das bestätigt
ist, müsst ihr eine Dokumentklasse und eventuell Optionen
angeben. Dann steht der Grundrahmen des Dokuments. Wahrscheinlich
willst du nun weitere Pakete einfügen. Hierzu bewegst du den Cursor an
die korrekte Stelle und kannst dann mittels Strg+c RET usepackage
RET foopaket RET das foopaket einbauen. In der Regel reicht die
Eingabe von usep+TAB und Paketnamen vervollständigt AUCTeX
ebenfalls. Der jjm ist hier jedoch wesentlich
besser. Dort genügt die Tastenkombination Strg+c p, um ein
Paket von einer beliebigen Stelle im Dokument einzubauen. Weiterhin
ergänzt der jjm automatisch fehlende Pakete. Wenn du einen Befehl
nutzt, der zu einem bisher nicht eingebundenen Paket gehört, so fügt
jjm automatisch das Paket ein. Einen derartigen Automatismus würde ich
mir für AUCTeX ebenso wünschen.
Die Bearbeitung des Textes ist recht einfach. Überschriften können
mittels Strg+c Strg+s sowie dem Namen der Überschriften
(chapter
, section
etc.) eingefügt
werden. Bei jeder neuen Überschrift schlägt AUCTeX das Level der
zuletzt benutzten vor. Dies vereinfacht unter Umständen die
Eingabe. Jedoch ist jjm wieder einen Schritt weiter. Wie ich schrieb,
dient dort beispielsweise die Kombination Strg+c s s zum
Einfügen einer neuen section
. Das heißt, nach dem
initialen Aufwand, die Kürzel für die Abschnittsebene zu lernen, ist
eine Überschrift schneller gesetzt. Der Vorteil bei AUCTeX liegt
wiederum beim autoamtischen Setzen eines Labels. Bei jeder Überschrift
schlägt die Software vor, ein Label zu vergeben. Ich benötige jedoch
nur recht selten einen Verweis auf bestimmte Kapitel. Daher stellt das
für mich keinen besonderen Vorteil dar.
Bereits oben beschrieb ich, wie eine Umgebung einzufügen ist (Strg+c Strg+e). Für Befehle ist Strg-c RET nützlich. Im Minibuffer wird der Name eingegeben und eventuelle Parameter abgefragt. Eine weitere Möglichkeit wäre, den Backslash sowie einen Teil des Befehlsnamen einzugeben und mit Meta+TAB zu vervollständigen. Dabei fehlen die geschweiften Klammer und eventuelle Parameter muss der Nutzer selbst eingeben. Insofern finde ich die erste Variante angenehmer. Natürlich steht zur Bearbeitung des Textes die gesamte Palette an Emacs-Features zur Verfügung.
Eine der großen Stärken von AUCTeX bzw. korrekter preview-latex liegt in einer Art Dokumentvorschau. Das Bild oben zeigt einen Ausschnitt des GNU/Emacs mit aktiviertem AUCTeX und einer Vorschau. Die Vorschau zeigt dabei Überschriften, Mathetext sowie einige andere Onjekte an. Gerade bei mathematischen Texten ist die Vorschau ganz nützlich. Denn größere Formeln werden im Mathesatz schnell unübersichtlich. Mit preview-latex behält jeder den Überblick und kann eventuelle Fehler schnell erkennen.
Insgesamt ist AUCTeX mit preview-latex ein guter Modus zur Bearbeitung von LaTeX-Dateien. Gerade für Nutzer, die neu beginnen, ist er sicher eine große Hilfe.