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.

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