Schneller TeXen mit Autohotkey, Autokey, Textexpander & Co – Teil 1
In zwei kurzen Beiträgen hatte ich bereits Tools vorgestellt, die Tastaturkürzel in komplette Textteile expandieren [1] [2]. Auch wenn viele Editoren geeignete Shortcuts mitbringen, sehe ich persönlich noch immer eine immense Zeitersparnis beim Einsatz dieser Shortkey-Expander. Heute möchte ich auf mein aktuelles Setup mit Autohotkey eingehen, in weiteren Teilen stelle ich dann Autokey für Linux und Textexpander für den Mac vor.
Die Installation von Autohotkey [3] ist ziemlich einfach. Beim ersten Start bietet das Tool an, eine entsprechende .ahk Datei anzulegen. Meine .ahk Datei habe ich im Dropbox-Ordner abgelegt und lediglich eine Verknüpfung zu dieser Datei im Autostart-Ordner angelegt. Vorteil ist, dass dadurch sowohl auf meinem Desktop als auch auf meinem Laptop immer die aktuellste Version verfügbar ist.
Schauen wir uns mal einige Definitionen an. Die ersten Kürzel, die ich definiert habe, waren die für die Eingabe von Dokumentstrukturen.
:*:s#::\section{{}{}}{LEFT} :*:ss#::\subsection{{}{}}{LEFT} :*:sss#::\subsubsection{{}{}}{LEFT}
Die Syntax bedeutet: Wann immer der User s# drückt, füge ein \section{} in den Text ein und gehe ein Zeichen nach links. Die geschweiften Klammern der \section Befehle müssen dabei escaped werden, da geschweifte Klammern in Autohotkey selbst aktive Zeichen sind.
Da es in den meisten Dokumenten auch einen standardmäßigen Satz an Klassen- und Paketdefinitionen gibt, lassen sich diese auch wunderbar per Kürzel definieren:
:*:doc#::\documentclass{{}scrartcl{}}`r`r\begin{{}document{}}`r`r`r\end{{}document{}} :*:st#::\usepackage[utf8]{{}inputenc{}}`r\usepackage[T1]{{}fontenc{}}`r\usepackage{{}booktabs{}}`r :*:u#::\usepackage[]{{}{}}{LEFT}
Da zu einer öffnenden Klammer auch in 99,99% der Fälle auch die schließende Klammer gehört, lässt sich hier auch ein Shortcut definieren, die pro Nutzung zwei Tastendrücke spart:
:*:(::(){LEFT} :*:{::{{}{}}{LEFT} :*:[::[]{LEFT}
Erhebliches Einsparpotential bieten auch Kürzel für die Textauszeichnung, \begin{}/\end{} und die verschiedenen Aufzählungen:
:*:bf#::\textbf{{}{}}{LEFT} :*:it#::\textit{{}{}}{LEFT} :*:tt#::\texttt{{}{}}{LEFT} :*:b#::\begin{{}{}}{LEFT} :*:e#::\end{{}{}}{LEFT} :*:desc#::\begin{{}description{}}`r\item[]`r\item[]`r\item[]`r\end{{}description{}}{UP 3}{LEFT} :*:enum#::\begin{{}enumerate{}}`r\item `r\item `r\item `r\end{{}enumerate{}}{UP 3} :*:item#::\begin{{}itemize{}}`r\item `r\item `r\item `r\end{{}itemize{}}{UP 3} :*:i#::\item{Space} :*:di#::\item[]{LEFT}
Da sich mit Autohotkey auch einfache Datumsberechnungen ausführen lassen und ich einige Male am Tag das aktuelle oder gestrige Datum benötige, habe ich diese auch als Kürzel abgelegt.
:*:g#:: Gestern = %A_Now% EnvAdd, Gestern, -1, Days FormatTime, Gestern, %Gestern%, dd.MM.yyyy Send, %Gestern% Return :*:ä#:: Heute = %A_Now% FormatTime, Heute, %Heute%, dd.MM.yyyy Send, %Heute% Return :*:m#:: Morgen = %A_Now% EnvAdd, Morgen, 1, Days FormatTime, Morgen, %Morgen%, dd.MM.yyyy Send, %Morgen% Return
Im nächsten Teil geht es dann darum, wie sich diese Kürzel unter Linux definieren lassen.