친구의 논문을 도와주던 중 itemize에서 이상한 문제를 발견했습니다. 그녀는 항목별 라벨로 작은 이미지를 사용해야 했고 저는 를 사용하도록 제안했습니다 \item[\includegraphics{xx}]
. 그러나 \includegraphics
그림의 일부 매개변수(예: 크기)를 설정하기 위해 선택적 인수를 사용하면 컴파일이 실패한다는 사실을 발견했습니다 .
대신 하나의 인수만 사용하는 보조 명령을 생성하면 컴파일이 원활하게 진행됩니다.
왜 이런 일이 발생하는지 힌트를 줄 수 있는 사람이 있나요? 그리고 여기서 무슨 일이 일어나고 있는지 이해하기 위해 어디를 봐야 할까요? 매우 감사합니다!
여기 MWE에서는 example.png
작업 디렉터리에 이미지가 필요합니다.
\documentclass{article}
\usepackage{graphicx}
\newcommand{\imagebullet}[1]{\includegraphics[width=0.5cm]{#1}}
\begin{document}
\begin{itemize}
\item[\imagebullet{example.png}] This works
\item[\includegraphics[width=0.5cm]{example.png}] This does not!
\end{itemize}
\end{document}
답변1
TeX는 중괄호처럼 대괄호 중첩을 추적하지 않습니다.
중괄호를 중첩할 때
{.... { .... } ....}
1 2 2 1
그러면 TeX는 어떤 쌍이 함께 속하는지 알 수 있습니다. 대괄호에서는 이런 일이 발생하지 않습니다. 여기서 코드는 단순히 다음 닫는 괄호를 찾습니다. 그래서 TeX는 다음과 같이 쌍을 이룰 것입니다.
\item[\includegraphics[width=0.5cm]{example.png}]
1 2 1
그리고 당신의 명령이 중단됩니다. 이를 방지하려면 중괄호 그룹에서 내부 브래킷을 숨길 수 있습니다.
\item[{\includegraphics[width=0.5cm]{example.png}}]
1{ 2 2 }1
답변2
\imagebullet
모든 항목에 동일한 이미지를 사용하므로 원하는 대로 매크로를 수정 한 후 [\imagebullet]
.
\documentclass{article}
\usepackage{graphicx}
\newcommand{\imagebullet}{$\vcenter{\hbox{\includegraphics[width=0.5cm]{example-image}}}$}
\begin{document}
\begin{itemize}
\item[\imagebullet] This works
\item[\imagebullet] This also works
\end{itemize}
\end{document}