如何使用“算法”在 LaTeX 算法中创建 ForEach 循环?

如何使用“算法”在 LaTeX 算法中创建 ForEach 循环?

问题已经在标题中了。我使用“algorithmic”作为包,找不到“FOREACH”定义的任何参考。我已经知道对于“algpseudocode”,我可以使用

% define macro foreach
\algnewcommand\algorithmicforeach{\textbf{for each}}
\algdef{S}[FOR]{ForEach}[1]{\algorithmicforeach\ #1\ \algorithmicdo}

但我找不到与“算法”类似的东西。

答案1

您可以复制创建的内容\FORALL并替换必要的元素以创建\FOREACH

在此处输入图片描述

\documentclass{article}

\usepackage{algorithmic}

\makeatletter
% Taken from \FORALL within
%   http://mirrors.ctan.org/macros/latex/contrib/algorithms/algorithms.dtx
\newcommand{\algorithmicforeach}{\textbf{for each}}
\newcommand{\FOREACH}[2][default]{%
  \ALC@it\algorithmicforeach\ #2\ \algorithmicdo%
    \ALC@com{#1}\begin{ALC@for}}
\makeatother

\begin{document}

\begin{algorithmic}[1]
  \FORALL{$i$ such that $0 \leq i \leq 10$}
    \STATE carry out some processing
  \ENDFOR
  \FOREACH{$i$ such that $0 \leq i \leq 10$}
    \STATE carry out some processing
  \ENDFOR
\end{algorithmic}

\end{document}

答案2

我刚刚意识到算法中似乎有“FORALL”,因此可以这样做:

\begin{algorithmic}[1]
\FORALL{$i$ such that $0\leq i\leq 10$}
\STATE carry out some processing
\ENDFOR
\end{algorithmic}

相关内容