使用图像作为 itemize 的标签

使用图像作为 itemize 的标签

在帮助一位朋友完成她的论文时,我遇到了 itemize 的一个奇怪问题。她需要使用一些小图像作为 itemize 的标签,我建议使用\item[\includegraphics{xx}]。然而,我们发现使用 的可选参数来\includegraphics设置图形的某些参数(即大小)会导致编译失败。

相反,如果我创建一个只接受一个参数的辅助命令,则编译会顺利进行。

有人能告诉我为什么会发生这种情况吗?也许可以告诉我去哪里了解这里发生了什么?非常感谢!

example.png这里有一个 MWE,它需要你工作目录中的图像:

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

在此处输入图片描述

相关内容