列表 - 提供来源 - 较小的字体,与标题一起,最好在标题上方

列表 - 提供来源 - 较小的字体,与标题一起,最好在标题上方

我想将列表描述 ( \caption{}) 与列表来源分开。我搜索的内容是\footnotesize展示图片 ( \begin{figure})。我搜索的是latex 列表 wiki但我没有找到任何合适的选择。

\documentclass{article}
\usepackage{graphicx}
\usepackage{listings}   
\usepackage[hyphens]{url}

\begin{document}

\begin{figure}[!htb]
    \begin{center}
        \includegraphics[scale=0.64]{example-image-a}
        \textsuperscript{Source and some text to reproduce the problem of non-hyphenation: \url{http://google.com/}}
        \caption{Schema}
        \label{abc}
    \end{center}
\end{figure}

\begin{lstlisting}[style=incode, caption={Verification}, label={lst:verification}]
    let signature = try Signature(base64Encoded: "AAA===")
    let isSuccessful = try clear.verify(with: publicKey, signature: signature, digestType: .sha1)
\end{lstlisting}

\FloatBarrier   


\end{document}

@edit 我按照安德鲁的建议添加了一些最小的工作示例。

答案1

据我了解,您要求在代码清单末尾和标题之前插入额外材料。这里有一个建议,通过extradescription以下键提供新材料lstlisting

示例输出

\documentclass{article}

\usepackage{graphicx}
\usepackage{listings}

\usepackage[hyphens]{url}

\makeatletter
\def\lst@extradescription{\@empty}
\lst@Key{extradescription}{\@empty}{\def\lst@extradescription{#1}%
  \def\lst@captionpos{b}}
\def\lst@makecaption{\ifx\lst@extradescription\@empty\else
  \begin{center}\tiny\lst@extradescription\end{center}\par\fi\@makecaption}
\makeatother

\begin{document}

\begin{lstlisting}[caption={Verification}, label={lst:verification},
  extradescription={\includegraphics[scale=0.64]{example-image-a}\\[1ex]Source
  and text description.\\More of the extra description.}]
    let signature = try Signature(base64Encoded: "AAA===")
    let isSuccessful = try clear.verify(with: publicKey)
\end{lstlisting}

\end{document}

定义附加键的原语lstlisting是内部命令\lst@Key,它将键名、键的默认值和相关代码作为参数。在本例中,我提供了

\lst@Key{extradescription}{\@empty}{\def\lst@extradescription{#1}%
  \def\lst@captionpos{b}}

它创建一个键extradescription并将其参数存储在中\lst@extradescription。它还强制标题位置参数captionpos,以便b标题出现在列表的底部。代码

\def\lst@makecaption{\ifx\lst@extradescription\@empty\else
  \begin{center}\tiny\lst@extradescription\end{center}\par\fi\@makecaption}

用首先在具有字体的环境listings中打印额外描述(如果非空)的代码替换标准字幕制作代码,然后继续使用通常的字幕构建材料。center\tiny

由于上面涉及到@名称中的内部宏,因此有必要在中包含编码\makeatletter...\makeatother

答案2

假设你想区分不同的子图,每个子图都有自己的标题,我建议你看一下子浮点型包。既高度灵活,又在每个图下添加一个较小的标题。作为奖励,您可以引用每个子图。

    \usepackage{graphicx}
    \usepackage{subcaption}

    \begin{figure}
        \centering
        \begin{subfigure}[b]{0.3\textwidth}
            \includegraphics[width=\textwidth]{gull}
            \caption{A gull}
            \label{fig:gull}
        \end{subfigure}
        ~ %add desired spacing between images, e. g. ~, \quad, \qquad, \hfill etc. 
          %(or a blank line to force the subfigure onto a new line)
        \begin{subfigure}[b]{0.3\textwidth}
            \includegraphics[width=\textwidth]{tiger}
            \caption{A tiger}
            \label{fig:tiger}
        \end{subfigure}
        ~ %add desired spacing between images, e. g. ~, \quad, \qquad, \hfill etc. 
        %(or a blank line to force the subfigure onto a new line)
        \begin{subfigure}[b]{0.3\textwidth}
            \includegraphics[width=\textwidth]{mouse}
            \caption{A mouse}
            \label{fig:mouse}
        \end{subfigure}
        \caption{Pictures of animals}\label{fig:animals}
    \end{figure}

结果

相关内容