我的算法类遵循伪代码的严格指导原则。假设我有以下内容:
y = 0
for i = n downto 0
y = a_i + x * y
我希望它在页面上左对齐并带有行号。该algorithmic
包似乎接近我想要的,但它不符合我的类的伪代码约定。有没有一种非常简单的方法可以将其破解到 LaTeX 中?
我刚刚学习 LaTeX,因此如果这是一个简单的问题,我深感抱歉。
答案1
如果我是你,绝对地确定算法包不是可行的方法,我会使用类似这样的方法:
\begin{align*}
&y = 0 \\
&\text{for $i = n$ downto 0} \\
& \hspace{1cm} y = a_i + x * y
\end{align*}
这导致
答案2
我从未使用过 Latex 中的算法包,我所做的是使用环境verbatim
并在文本编辑器中手动缩进代码。
\begin{verbatim}
1 y=0
2 for i = n downto 0
3 y = a_i + x * y
\end{verbatim}
这会将您在环境中输入的内容准确显示在输出中,包括空格。如果您需要花哨的 Latex(如下标等),请检查包alltt
。
答案3
编辑2:抱歉,从您的代码摘录和另一个答案来看,我不知何故以为您想要逐字文本。
我已经成功使用了algorithmicx
。它可以根据您的需要进行定制。
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\begin{algorithm}
\begin{algorithmic}
\State $y \gets 0$
\For{$i \gets n, 0$}
\State $y \gets a_i + xy$
\EndFor
\end{algorithmic}
\caption{Example algorithm.}
\label{examplealgorithm}
\end{algorithm}
修改 1:查看我的一些旧报告,这里有两个针对环境的示例自定义Verbatim
。有关更多详细信息,请参阅文档 PDF(下面的链接)。
\usepackage{fancyvrb}
\usepackage{color}
\RecustomVerbatimEnvironment{Verbatim}{Verbatim}{fontsize=\small,
frame=single, rulecolor=\color{blue}, framerule=0.5mm, framesep=1mm,
xleftmargin=2mm}
%\RecustomVerbatimEnvironment{Verbatim}{Verbatim}{fontsize=\scriptsize,
%numbers=left, numbersep=8pt, baselinestretch=1, xleftmargin=5mm,
%commandchars=\~\{\}}
\begin{Verbatim}
y = 0
for i = n downto 0
y = a_i + x * y
\end{Verbatim}
原文:我推荐使用软件包Verbatim
中的环境fancyvrb
,不要将其与内置verbatim
环境混淆。它完全满足您的需要。
答案4
由于原始海报没有提到问题到底是什么algorithmic
(“它不遵循我的课程的伪代码约定”),因此很难更准确地说明。
尝试推断什么可能不是你的惯例,似乎你不想万一,结束于等部分,这就是[noend]
选项(加载包时,如\usepackage[noend]{algorithmic}
)的用途是:它可以让您节省垂直空间,这对于提交具有严格页数限制的论文尤其重要。
我建议您将默认水平缩进从 增加到1em
,例如,2em
如果您省略结束标记。您可以\algsetup{indent=2em}
随时使用或indent=2em
在加载包时传递该选项。