## Tuesday, January 25, 2011

### Pragmatic Diary with LaTeX

A while ago, I decided to write something like a personal diary, and wanted to do it with LaTeX. I wanted to have a pragmatic environment, which is established when typing a simple command.

Before I describe the implementation, I would like to describe this environment:
• When I run the command diary, an instance of kate opens a file named with the current date (e.g. 2010-12-09.tex, located in a directory, let's say $DIARY) • If this file exists, then a warning appears, and it is opened • Otherwise, this file is created • This file contains a skeleton for a LaTeX document, where I immediately can start writing down my thoughts • In the terminal-area of kate, I simply have to type pdflatex 2010-12-09.tex to compile the tex-file into a PDF. And here is how I implemented it. The template for the LaTeX-skeleton looks as follows (file named$DIARY/template.tex):

\input{./macros.tex}
\begin{document}
\title{}
\maketitle

Here goes the text
\end{document}


The file $DIARY/macros.tex contains document and package definitions, that define the common properties for all tex-files, and hence a unique look for all resulting pdf-files. Example: \documentclass[paper=a5,pagesize=auto]{scrartcl} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} \usepackage{amsmath} \usepackage{listings}  The script, that launches when typing diary is the following ($DIARY/diary.sh):

#!/bin/bash
TODAY=$(date +"%Y-%m-%d") BASE=~/Dokumente/texs TEXFILE=$BASE/$TODAY.tex PDFFILE=$BASE/$TODAY.pdf if [ -f$TEXFILE ]
then
zenity --error --text "Tex-File $TEXFILE already exists!!!" else cp$BASE/template.tex $TEXFILE fi kate$TEXFILE &
cd $BASE pdflatex$TEXFILE
okular $PDFFILE &  Some notes: • zenity simply pops up a dialog box with the given warning • okular is my favorite PDF viewer - in fact it could be any other viewer Finally, I made a softlink to$DIARY/diary.sh in /usr/bin.

By the end of each year I might create a document named diary-201x.pdf, which includes all entries and is a nice compilation of my diary entries. For instance, this could be done with the pdftk. (pdftk *.pdf cat output diary-201x.pdf)

P.S.: You may wonder, why I'm mixing Gnome and KDE software. I'm working with Ubuntu and have some KDE-packages installed. Well, that's my environment, and I'm very fine with that. If you are Ubuntu-User, too, you will find all of the necessary software in the Ubuntu repositories (sudo apt-get install XXX, whereas XXX stands for kate, okular, zenity, pdftkm, etc.)