我需要在我的图表列表中包含我的资料来源,例如来自图像文件。
\documentclass[10pt,a4paper]{article}
\usepackage[list=true]{subcaption}
\usepackage{graphicx}
\usepackage{tocloft}
\setcounter{lofdepth}{2}
\makeatletter
\newcommand{\figsourcefont}{\footnotesize}
\newcommand{\figsource}[1]{%
\addtocontents{lof}{%
{\leftskip\cftfigindent
\advance\leftskip\cftfignumwidth
\rightskip\@tocrmarg
\figsourcefont#1\protect\par}%
}%
}
\makeatother
\begin{document}
test
\begin{figure}[h]
\centering
\begin{subfigure}[b]{0.5\textwidth}
\includegraphics[width=\textwidth]{test1.jpg}
\caption{Caption1}
\figsource{Source1}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\includegraphics[width=\textwidth]{test1.jpg}
\caption{Caption2}
\figsource{Source2}
\end{subfigure}
\caption{Caption}
\figsource{Source}
\end{figure}
\listoffigures
\end{document}
这给了我类似这样的结果:
问题:
我需要在条目下方放置源标题和子图,这完全搞乱了。
我需要的:
List of Figures
1 Caption ............................................. 1
URL: http://tex.stackexchange.com
(a) Caption1 ..................................... 2
URL: http://tex.stackexchange.com
(b) Caption2 ..................................... 3
希望有人能帮助我,
谢谢,
答案1
这可能并不完美,因为图片标题在最上面。但它具有 OP 需要的主要功能。\subcaptionbox
使用命令而不是subfigure
环境。需要编译两次。
代码
\documentclass[10pt,a4paper]{article}
\usepackage[list=true]{subcaption}
\usepackage[demo]{graphicx}
\usepackage{tocloft}
\setcounter{lofdepth}{2}
\makeatletter
\newcommand{\figsourcefont}{\footnotesize}
\newcommand{\figsource}[1]{%
\addtocontents{lof}{%
{\leftskip\cftfigindent
\advance\leftskip\cftfignumwidth
\rightskip\@tocrmarg
\figsourcefont#1\protect\par}%
}%
}
\makeatother
\begin{document}
test
\begin{figure}[hbt]
\centering
{\caption{Caption}
\figsource{Source}}
\subcaptionbox{Caption1}
{\includegraphics[width=0.4\textwidth]{test1.jpg}}
\figsource{Source1}
\subcaptionbox{Caption2}
{ \includegraphics[width=0.4\textwidth]{test1.jpg}}
\figsource{Source2}
\end{figure}
\listoffigures
\end{document}
更新:楼主想把标题放在底部。所以这是一个解决方法,添加两个代码片段,\abovecaptionskip
修改后将标题移到图片底部。
\documentclass[10pt,a4paper]{article}
\usepackage[list=true]{subcaption}
\usepackage[demo]{graphicx}
\usepackage{tocloft}
\setcounter{lofdepth}{2}
\makeatletter
\newcommand{\figsourcefont}{\footnotesize}
\newcommand{\figsource}[1]{%
\addtocontents{lof}{%
{\leftskip\cftfigindent
\advance\leftskip\cftfignumwidth
\rightskip\@tocrmarg
\figsourcefont#1\protect\par}%
}%
}
\makeatother
\begin{document}
This is a test and put the caption down below the image.
\begin{figure}[hbt]
\vspace{4cm} % new addon
\addtolength\abovecaptionskip{-5cm} % new addon
\centering
{\caption{Caption}
\figsource{Source}}
\subcaptionbox{Caption1}
{\includegraphics[width=0.4\textwidth]{test1.jpg}}
\figsource{Source1}
\subcaptionbox{Caption2}
{ \includegraphics[width=0.4\textwidth]{test1.jpg}}
\figsource{Source2}
\end{figure}
\listoffigures
\end{document}
答案2
这个简短的解决方案对我来说已经足够好了。我不知道它如何与子图一起工作。无论如何,@Jesse 的格式化效果要好得多。也许我会在我的文档中使用他的。
在序言中:
\usepackage{caption}[2011/11/10]
\newcommand{\figsource}[1]{%
\addtocounter{figure}{-1}
\captionlistentry{source: #1}
}
在文档中:
\begin{figure}[ht]
\centering
\framebox{
\includegraphics{googlecalculator}
}
\caption{The Google Calculator}
\label{fig:googlecalculator}
\figsource{Screen shot of Google calculator.}
\end{figure}
生成: