如何将算法融入模板?

如何将算法融入模板?

我的目标是将这个长的单行算法放入双列页面布局中,就像下面显示的一样,分为 3 行,但我无法使用,\State而且我不知道为什么以及如何实现这一点。

  \documentclass{article}
    \usepackage[]{algorithm2e}

\begin{document}

     \begin{algorithm}[H]

     \caption{Computing Levenshtein edit distance }
     \label{editComputing}

    $D(i,j)=min{D(i-1,j-1)+\gamma(A<i> \to B<j>),
                D(i-1,j)+ \gamma(A<i> \to \Lambda),
                D(i,j-1) +\gamma(\Lambda \to B<j>)}$

    \end{algorithm}
\begin{document} 

答案1

不要使用ere 说明符,因为设计[H]上不允许在模式下使用。此外,我使用了一些s 来提供跨三行函数的适当布局。twocolumn\phantom

\State请注意algorithmicxalgpseudocde包裹,不是algorithm2e. 而是algorithm2e使用行尾\; 没有A \State

为了使数学显示合适,最好使用\langle...\rangle而不是<...。>

在此处输入图片描述

\documentclass[twocolumn]{article}

\usepackage{algorithm2e,lipsum,amsmath}

\begin{document}

\lipsum[1]

\begin{algorithm}
  \DontPrintSemicolon
  \caption{Computing Levenshtein edit distance }
  $D(i,j) = \min\bigl\{D(i-1,j-1) + \gamma(A\langle i\rangle \to B\langle j\rangle),$\;
  $\phantom{D(i,j) = \min\bigl\{} D(i-1,j) + \gamma(A\langle i\rangle \to \Lambda),$\;
  $\phantom{D(i,j) = \min\bigl\{} D(i,j-1) + \gamma(\Lambda \to B\langle j\rangle)\bigr\}$\;
\end{algorithm}

\lipsum[2]

\end{document}

答案2

我不知道有什么理由不使用align*这个;需要amsmath

\documentclass[twocolumn]{article}
\usepackage{algorithm2e}
\usepackage{amsmath}

\begin{document}
\noindent Some text preceding.
\begin{algorithm}
  \DontPrintSemicolon
  \caption{Computing Levenshtein edit distance }
  \abovedisplayskip=0pt
  \begin{align*}
  D(i,j) = \min\bigl\{& D(i-1,j-1) + \gamma(A\langle i\rangle \to B\langle j\rangle),\\
  & D(i-1,j) + \gamma(A\langle i\rangle \to \Lambda),\\
  & D(i,j-1) + \gamma(\Lambda \to B\langle j\rangle)\bigr\}
  \end{align*}
\end{algorithm}

\noindent Some text following.
  \begin{align*}
  D(i,j) = \min\bigl\{& D(i-1,j-1) + \gamma(A\langle i\rangle \to B\langle j\rangle),\\
  & D(i-1,j) + \gamma(A\langle i\rangle \to \Lambda),\\
  & D(i,j-1) + \gamma(\Lambda \to B\langle j\rangle)\bigr\}
  \end{align*}
\end{document}

示例代码的输出

包含该行\abovedisplayskip=0pt是为了消除算法块顶部的多余空间;这在“受限”环境中不会自动发生。(包含代码的第二个实例是为了证明这种调整不会持续。)

编辑: 上方的空间下面的算法默认为\smallskip。提供的更改此设置的命令是\SetAlgoSkip{...},建议值为medskipbigskip。请注意没有反斜杠;这些不是控制序列,不能用实际尺寸值替代。

相关内容