我有一个图片列表,我使用“foreach”循环将其插入到我的文档中。有没有办法在 foreach 循环中为每个图片生成标签?我有以下代码,但运行它会产生标题,但没有标签!
我的示例如下:
\foreach \x in \imageNames
{
\begin{figure}[H]
\centering
\includegraphics[max size={\textwidth}{\textheight}]{figures/TGA-DTG/\x.png}
\caption{\x}
\foreach \y in {1,2, 3,...,64}
{\label{fig:DTG\y}}
\end{figure}
}
序言部分有:
\newcommand*{\imageNames}
{AFCO 01-JAN-19,AFCO 02-NOV-18,AFCO 03-APR-19,AFCO 03-JAN-19,%
AFCO 03-OCT-18,AFCO 05-DEC-18,AFCO 05-JUL-18,AFCO 05-MAR-19,%
AFCO 05-NOV-18,AFCO 06-FEB-19,AFCO 09-JAN-19,AFCO 12-DEC-18,%
AFCO 13-DEC-18,AFCO 14-MAR-19,AFCO 14-OCT-18,AFCO 17-DEC-18,%
AFCO 24-NOV-18,AFCO 27-DEC-18,AFCO 27-NOV-18,AFCO 28-FEB-19,%
AFCO 30-DEC-18,AFCO 30-JAN-19,AUS 100,BLUESCOPE,BUSTY BLEND,BUSTY FINES,%
BUSTY IN BASE,COKE BREEZE BLEND,COLOMBIAN,FYF,IJmuiden 50CRI,MORFA 02-FEB-21,%
MORFA 14-JAN-21,MORFA 16-JAN-21,MORFA 18-JAN-21,MORFA 21-JAN-21,MORFA 29-JAN-21,%
MORFA FLOAT 02-FEB-21,MORFA FLOAT 23-02-21,MORFA FLOAT 3-FEB-21,%
MORFA FLOAT 27-JAN-21,MORFA FLOAT 28-JAN-21,MORFA FLOAT 30-JAN-21,%
MORFA GROUND 1,MORFA GROUND 2,MORFA GROUND 3,MORFA GROUND 4,%
MORFA GROUND 5,MORFA GROUND 6,MORFA GROUND 7,MORFA SINK 23-FEB-21,%
MORFA SINK 24-FEB-21,MORFA SINK 27-JAN-21,MORFA SINK 28-JAN-21,%
MORFA SINK 30-JAN-21,MORFA WK 1,MORFA WK 39,MORFA WK 4,MORFA WK 8,POLISH 100,%
REF 3 BLEND 2,RISUN 10-JUL-18,RISUN ERINI P,US LV 50-50,US MV}
答案1
我首先尝试使用 TikZ 数组,但没有引号它就变成了数字,而有了引号它就不会被视为数组。
我尝试了 xstring。虽然可以工作,但效果并不好。
哦,LaTeX 不喜欢在队列中有那么多浮点数。
\documentclass[draft]{article}
\usepackage[export]{adjustbox}
\usepackage{tikz}
\usepackage{xstring}
\newcommand*{\imageNames}
{,AFCO 01-JAN-19,AFCO 02-NOV-18,AFCO 03-APR-19,AFCO 03-JAN-19,%
AFCO 03-OCT-18,AFCO 05-DEC-18,AFCO 05-JUL-18,AFCO 05-MAR-19,%
AFCO 05-NOV-18,AFCO 06-FEB-19,AFCO 09-JAN-19,AFCO 12-DEC-18,%
AFCO 13-DEC-18,AFCO 14-MAR-19,AFCO 14-OCT-18,AFCO 17-DEC-18,%
AFCO 24-NOV-18,AFCO 27-DEC-18,AFCO 27-NOV-18,AFCO 28-FEB-19,%
AFCO 30-DEC-18,AFCO 30-JAN-19,AUS 100,BLUESCOPE,BUSTY BLEND,BUSTY FINES,%
BUSTY IN BASE,COKE BREEZE BLEND,COLOMBIAN,FYF,IJmuiden 50CRI,MORFA 02-FEB-21,%
MORFA 14-JAN-21,MORFA 16-JAN-21,MORFA 18-JAN-21,MORFA 21-JAN-21,MORFA 29-JAN-21,%
MORFA FLOAT 02-FEB-21,MORFA FLOAT 23-02-21,MORFA FLOAT 3-FEB-21,%
MORFA FLOAT 27-JAN-21,MORFA FLOAT 28-JAN-21,MORFA FLOAT 30-JAN-21,%
MORFA GROUND 1,MORFA GROUND 2,MORFA GROUND 3,MORFA GROUND 4,%
MORFA GROUND 5,MORFA GROUND 6,MORFA GROUND 7,MORFA SINK 23-FEB-21,%
MORFA SINK 24-FEB-21,MORFA SINK 27-JAN-21,MORFA SINK 28-JAN-21,%
MORFA SINK 30-JAN-21,MORFA WK 1,MORFA WK 39,MORFA WK 4,MORFA WK 8,POLISH 100,%
REF 3 BLEND 2,RISUN 10-JUL-18,RISUN ERINI P,US LV 50-50,US MV,}
\begin{document}
\foreach \y in {1,...,32}% too many will crash
{
\begin{figure}[p]% only [p] can fill an entire page
\centering
\count1=\y\relax
\count2=\numexpr \y+1\relax
\StrBetween[\count1,\count2]{\imageNames}{,}{,}[\x]%
\includegraphics[max size={\textwidth}{\textheight}]{figures/TGA-DTG/\x.png}
\caption{\x}
\label{fig:DTG\y}
\end{figure}
}
\end{document}
只是为了好玩,这使用了一个\csname
数组。
请注意,在宏名称中包含数字的唯一方法是使用\csname ... \endcsname
。
\documentclass[draft]{article}
\usepackage[export]{adjustbox}
\usepackage{tikz}
\newcommand*{\imageNames}
{AFCO 01-JAN-19,AFCO 02-NOV-18,AFCO 03-APR-19,AFCO 03-JAN-19,%
AFCO 03-OCT-18,AFCO 05-DEC-18,AFCO 05-JUL-18,AFCO 05-MAR-19,%
AFCO 05-NOV-18,AFCO 06-FEB-19,AFCO 09-JAN-19,AFCO 12-DEC-18,%
AFCO 13-DEC-18,AFCO 14-MAR-19,AFCO 14-OCT-18,AFCO 17-DEC-18,%
AFCO 24-NOV-18,AFCO 27-DEC-18,AFCO 27-NOV-18,AFCO 28-FEB-19,%
AFCO 30-DEC-18,AFCO 30-JAN-19,AUS 100,BLUESCOPE,BUSTY BLEND,BUSTY FINES,%
BUSTY IN BASE,COKE BREEZE BLEND,COLOMBIAN,FYF,IJmuiden 50CRI,MORFA 02-FEB-21,%
MORFA 14-JAN-21,MORFA 16-JAN-21,MORFA 18-JAN-21,MORFA 21-JAN-21,MORFA 29-JAN-21,%
MORFA FLOAT 02-FEB-21,MORFA FLOAT 23-02-21,MORFA FLOAT 3-FEB-21,%
MORFA FLOAT 27-JAN-21,MORFA FLOAT 28-JAN-21,MORFA FLOAT 30-JAN-21,%
MORFA GROUND 1,MORFA GROUND 2,MORFA GROUND 3,MORFA GROUND 4,%
MORFA GROUND 5,MORFA GROUND 6,MORFA GROUND 7,MORFA SINK 23-FEB-21,%
MORFA SINK 24-FEB-21,MORFA SINK 27-JAN-21,MORFA SINK 28-JAN-21,%
MORFA SINK 30-JAN-21,MORFA WK 1,MORFA WK 39,MORFA WK 4,MORFA WK 8,POLISH 100,%
REF 3 BLEND 2,RISUN 10-JUL-18,RISUN ERINI P,US LV 50-50,US MV}
\newcounter{index}
\foreach \x in \imageNames {% create \imageName1, \imageName2. ...
\stepcounter{index}%
\expandafter\xdef\csname imageName\theindex\endcsname{\x}%
}
\begin{document}
\listoffigures
\foreach \y in {1,...,32}% too many will crash
{
\begin{figure}[p]% only [p] can fill an entire page
\centering
\includegraphics[max size={\textwidth}{\textheight}]{figures/TGA-DTG/\csname imageName\y\endcsname.png}
\caption{\csname imageName\y\endcsname}
\label{fig:DTG\y}
\end{figure}
}
\end{document}
答案2
您正在使用\foreach
PGF/TikZ 代码库,这意味着您可以使用count
可选的附加功能来跟踪已处理的图像数量。
\documentclass[draft]{article}
%\url{https://tex.stackexchange.com/q/654216/86}
\usepackage{lipsum}
\usepackage{pgffor}
\newcommand*{\imageNames}
{AFCO 01-JAN-19,AFCO 02-NOV-18,AFCO 03-APR-19,AFCO 03-JAN-19,%
AFCO 03-OCT-18,AFCO 05-DEC-18,AFCO 05-JUL-18,AFCO 05-MAR-19,%
AFCO 05-NOV-18,AFCO 06-FEB-19,AFCO 09-JAN-19,AFCO 12-DEC-18,%
AFCO 13-DEC-18,AFCO 14-MAR-19,AFCO 14-OCT-18,AFCO 17-DEC-18,%
AFCO 24-NOV-18,AFCO 27-DEC-18,AFCO 27-NOV-18,AFCO 28-FEB-19,%
AFCO 30-DEC-18,AFCO 30-JAN-19,AUS 100,BLUESCOPE,BUSTY BLEND,BUSTY FINES,%
BUSTY IN BASE,COKE BREEZE BLEND,COLOMBIAN,FYF,IJmuiden 50CRI,MORFA 02-FEB-21,%
MORFA 14-JAN-21,MORFA 16-JAN-21,MORFA 18-JAN-21,MORFA 21-JAN-21,MORFA 29-JAN-21,%
MORFA FLOAT 02-FEB-21,MORFA FLOAT 23-02-21,MORFA FLOAT 3-FEB-21,%
MORFA FLOAT 27-JAN-21,MORFA FLOAT 28-JAN-21,MORFA FLOAT 30-JAN-21,%
MORFA GROUND 1,MORFA GROUND 2,MORFA GROUND 3,MORFA GROUND 4,%
MORFA GROUND 5,MORFA GROUND 6,MORFA GROUND 7,MORFA SINK 23-FEB-21,%
MORFA SINK 24-FEB-21,MORFA SINK 27-JAN-21,MORFA SINK 28-JAN-21,%
MORFA SINK 30-JAN-21,MORFA WK 1,MORFA WK 39,MORFA WK 4,MORFA WK 8,POLISH 100,%
REF 3 BLEND 2,RISUN 10-JUL-18,RISUN ERINI P,US LV 50-50,US MV}
\begin{document}
\foreach[count=\y] \x in \imageNames
{
\begin{figure}[p]
\centering
Float: \x, Figure: \y
% \includegraphics[max size={\textwidth}{\textheight}]{figures/TGA-DTG/\x.png}
\caption{\x}
\label{fig:DTG\y}
\end{figure}
\lipsum[1]
}
\end{document}
我在每个图之间添加了一个虚拟段落(来自lipsum
包),以避免“太多浮动”问题。我认为这是你在这里试图解决的问题的一个次要问题。此外,由于我没有实际的图像,所以我注释掉了\includegraphics
。