Я использую package listings
и хочу объединить a listing
и a figure
в один float. Например, я использую listings
следующее:
\begin{lstlisting}[language=XML,float=h,label=lst:transition_selector_example,
basicstyle=\footnotesize\ttfamily,tabsize=2,
caption={Example SCXML document used to illustrate transition selection optimization strategies}]
<scxml>
<state id="A">
<transition target="B" event="e1" id="transition1"/>
<transition target="B" event="e2" id="transition2"/>
<transition target="B" event="e2" id="transition3"/>
</state>
<state id="B">
<transition target="A" event="e3" id="transition4"/>
</state>
</scxml>
\end{lstlisting}
Позже у меня появилась фигура с буквой \includegraphics
, например, следующая:
\begin{figure}[p]
\centering
\includegraphics[width=1.00\textwidth]{chapters/3/figures/firefox-transitionSelector}
\caption{Results of Transition Selection optimization strategy in Firefox}
\label{fig:firefox-transitionSelector}
\end{figure}
Я хотел бы, чтобы листинг стал частью рисунка, чтобы он имел тот же номер ссылки, что и рисунок, и был представлен на странице как единый объединенный графический объект.
Я был бы очень признателен за любые рекомендации относительно того, как это сделать.
решение1
listings
и \includegraphics
каждый из них может быть включен в принципе где угодно. Следующий пример размещает их один над другим, также возможно размещение рядом, если вы поместите список на мини-страницу с шириной, которая позволяет графике располагаться сбоку.
\begin{figure}[p]
\centering
\includegraphics[width=1.00\textwidth]{chapters/3/figures/firefox-transitionSelector}
\begin{lstlisting}[language=XML,float=h,label=lst:transition_selector_example,basicstyle=\footnotesize\ttfamily,tabsize=2,caption={Example SCXML document used to illustrate transition selection optimization strategies}]
<scxml>
<state id="A">
<transition target="B" event="e1" id="transition1"/>
<transition target="B" event="e2" id="transition2"/>
<transition target="B" event="e2" id="transition3"/>
</state>
<state id="B">
<transition target="A" event="e3" id="transition4"/>
</state>
</scxml>
\end{lstlisting}
\caption{Results of Transition Selection optimization strategy in Firefox}
\label{fig:firefox-transitionSelector}
\end{figure}
решение2
Чтобы добавить к ответу Дэвида (на случай, если вам нужны «подписи»):
\documentclass{article}
\usepackage{subcaption}
\usepackage{listings}
\usepackage[demo]{graphicx}
\begin{document}
\begin{figure}
\begin{subfigure}[b]{\textwidth}
\begin{lstlisting}[%
language=XML,%
label=lst:transition_selector_example,%
basicstyle=\footnotesize\ttfamily,%
tabsize=2
]
<scxml>
<state id="A">
<transition target="B" event="e1" id="transition1"/>
<transition target="B" event="e2" id="transition2"/>
<transition target="B" event="e2" id="transition3"/>
</state>
<state id="B">
<transition target="A" event="e3" id="transition4"/>
</state>
</scxml>
\end{lstlisting}
\subcaption{Example SCXML document used to illustrate\ldots}
\end{subfigure}
\vspace{2em}
\begin{subfigure}[b]{\textwidth}
\includegraphics[width=1.00\textwidth]{chapters/3/figures/firefox-transitionSelector}
\subcaption{A screenshot (??)}
\end{subfigure}
\label{fig:firefox-transitionSelector}
\caption{Results of Transition Selection optimization strategy in Firefox}
\end{figure}
\end{document}