섹션에 사용자 정의 기호(그래픽)를 삽입하는 중 오류가 발생했습니다.

섹션에 사용자 정의 기호(그래픽)를 삽입하는 중 오류가 발생했습니다.

나는 요리책을 만들고 있는데 단일 매크로 \recipe(아래 최소 예)를 사용하여 레시피 이름, 음식 태그(식이 제한을 나타내는 사용자 정의 기호) 및 간단한 설명을 삽입하고 싶습니다. 다양한 기호가 있는 "foodtags"라는 폴더가 있습니다. 명령(아래, \foodtags)을 통해 텍스트에서 이러한 기호를 호출하면 올바른 기호가 표시됩니다.

그러나 \recipe 명령을 사용할 때 기호가 섹션과 같은 줄과 같은 크기에 오른쪽 정렬되어 나타나는 대신 "정의되지 않은 제어 시퀀스. \foreach ...reach \let \pgffor@sign" 오류가 발생합니다. @이전@코드".

\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}

이 문제의 근본 원인이 무엇인지 아시나요? 섹션 환경과 그래픽의 상호 작용에 문제가 있습니까? 이 문제를 어떻게 해결하나요?

답변1

문제의 원인은 다음에서 논의됩니다.섹션 이름 안에 그래픽을 포함하는 방법이는 보조 파일에 기록될 때 \protect와 같은 명령 확장을 피하기 위해 사용하는 것을 제안합니다. \includegraphics왜? \sections는 결국 파일에서 읽혀지는 ToC에 포함되기 때문입니다 .toc.

특별한 경우에는 섹션 제목에 자동으로 그래픽 순서가 추가됩니다. 이러한 유형의 목록 처리에는 일반적으로 할당이 필요하며 이는 섹션 단위를 처리할 때도 문제가 됩니다. 따라서 귀하의 \recipe매크로에 대해 다음을 제안합니다.

\newcommand{\recipe}[3]{\section[#1]{#1 \hfill \foodtags{#2}} #3}

이렇게 하면 깨지기 쉬운 콘텐츠가 ToC에 들어가는 것을 방지하는 동시에 상황에 맞는 ToC(필요한 경우)를 허용합니다.

관련 정보