如何将算法和图形并列在一起?

如何将算法和图形并列在一起?

我怎样才能将算法和图形并列在一起?

说,

XXXXXXXXXXX FIG ONE
XXXXXXXXXXX FIG ONE
XXXXXXXXXXX FIG ONE
XALGORITHMX FIG TWO 
XXXXXXXXXXX FIG TWO

请仅发布可行的解决方案 - 我是 LaTeX 新手。还请告知要包含哪些包。

答案1

为了正确引用数字,您可以使用caption包裹它提供了。即使您没有在环境中声明内容,也会\captionof{figure}{<caption>}将标题排版<caption>为环境的标题。这非常有用,因为不允许在 (非浮点)内排版 (或浮点) 。此外,figurefigurefigureminipagelistings包裹逐字排版大量语言,并可以扩展以包含您自己的格式。

这是一个展示构造以及引用能力(如果需要)的小例子。

在此处输入图片描述

\documentclass{article}
\usepackage[margin=1in]{geometry}% http://ctan.org/pkg/geometry
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{listings}% http://ctan.org/pkg/listings
\usepackage{caption}% http://ctan.org/pkg/caption
%\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\lipsum[1]

\medskip

\noindent\begin{minipage}{.5\textwidth}
\begin{lstlisting}[language=C,caption={My first program},label=mylisting]
#include <stdio.h>

main()
{
  printf ("Hello World!\n");
}
\end{lstlisting}
\end{minipage}%
\begin{minipage}[t]{.5\textwidth}
  \centering
  \rule{0.3\textwidth}{50pt}
  \captionof{figure}{This is a figure caption.} \label{myfig1}
  \bigskip
  \rule{0.25\textwidth}{70pt}
  \captionof{figure}{This is another figure.} \label{myfig2}
\end{minipage}

\medskip

On the left is Listing~\ref{mylisting}. On the right is Figures~\ref{myfig1} and~\ref{myfig2}.

\lipsum[2]

\end{document}

为了使用更伪代码的列表,您可能对 [algorithmicx软件包 ][algorithmicx-pkg] 感兴趣。但是,为了使其完全发挥上述功能,您还需要algorithm定义浮点数(和相关浮点数计数器)的 [ 软件包 ][algorithm-pkg] algorithm。现在您可以使用了\captionof{algorithm}{<caption>}。这是一个类似的例子:

在此处输入图片描述

\documentclass{article}
\usepackage[margin=1in]{geometry}% http://ctan.org/pkg/geometry
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\usepackage{caption}% http://ctan.org/pkg/caption
%\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\lipsum[1]

\medskip

\noindent\begin{minipage}{.5\textwidth}
\captionof{algorithm}{Euclid’s algorithm}\label{myalg}
\begin{algorithmic}[1]
  \Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
    \State $r\gets a\bmod b$
    \While{$r\not=0$}\Comment{We have the answer if r is 0}
      \State $a\gets b$
      \State $b\gets r$
      \State $r\gets a\bmod b$
    \EndWhile\label{euclidendwhile}
    \State \textbf{return} $b$\Comment{The gcd is b}
  \EndProcedure
\end{algorithmic}
\end{minipage}%
\begin{minipage}[t]{.5\textwidth}
  \centering
  \rule{0.3\textwidth}{50pt}
  \captionof{figure}{This is a figure caption.} \label{myfig1}
  \bigskip
  \rule{0.25\textwidth}{70pt}
  \captionof{figure}{This is another figure.} \label{myfig2}
\end{minipage}

\medskip

On the left is Algorithm~\ref{myalg}. On the right is Figures~\ref{myfig1} and~\ref{myfig2}.

\lipsum[2]

\end{document}

lipsum提供了一些虚拟文本,同时geometry仅用于增加文本块大小(通过margin=1in)。虚拟图形用黑色矩形框表示,但您可能对graphicx包裹用于插入您的图像。

根据算法或图形的大小,还可以调整垂直对齐。

答案2

您可以使用\begin{minipage}{.5\textwidth}...\end{minipage}可以并排排列的 minipages(),或者可以检查wrapfig一般通过文本流包装图像的包。

答案3

我通常将minipage其放在tabular环境中。要包含图形,您需要使用graphicx

\begin{tabular}{cc}
\raisebox{.1cm}{\begin{minipage}{.5\textwidth}
Algorithm
\end{minipage}} &
\begin{minipage}{.5\textwidth}
\includegraphics[width=\textwidth]{figurename.eps}
\end{minipage}
\end{tabular}

您可能还需要使用它\raisebox来调整一个框或另一个框的高度。

\begin{tabular}{cc}
\raisebox{-.1cm}{\begin{minipage}{.5\textwidth}
Algorithm
\end{minipage}} &
\begin{minipage}{.5\textwidth}
\includegraphics[width=\textwidth]{figurename.eps}
\end{minipage}
\end{tabular}

相关内容