[Tex/LaTex] document class for a restaurant menu

document-classespackagestemplates

I'd like to typeset a restaurant menu. What would be a good document class or package to use? I'm hoping for an answer similar to this thread: Survey or questionnaire document class or package?

Best Answer

I don't think there is a predefined class for menus, but you can create you own format using any of the existing document classes; after all, the menu is a unique feature that identifies a restaurant.

Just as an idea (which admits many improvements), in the following example I used the web-O-mints fonts and the background package to create a frame that will be placed in all the pages of the menu. A simple tabular* environment was used to format each food group.

\documentclass[12pt]{article}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[textwidth=12cm,centering]{geometry}
\usepackage[x11names]{xcolor}
\usepackage{background}

\newcommand*\wb[3]{%
  {\fontsize{#1}{#2}\usefont{U}{webo}{xl}{n}#3}}

% The page frame
\SetBgColor{Goldenrod3}
\SetBgAngle{0}
\SetBgScale{1}
\SetBgOpacity{1}
\SetBgContents{%
\begin{tikzpicture}
\node at (0.5\paperwidth,0) {\wb{80}{34}{E}\rule[60pt]{.2\textwidth}{0.4pt}%
  \raisebox{55pt}{%
  \makebox[.6\textwidth]{\ \fontsize{24}{29}\selectfont\scshape La Abuela }}%
  \rule[60pt]{.2\textwidth}{0.4pt}\wb{80}{34}{F}};
\node at (2,-0.5\textheight) {\rule{0.4pt}{.8\textheight}};
\node at (19.5,-0.5\textheight) {\rule{0.4pt}{.8\textheight}};
\node at (0.5\paperwidth,-\textheight) {\wb{80}{34}{G}\rule[-10pt]{\textwidth}{0.4pt}\wb{80}{34}{H}} ;
\end{tikzpicture}%
}

% colorize text
\newcommand*\ColText[1]{\textcolor{Goldenrod3}{#1}}

% a tabular* for each food group
\newenvironment{Group}[1]
  {\noindent\begin{tabular*}{\textwidth}{@{}p{.8\linewidth}@{\extracolsep{\fill}}r@{}}
    {\fontsize{24}{29}\selectfont\ColText{#1}}\\[0.8em]}
  {\end{tabular*}}

% to format each entry
\newcommand*\Entry[2]{%
  \sffamily#1 & #2}

% to format each subentry
\newcommand*\Expl[1]{%
  \hspace*{1em}\footnotesize #1}

\pagestyle{empty}

\begin{document}

\begin{Group}{Entradas}
\Entry{Calamares de campo}{9.00} \\
\Expl{Aros muy finos de cebolla y pimiento verde, a nuestro estilo} \\
\Entry{Berenjenas a la cordobesa}{9.95} \\
\Expl{Finas lonchas de berenjenas rebozadas a la cordobesa acompañadas de salsa de miel} \\
\Entry{Huevos estrellados con chistorra}{10.50} \\
\Entry{Cecina de León}{10.70} \\
\Expl{Lonchas muy finas con aceite virgen extra y pimienta recién molida} \\
\end{Group}

\vfill

\begin{Group}{Ensaladas}
\Entry{Ensalada <<La Abuela>>}{9.20} \\ 
\Expl{Piña, manzana y pimiento rojo, con pollo recién asado y una sabrosa y ligera mayonesa} \\
\Entry{Ensalada mediterránea}{8.90} \\ 
\Expl{Lechuga, tomate, cebolla, atún, huevo duro. espárragos y aceitunas} \\ 
\Entry{Salpicón de pollo}{9.50} \\ 
\Expl{Pollo en tiras recién asado con manzana sobre lechuga en juliana, zanahoria rallada y rodajas de tomate, aliñado con una sorprendente y suave salsa de mostaza y yogurt} \\
\Entry{Ensalada de cabra}{10.70} \\ 
\Expl{Queso de cabra templado con mermelada de tomate sobre una variedad de lechugas frescas} \\
\end{Group}

\vfill

\begin{Group}{Carnes}
\Entry{Carpaccio de buey}{13.50} \\
\Expl{Acompañado de lascas de parmesano y rucuta} \\
\Entry{Parrillada ibérica}{16.70} \\
\Expl{Pluma, presa y secreto} \\
\Entry{Patatas con guarnición para acompañar}{3.75} \\
\Expl{Fritas caseras} \\
\Entry{Patatas con guarnición para acompañar}{3.50} \\
\Expl{Patatas paja} \\
\end{Group}

\end{document}

And here's the result:

enter image description here

Related Question