Kochbuch mit LaTeX verfassen
Dienstag, 15.12.2009 um 17:20 UhrMoin liebe Lesergemeinde,
lang ist’s her, dass ich mal was von mir hören ließ. Deswegen soll es nun heute wieder eine Vorlage für LaTeX Liebhaber geben.
Vor einiger Zeit ist mir der Zettelwust in der Küche mit den Rezepten auf die Nerven gegangen, hier mal ein Rezept hingekritzelt, da mal vergessen, das Rezept zu benennen und man weiß nicht mehr was man da eigentlich kochen wollte. Da kam ich auf die Idee das ganze mit einem eigenen Design zu digitalisieren und damit zu ordnen und vor allem auch durchsuchbar zu machen – die Idee zu einem eigenen Kochbuch war geboren.
Da ich nunmal ein Liebhaber von LaTeX bin, lag der Schluss nahe, ein Kochbuch in LaTeX zu verfassen. Zumal mir Word/OpenOffice/Scribus eher ungeeignet dafür erschienen, da man hier auch mit Vorlage immer noch formatieren muss.
Es gibt bereits einige Kochbuchklassen in einigen LaTeX Paketen, jedoch hat mir sowohl der Aufbau des Kochbuches als auch der Quelltext für ein Rezept nicht gefallen. So habe ich mir meine eigene Rezeptumgebung zusammen programmiert. Da ich bisher mit richtiger LaTeX-Programmierung sehr wenig am Hut hatte (und trotz viel Übung immer noch habe) hat das Ganze doch geraume Zeit gedauert. Nun möchte ich euch das Ergebnis präsentieren.
Hier gibt’s erstmal das Paket zum Download: Kochbuch Vorlage
So sieht ein Beispielrezept aus:
Wenn das Zip Archiv entpackt wird, befinden sich mehre Dateien und Ordner darin. Die PDF im Hauptordner ist eine vorkompilierte Beispieldatei. In die Ordner ./bilder/ und ./rezepte/ kommen jeweils die Bilder für die Rezepte und die jeweiligen Tex-Dateien für jedes einzelne Rezept. Die cook.sty im Hauptordner ist meine Style-Datei, die alle notwendigen Befehle und Umgebungen für mein Rezeptbuch beinhaltet. Diese muss sich immer in dem selben Ordner wie die cookbook.tex (Hauptdokument) befindet.
Öffnet man dieses Hauptdokument (cookbook.tex) ist das in dem Beispiel sehr übersichtlich. Je mehr Rezepte, desto länger wird auch dieses Dokument. In der zweiten Zeile der cookbook.tex sieht man wie die Style-Datei (cook.sty) eingebunden wird. In den folgenden Zeilen werden verschiedene Schriftarten für abwechslungsreiche Rezeptüberschriften geladen. Will man dies nicht, können diese Zeilen auskommentiert/gelöscht werden. Im Allgemeinen ist für die Nutzung der Schriftarten das Paket texlive-fonts-extra nachzuinstallieren. Nach den Schriftarten erfolgt die Deklaration der PDF Metadaten und der Titelseite.
Will man sein Rezeptbuch in verschiedene Kategorien unterteilen, kann man das wie in der Datei zu sehen, wie gewohnt mit den \section-Befehlen tun. Bei zweiseitigem Druck ist darauf zu achten, wie Titelseiten und Rezeptbeginn angeordnet sind (meistens auf der ungerade Seite). Mit \newpage kann man entsprechende Leerseiten einfügen. Rezepte werden an der entsprechenden Stelle mit dem Befehl \input{./rezepte/….tex} eingebunden.
Im Ordner ./rezepte/ liegt bereits ein Beispiel Rezept, wie es aussehen könnte.
Die Datei dummy.txt im Hauptordner des Kochbuchs listet alle Befehle mit ihren Parametern/Optionen auf. Diese Datei ist sehr wichtig, wenn man sein Kochbuch weiter individualisieren will (Bilder, mehrseitige Rezepte, Tipps, Anmerkungen, etc.). Ich bitte darum diese Datei aufmerksam zu lesen.
Bevor ihr eigene Rezepte in das Kochbuch einfügt, solltet ihr überprüfen, ob alles einwandfrei funktioniert. Eventuell sind einige Pakete nachzuinstallieren. Ich habe eine vollständige Textlive Distri installiert, so dass ich nicht weiß, welche Pakete in einer Standardinstallation über die Ubuntuquellen nicht enthalten sind. Sollte es nicht funktionieren, könnte es helfen im Hauptdokument alle Schriftarten und im Beispielrezept den optionalen Parameter in der Rezeptdeklaration >>[font=\rustfamily]<< zu entfernen.
Viel Spaß beim Testen, weitere Anregungen/Fehler/Lob bitte in die Kommentare


@Sonja:
Paketname: cuisine, Doku: http://mirror.ctan.org/macros/latex/contrib/cuisine/cuisine.pdf
Paketname: cooking, Doku: http://mirror.ctan.org/macros/latex/contrib/cooking/cooking.pdf
Einbinden tust du die Pakete zB mit \usepackage{cooking}
Ich hoffe da ist was dabei, was du gut findest (Sind jetzt nur zwei auf die Schnelle). Geschmäcker sind halt verschieden
Hi,
Ich wuenschte ich koennte so gut Latex programmieren wie du;
SChoen gemacht. Leider habe ich andere Vorstellungen was den Style betrifft und muss vermutlich selber was basteln. Wuerdest du mir verraten wie ich die wenigen “Kochbuchklassen in einigen LaTeX Paketen” finden kann?
und noch ein drittes Hallo,
vielen Dank für die schnelle Anwort. Ich hatte bei meiner zweiten Mail gar nicht an den Anfang geschaut, weil ich noch nichts vor Dir vermutet hatte.
Dein Hinweis mit den geschweiften Klammern war auch richtig, denn ich hatte vorher schon mal genau die Lösung probiert, allerdings ohne die schließende Klammer von underline zu löschen.
Nochmals Danke und weiterhin guten Appetit!
Nochmals hallo,
ich ziehe Frage 2 zurück. Hab’s selbst rausgefunden, nachdem ich Dummy.txt genau gelesen habe. Die Zeile im Rezept muß dann lauten:
\timerecipe[Stunde]{ca. 1}
@Andreas:
zu 1. das ist nur in der cook.sty änderbar. Dazu öffnest du diese im Editor und gehst zur Zeile 149:
\underline{\textit{#1}}\\[.2cm]% Zutat kursiv und unterstrichen hinzufügen
Diese änderst du wie folgt (achte auf die korrekte Anzahl an geschweiften Klammern):
\textit{#1}\\[.2cm]% Zutat kursiv hinzufügen
zu 2.
Dies ist einfacher zu lösen:
\timerecipe[Stunde]{1}
In den eckigen Klammern ist ein optionaler Parameter. Es geht als zB auch in Minuten auszudrücken.
\timerecipe[Minuten]{54}
Schaue bitte in die dummy.txt. Dort sind alle Parameter und optionalen Möglichkeiten erklärt
Hallo,
ich schließe mich den anderen an: dies ist eine sehr gute Idee.
Da ich nur rudimentäre Kenntnisse von LaTeX habe, möchte ich noch zwei Fragen stellen:
1. wie kann ich bei den Zutaten die Kursivschrift behalten, aber das Unterstreichen weglassen?
2. ebenfalls bei den Zutaten, was muß ich dort tun, damit ca. 1 Stunde (also im Singular) und nicht ca. 1 Stunden (wie jetzt) gedruckt wird.
Danke für eine Antwort, wobei Frage 2 natürlich ziemlich pedantisch ist.
Das geht relativ einfach. Am Beispiel des im Paket mitgelieferten Beispielrezeptes (Buletteneintopf) kann ich dir das gerne zeigen (Rezept gekürzt):
\begin{recipe}[font=\rustfamily]{Buletteneintopf}
\timerecipe{ca. 1}
\personcount{4}
\ingredient{100 ml Milch}
\step
Toast würfeln.
\step
Hack, Speck, Ei, …
\step
Restliche Frühlingszwiebeln …
\recipenewpage
\ingredient{2 Scheiben Toastbrot oder}
\ingredient{1 Brötchen}
\step
Gurken in…
\step
Buletten zugeben. …
\graphic{./bilder/buletteneintopf.jpg}
\end{recipe}
Du machst also einfach mit \recipenewpage eine neue Rezeptseite und beginnst dann wieder mit Zutaten. Schon sind die auf der nächsten Seite.
Hallo,
Klasse Vorlage ! Genau das habe ich gesucht.
Ein kleines Problem habe ich allerdings, das ich noch nicht selbst lösen konnte:
Bei manchen Rezepten ist die Zutatenliste länger als der Zubereitungstext. Dann wird kein Seitenumbruch erzeugt. Bisher konnte ich mir nur damit behelfen, die Seitengröße auf z.b. Din A4 zu ändern, oder den Zeilenabstand in der Zutatenliste zu verkleinern… Leider geht das dann zur Last der Optik.
Falls es möglich ist, auch bei der Zutatenliste einen Umbruch zu erzeugen würde ich mich über etwas Hilfestellung sehr freuen.
Viele Grüße
Julian
Hi. Danke für den Post, das könnte ziemlich genau sein was ich brauche.
Allerdings bekomme ich die cookbook.tex nicht kompiliert, irgendwie scheint pdflatex nicht so anzuspringen wie gewünscht.
Ich nutze allerdings auch eh Kubuntu 9.04, hoffe es liegt nicht an unterschiedlichen Versionen.
Kann ich dir die log mal schicken oder posten, vielleicht liest du was raus?
Gruß
Danke auch! Sowas suche ich schon seit einer ganzen Weile.
@Marcus: natürlich kannst du nach Belieben Rezepte einfügen oder umsortieren oder was auch immer. Jedes Rezept wird in einer eigenen Datei gespeichert und im Hauptdokument mit einem \input Befehl eingebunden. Das input kannst du natürlich setzen wann und wohin du auch immer willst. Sollte also kein Problem sein. Falls du nicht klar kommst sag Bescheid.
Hallo,
ewig habe ich gesucht nach einer Möglichkeit meine Rezeptsammlung zu verwalten. Habe mich jetzt entschieden, das mit OpenOffice als einfaches TextDokument zu machen. Aber noch ist vielleicht nichts verloren……da ich aber noch nie in meinem leben mit Latex gearbeitet habe, stellt sich für mich die Frage, ob Deine Lösung “dynamnisch” ist, ich also wann immer mir danach ist Rezepte einfügen kann, oder ob das mehr so eine einmalige Sache ist. Und ich dann wieder 5 Jahre Zettel sammele und mir eine 2 Latex version schraube..;-) ?
Hi,
den Artikel finde ich genial. Das Kochbuch werde ich auf jeden Fall mal ausporbieren. Es hat sich allerdings ein kleiner Rechtsschreibfehler eingeschlichen.
Das Paket heißt “texlive-fonts-extra”. Dir ist da ein “t” zu viel reingerutscht.
Du hast einen Rechtschreibfehler in der Headline “verfasseM”;-)…die Idee klingt interessant.
Das ist ja fast Gedankenübertragung. Ich hatte auch schon mal die Idee doch mal die lose Blattsammlung in der Küche in ein schön ordentlich aufgeräumtes LaTex Dokument zu verwandeln. Bei der Suche nach geeigneten Paketen hatte ich aber noch nichts zufrieden stellendes gefunden. Das scheint sich jetzt erledigt zu haben. Danke.