我想写一个“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
如果你有兴趣排版算法代码,有很多选择。您可以使用algpseudocode
由algorithmicx
。以下是来自algorithmicx
文档(添加了循环伪代码):
\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}
答案4
以 Werner 上面给出的例子为例。它对我来说不起作用,直到我像编码一样加上括号。像这样:
\For{\texttt{<some condition>}} {
\State \texttt{<do stuff>}
\EndFor
}