%20en%20la%20secci%C3%B3n.png)
Estoy creando un libro de cocina y quiero usar una sola macro \recipe (en el ejemplo mínimo a continuación) para insertar el nombre de la receta, las etiquetas de la comida (símbolos personalizados que indican restricciones dietéticas) y también una breve descripción. Tengo una carpeta llamada "foodtags" donde están varios símbolos. Cuando invoco estos símbolos en el texto mediante un comando (a continuación, \foodtags), muestra los símbolos correctos.
Sin embargo, cuando uso el comando \recipe, en lugar de que los símbolos aparezcan alineados a la derecha en la misma línea y del mismo tamaño que la sección, aparece el error "secuencia de control no definida. \foreach ... alcance \let \pgffor@assign @antes@código".
\documentclass[12pt]{memoir}
\usepackage{tikz}
\usepackage{pgffor}
\usepackage{xstring}
\noexpandarg
%Kosher, Vegetarian, Vegan symbols
\newcommand*\foodtag[1]{\includegraphics[width=1em]{foodtags/#1}}
\newcommand*\foodtags[1]{\foreach \x in {#1} {\foodtag{\x}}}
%Recipe
\newcommand{\recipe}[3]{\section{#1 \hfill \foodtags{#2}} #3}
\begin{document}
\recipe{Turkish Style Charoset}{vegan,kosher}{A delicious smooth charoset made with apples, dates, chopped almonds, and wine}
\end{document}
¿Alguna idea de cuál es la raíz de este problema? ¿Es un problema con la interacción del entorno de la Sección y los gráficos? ¿Cómo puedo solucionar esto?
Respuesta1
La razón detrás del problema se analiza enCómo incluir gráficos dentro del nombre de la secciónlo que sugiere usar \protect
para evitar la expansión de comandos como \includegraphics
cuando se escribe en los archivos auxiliares. ¿Por qué? Porque \section
los correos electrónicos eventualmente se incluyen en el ToC, que se lee del .toc
archivo.
En su caso particular, también tiene una secuencia automatizada de gráficos en el título de la sección. Este tipo de procesamiento de listas suele requerir asignaciones, lo que también resulta problemático cuando se trata de unidades seccionales. Como tal, sugeriría lo siguiente para su \recipe
macro:
\newcommand{\recipe}[3]{\section[#1]{#1 \hfill \foodtags{#2}} #3}
Esto evita que el contenido frágil entre en el ToC y al mismo tiempo permite un ToC contextualmente apropiado (si alguna vez es necesario).