在创建报告时我想创建一个“框架”来放置照片,一切正常,但我必须执行两次(sc1 和 sc2 处理相同),但 latex“读取”它为相同的,即使它给出了两个不同的图像,我该如何解决这个问题,将 sc1 和 sc2 视为两个不同的图像
我的代码:
Note: here should be just sc1\\
\newcommand\cropped[1]{%
\immediate\write18{convert -trim #1.png #1cropped.png}%
\includegraphics[width=\linewidth]{listings/sc1.png}}
\fbox{\cropped{image}}
Note: here should be just sc2\\
\newcommand\cropped[1]{%
\immediate\write18{convert -trim #1.png #1cropped.png}%
\includegraphics[width=\linewidth]{listings/sc2.png}}
\fbox{\cropped{image}}
正如您所看到的,我想这样做来显示 sc1 和 sc2,但是图片重复了,它显示了两次 sc1。
提前致谢!!!
答案1
欢迎来到 TeX.SX!这里的问题是您定义了两次相同的宏。如果您想重新定义之前已经定义过的宏,则需要使用\renewcommand
而不是\newcommand
进行重新定义。否则将再次使用第一个定义并引发错误。
但是,定义宏通常是为了简化操作,特别是当您想反复执行相同的操作时。因此,定义一次宏(最好在前言中)然后只使用两次可能更合理。
因此,您可以例如使用以下设置(虽然我不完全清楚为什么要裁剪 PNG 文件,然后在 TeX 文件中使用另一张图像):
\documentclass{article}
\usepackage{graphicx}
\newcommand\cropped[2]{%
\immediate\write18{convert -trim #1.png #1cropped.png}%
\includegraphics[width=\linewidth]{#2}}
\begin{document}
Note: here should be just sc1\\
\fbox{\cropped{image}{listings/sc1.png}}
Note: here should be just sc2\\
\fbox{\cropped{image}{listings/sc2.png}}
\end{document}