在我的许多项目中,我最终都会加入很多外部人物,比如
\begin{figure}[h]
\begin{center}\vspace{1cm}
\includegraphics[width=\linewidth]{something.png}
\caption{An illustration of something.}
\label{fig:foo}
\end{center}
\end{figure}
这些图通常取自其他地方,并采用知识共享许可,其中一些需要注明出处。无论哪种方式,我通常会在文档末尾附上所有图的表格,例如
\begin{tabular}{ |c|c|c| }
\hline
Figure & Author & License \\
\hline
1 & John Smith / Wikimedia Commons & CC-BY-SA 3.0 \\
\hline
2 & Jane Doe & CC-BY-NC 3.0 \\
\hline
3 & Own Work & Public Domain \\
\hline
\end{tabular}
这样做的问题是:
- 我必须为我做的每个项目做表格标记;
- 归属和许可信息与源代码中其适用的数字相差甚远,使得维护更加困难;
- 如果图形编号或图形的相对顺序发生变化,我需要手动更新表格。
我知道的存在\listoffigures
,但它似乎没有我想要的那种格式;我不需要页码和标题,我更希望将图表列在像上面那样的表格中。
在我理想的用例中,我希望能够在创建图形时以内联方式包含此类信息,例如
\begin{figure}[h]
\begin{center}\vspace{1cm}
\includegraphics[width=\linewidth]{something.png}
\caption{An illustration of something.}
\label{fig:foo}
\author{Jane Doe}
\license{CC-BY-NC 3.0}
\end{center}
\end{figure}
然后\tableoffigures
在项目末尾添加类似这样的内容,以自动生成表格。我还希望能够将其放在一个单独的包中,这样我就可以\usepackage
进行必要的更改(我知道这在技术上是一个不同的问题,但我不知道如何修改解决方案以包含此功能)。
我该怎么做?欢迎提供其他提示;我对 LaTeX 不太了解,因此如果使用不同的环境或单独的包更容易实现这一点,\begin{figure}
那就没问题了。
答案1
看看,如果足以在图中指示图像来源,例如通过使用包copyright
:
\documentclass{article}
\usepackage{geometry}
\usepackage[font=small, labelfont=bf]{caption}
\usepackage{copyrightbox}
\usepackage{xurl}
\begin{document}
\begin{figure}[ht]
\centering
\copyrightbox[b]{\includegraphics[width=0.3\linewidth]{example-image-duck}}%
{Source: \url{http://tex.stackexchange.com/}}
\caption{Caption title}
\label{fig:right}
\end{figure}
\begin{figure}[ht]
\centering
\copyrightbox[r]{\includegraphics[width=0.3\linewidth]{example-image-duck-portrait}}%
{Source: \url{http://tex.stackexchange.com/}}
\caption{Caption title}
\label{fig:right}
\end{figure}
\end{document}
答案2
您可以将author
和license
信息添加到\listoffigures
(我不明白为什么您不想要图表标题和它们所在的页面列表)。这是您的 MWE 的修订版
\begin{center}\vspace{1cm}
\includegraphics[width=\linewidth]{something.png}
\caption{An illustration of something.} %% puts it in the LoF
\label{fig:foo}
\author{Jane Doe}
\addtocontents{lof}{Author Jane Doe}
\license{CC-BY-NC 3.0}
\addtocontents{License CC-BY-NC 3.0}
\end{center}
\end{figure}
当然,您可以更改\author
和\license
宏以自动将参数添加到 LoF。
任何状况之下不要center
在浮点数中使用环境因为它会增加不需要的垂直空间,所以只需使用\centering
。