我想将列表描述 ( \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}