Tras probar varios paquetes de macros para LaTeX y ver que uno de ellos, xcookybooky me daba las macros que necesitaría para mi pequeño libro de recetas, me he puesto manos a la obra con el mismo.
El formato que quiero lograr en el libro es de un índice principal, diferentes capítulos donde se agrupan recetas similares - postres, primeros platos, ... - y que en el inicio de cada capítulo exista una tabla de contenido con las recetas del mismo.
Para organizar el código fuente, en un primer momento, puesto que no tengo demasiadas recetas, uso un fichero principal desde donde voy incluyendo cada receta con ayuda de la macro \input de LaTeX. Los ficheros de receta siguen la misma estructura con lo cual es muy sencillo generarse una plantilla para usarla.
El código fuente sigue, por tanto este esquema similar al siguiente:
\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{xcookybooky}
\usepackage[spanish]{babel}
\usepackage{hyperref}
\title{Recopilación de recetas}
\begin{document}
\maketitle
\newpage
\tableofcontents
\chapter*{Platos principales}
\addcontentsline{toc}{chapter}{Platos Principales}
\input{src/carnesalsa.tex}
\input{src/espinacasgarbanzos.tex}
\input{src/ensaladillagambas.tex}
\chapter*{Postres}
\addcontentsline{toc}{chapter}{Postres}
\input{src/pannacotta}
\end{document}
Este esquema es muy flexible:En el futuro, se puede cambiar a un sistema donde se use \input por cada fichero capítulo, y a su vez éstos incluyan las recetas.
Para definir las recetas se van a usar el paquete de macros del paquete xcookybooky. Cada receta se escribe en un fichero y se renderiza una página distinta. Para evitar problemas con los estilos, éstos se reinician en cada página. La plantilla de una receta es la siguiente:
\newpage
\thispagestyle{empty}
\begin{recipe}[params]{Título de la receta}
\introduction{
}
\ingredients{
}
\suggestion{
}
\preparation{
\begin{itemize}
\item
\end{itemize}
}
\end{recipe}
Cada receta va en un entorno recipe y es obligatorio ponerle un nombre. Tal como está definido este entorno, las recetas se incorporarán al índice del documento. Al menos es necesario que dentro del entorno se haga uso de las macros \ingredients y \preparation. La primera se usará para definir una tabla con los ingredientes - ojo, que usa la sintaxis de las tablas en Latex. La segunda, para los pasos de la preparación. Aunque existe una macro definida para cada paso (\step), también se puede hacer uso de un entorno enumerate
Un ejemplo de una receta definida completa usando este paquete:
\newpage
\thispagestyle{empty}
\begin{recipe}[source={Bisabuela Isabel}]{Caballas aliñadas}
\introduction{
La caballa fresca es un pescado azul que se consume típicamente en verano. Una manera de prepararla, que gusta mucho en mi famila es aliñada.
}
\ingredients{
\unit[1]{Kg} & Caballa fresca limpias de vísceras y cabeza \\
1 & cebolla mediana \\
&Vinagre \\
&Aceite de oliva
}
\preparation{
\begin{enumerate}
\item Congelar al menos 48 horas las caballas. Aunque no es una preparación cruda, mejor evitar problemas con el anisakis.
\item Sumergir las caballas en un recipiente con agua y vinagre para que se terminen de desangrar.
\item Salar las caballas y meter un par de horas en el frigorífico.
\item Poner a calentar agua con sal en una olla donde podamos sumergir las caballas, esperar que hierva.
\item Sumergir las caballas 4 o 5 minutos hasta que estén cocidas. Tened en cuenta que el tiempo de conción dependerá del tamaño de la caballa, me pasó que alguna de ellas al ser bastante gruesa, no quedaba bien cocida por el centro y tuve que volver a dejarla 2 o 3 minutos.
\item Sacar las caballas de la olla, limpiar la piel - se desprende con facilidad -, abrilas, retirar las espinas y poner en una fuente.
\item Añadir cebolla cortada en aros por encima de la caballa.
\item Aliñar con aceite de oliva y ya está lista para servir.
\end{enumerate}
}
\end{recipe}
Y la imagen del renderizado de esta receta con LaTeX es la siguiente:
El paquete de macros xcookybooky tiene muchísimas más opciones que las esbozadas en esta pequeña entrada, con lo cual, animo a leer su documentación para comprender su uso.