如何格式化“for 循环”以打印(伪)代码列表

如何格式化“for 循环”以打印(伪)代码列表

我想写一个“for”语句,但不确定如何使用 LaTeX 执行此操作。我想做的是:

对于 k = 1,k++,而 k < i

在 LaTeX 中编写这个内容的正确方法(或至少是体面的方法)是什么?

让我重新表述一下:

我并不想真正创建一个循环,我只想打印一行作为 for 循环开头的文本。我不确定该怎么做。

答案1

如果你只是想打印声明,那么就像

\[
\text{for $k = 1$, $k{+}{+}$, while $k < i$}
\]

会将其设置为显示格式(记得\usepackage{amsmath}在序言中调用)。如果它是 中的一个项目enumerate,那么

\item for $k = 1$, $k{+}{+}$, while $k < i$

足够了。

唯一微妙的点是将+符号括在括号之间,以避免不必要的间距。

答案2

如果你有兴趣排版算法代码,有很多选择。您可以使用algpseudocodealgorithmicx。以下是来自algorithmicx文档(添加了循环伪代码):

enter image description here

\documentclass{article}
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\begin{document}
\begin{algorithm}
  \caption{Euclid’s algorithm}\label{euclid}
  \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}
      \For{\texttt{<some condition>}}
        \State \texttt{<do stuff>}
      \EndFor
      \State \Return $b$\Comment{The gcd is b}
    \EndProcedure
  \end{algorithmic}
\end{algorithm}
\end{document}

algorithms提供了algorithm浮动环境。

另外,事实上的程序排版包是listings。示例、用法和语言支持非常丰富。listings文档

答案3

\documentclass{article}
\usepackage{algorithm,algpseudocode}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

\begin{document}

\begin{algorithm}[H] 
\caption{Sum of Array Elements}
\label{alg:loop}
\begin{algorithmic}[1]
\Require{$A_{1} \dots A_{N}$} 
\Ensure{$Sum$ (sum of values in the array)}
\Statex
\Function{Loop}{$A[\;]$}
  \State {$Sum$ $\gets$ {$0$}}
    \State {$N$ $\gets$ {$length(A)$}}
    \For{$k \gets 1$ to $N$}                    
        \State {$Sum$ $\gets$ {$Sum + A_{k}$}}
    \EndFor
    \State \Return {$Sum$}
\EndFunction
\end{algorithmic}
\end{algorithm}

\end{document}

enter image description here

答案4

以 Werner 上面给出的例子为例。它对我来说不起作用,直到我像编码一样加上括号。像这样:

\For{\texttt{<some condition>}} {
        \State \texttt{<do stuff>}
      \EndFor
}

相关内容