将标题放在图片上方,将来源放在图片下方,并附上两个脚注

将标题放在图片上方,将来源放在图片下方,并附上两个脚注

我想要做的是这样的:

Figure 1: Caption of the figure.
_____________________________________

Figure
_____________________________________
Source: Images from Jhon¹ and Joseph²

(Bottom of the page)
_______
1 Source of one image    
2 Source of the other image

我尝试了很多方法,但没有一个能像这样工作。我使用的代码实现了这个结果(但有一些“错误”)是这样的:

\newcommand{\footnotelabeled}[2]{%
\addtocounter{footnote}{1}%
\footnotetext[\thefootnote]{\label{#1}#2}}
\newcommand{\footnoteref}[1]{$^{\ref{#1}}$}

\afterpage{
\begin{figure}[htbp]
\centering
\includegraphics[width=0.9\linewidth]{fig.png}
\caption{Caption of the figure}
\label{fig:test}
\end{figure}
\begingroup
\captionof*{figure}{Source: Images from Jhon\footnoteref{one} and Joseph\footnoteref{another}}
\footnotelabeled{one}{Source of one image}
\footnotelabeled{another}{Source of the other image}
\endgroup}

但是,这会导致两个源位于同一个图形,而下一个图形没有源(因为它位于顶部的另一个图形)的情况。

有任何想法吗?

答案1

\queuepage 的工作方式与 \afterpage 类似,但是只有在前一个 \queuepage 完成后才会运行。

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{afterpage}
\usepackage{mwe}

\newcounter{nextqpage}% incremented when queued
\newcounter{lastqpage}% incremented when used

\newcommand{\queuepage}[1]% #1 = same as \afterpage
{\global\long\expandafter\def\csname queuepage\thenextqpage\endcsname{%
   \stepcounter{lastqpage}%
   \ifnum\value{lastqpage}<\value{nextqpage}\relax%
     \afterpage{\csname queuepage\thelastqpage\endcsname}
   \fi
   #1}%
 \ifnum\value{lastqpage}=\value{nextqpage}\relax%
   \afterpage{\csname queuepage\thelastqpage\endcsname}%
 \fi
 \stepcounter{nextqpage}%
}

\newcommand{\footnotelabeled}[2]{%
\addtocounter{footnote}{1}%
\footnotetext[\thefootnote]{\label{#1}#2}}
\newcommand{\footnoteref}[1]{$^{\ref{#1}}$}

\begin{document}

\queuepage{%
\begin{figure}[t]
\caption{Caption of the figure}
\label{fig:test}
\medskip
\centering
\includegraphics[width=0.9\linewidth]{example-image-a}
\par\medskip
Source: Images from Jhon\footnoteref{one} and Joseph\footnoteref{another}
\end{figure}
\footnotelabeled{one}{Source of one image}
\footnotelabeled{another}{Source of the other image}}

\lipsum[1]

\queuepage{%
\begin{figure}[t]
\caption{Caption of the figure}
\label{fig:test2}
\medskip
\centering
\includegraphics[width=0.9\linewidth]{example-image-b}
\par\medskip
Source: Images from Jhon\footnoteref{third} and Joseph\footnoteref{fourth}
\end{figure}
\footnotelabeled{third}{Source of one image}
\footnotelabeled{fourth}{Source of the other image}}

\lipsum[2-12]

\end{document}

第 2 和第 3 页

答案2

最佳做法是永远不要在浮动元素内使用页面脚注。您可以使用\foonotemark浮动元素内和浮动元素外的更“正统”的方式显示脚注,或者使用包中的浮动元素内显示\footnotetext[2]{Source of the other image}普通脚注。\footnote{}ftnxtra

但是,请记住,浮动环境中的内容会像风一样瞬息万变,而所有在/留在外面的内容都会像石头一样静止不动。如果浮动移至其他页面,脚注仍会保留在周围文本的位置(可能在几页之前)。

此外,当浮动元素位于同一页面底部时,脚注可能会默认出现在浮动元素上方(“头注”)。也有软件包可以解决这个问题(参见示例),但主要问题仍然存在:浮动元素有浮动的坏习惯。

因此,您有两种解决方法:

(1)手动移动figure代码,使其显示在同一页面。但在最终版本之前,你永远无法确定这一点。

(2)使用包强制浮动代码自动移动到下一页的顶部afterpage。(比较安全,但请注意,之前未处理的浮动可能会强制图形超出范围)。示例:

在此处输入图片描述

\documentclass{article}
\usepackage[paperheight=5in,paperwidth=6in,top=.3in,margin=.5in]{geometry}
                        % custom page size for the example 
\usepackage{graphicx}   % you know ...
\usepackage{lipsum}     % dummy text
\usepackage{afterpage}  % put something after the actual page
\usepackage{ftnxtra}    % footnote in floats, sections, ... 
\usepackage{fnpos}      % Avoid floats under the footnotes
                        % or use \usepackage{stfloats} and \fnbelowfloat

\begin{document}

\begin{figure}[htp]
\caption{The caption of A}\centering
\includegraphics[width=.5\linewidth,height=1in]{example-image-a}\par
Source: Images from Jhon\footnote{Source of one image}
and Joseph\footnote{Source of the other image}
\end{figure}

% use \afterpage if you know that only can be placed in the next page  
\afterpage{
\begin{figure}
\caption{The caption of B}\centering
\includegraphics[width=.5\linewidth,height=1in]{example-image-b}\par
Source: Images from Peter\footnote{About Peter}
and David\footnote{Some about David}
\end{figure}
}

\lipsum[1-2] % dummy text

\end{document}

答案3

您可以使用该copyrightbox包来实现这一点。它可以与hyperrefcleveref和配合使用tablefootnotes,前提是您的图形设置在表格environment and you use\captionof{figure]{…} from thecaption` 包中:

\documentclass{article}

\usepackage{graphicx}
\usepackage{caption}
\usepackage{afterpage}
\usepackage{mwe}
\usepackage{copyrightbox}

\usepackage[pdfborder = 0 0 0,colorlinks]{hyperref}
\usepackage{cleveref}
\crefformat{footnote}{footnote\,\textsuperscript{#2#1#3}}
\Crefformat{footnote}{Footnote\,\textsuperscript{#2#1#3}}
\labelcrefformat{footnote}{\textsuperscript{#2#1#3}}
\crefmultiformat{footnote}{footnotes\,\textsuperscript{#2#1#3}}{\textsuperscript{,#2#1#3}}{\textsuperscript{,#2#1#3}}{\textsuperscript{,#2#1#3}}
\Crefmultiformat{footnote}{Footnotes\,\textsuperscript{#2#1#3}}{\textsuperscript{,#2#1#3}}{\textsuperscript{,#2#1#3}}{\textsuperscript{,#2#1#3}}
\labelcrefmultiformat{footnote}{#2\textsuperscript{#1}#3}{#2\textsuperscript{,#1}#3}{#2\textsuperscript{,#1}#3}{#2\textsuperscript{,#1}#3}
\usepackage{tablefootnote}

\begin{document}

\lipsum[2]
We see in\labelcref{one} and in \cref{two}…

\begin{table}[!ht]
  \captionof{figure}{Caption of the figure}
  \label{fig:test}
  \medskip
  \centering
  \copyrightbox[b]{\includegraphics[width=0.9\linewidth]{example-image-a}}
  {Source: Images from Jhon\tablefootnote{\label{one}Source of one image} and Joseph\tablefootnote{\label{two}Source of the other image}}
\end{table}
\afterpage{
  \begin{table}[t]
    \captionof{figure}{Caption of the figure}
    \label{fig:test}
    \medskip
    \centering
    \copyrightbox[b]{\includegraphics[width=0.9\linewidth]{example-image-b}}
    {Source: Images from Jhon\tablefootnote{\label{third}Another source of one image} and Joseph\tablefootnote{\label{fourth}Further source of the other image}}
  \end{table}
}
And now, grouped references\labelcref{third,fourth}!
\lipsum[3-4]
\end{document} 

在此处输入图片描述

在此处输入图片描述

答案4

以下是使用强制位置对浮动放置的稍微修改的视图 - 使用[H]来自的浮动说明符float

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx,float,etextools,lipsum,refcount}

\makeatletter
\newcommand{\markfootnote}{\edef\@currentlabel{\thefootnote}}
\g@addto@macro{\footnotemark}{\markfootnote}
\makeatother

\begin{document}

\lipsum[1]

\begin{figure}[H]
  \caption{Caption of the figure}
  \vspace{\belowcaptionskip}
  \centering
  \includegraphics[width=0.9\linewidth]{example-image}
  \par\medskip
  Source: Images from Jhon\footnotemark\label{fnmarkA} and Joseph\footnotemark\label{fnmarkB}.
  \AfterGroup{%
    \footnotetext[\getrefnumber{fnmarkA}]{Source of one image}%
    \footnotetext[\getrefnumber{fnmarkB}]{Source of the other image}%
  }
\end{figure}

\lipsum[2-10]

\end{document}

浮动,嗯...浮动,因此并不总是能确定它们是否会落在调用它们的页面上。因此,强制放置到[H]ere 可以避免这种情况。

但是,浮动通常会吞噬脚注。可以通过调用脚注文本放置After(...Group构造)来完成此操作。\begin{figure}\end{figure}

\arabic请注意,如果您将脚注编号设置为除以下以外的任何值,则上述设置将不起作用refcount通过数字\footnotetext作为参考。

相关内容