algorithm2e:如何定义我自己的宏?+2

algorithm2e:如何定义我自己的宏?+2

刚开始摆弄这个algorithm2e包裹,我很难弄清楚我需要什么。

这是我的最小工作示例:

\documentclass[10pt,a4paper]{article}
\usepackage[lined,boxed,commentsnumbered,german]{algorithm2e}
\begin{document}
\begin{algorithm}
\ForAll{$i\in \left[n\right]$ in parallel}{
    $a\leftarrow b$\;
}    
\textbf{repeat} $\left\lceil\log n \right\rceil$ \textbf{times}\;\Indp{
\If{$b > 1$}{
    $b\leftarrow c$
}}
\end{algorithm}
\end{document}

这给了我这个: 例子

  1. 代替 '对于所有的“我更愿意”对全部'。 代替 '在平行下 “我更愿意把它合并成”同时做'。我该如何实现这一点?
  2. 我如何定义自己的宏'重复',因此它有一个“end”语句,插入“times”并且在左边界有一条垂直线?
  3. 是否可以删除“if”语句的“end”?“lIf”很简洁,但不是我真正想要的。

我试图理解文档以及 stackexchange 上的线程,但这些示例对于初学者来说相当复杂,因此我将非常感激任何建议。

提前致谢!

[不是英语母语人士]

答案1

第一个版本,目前尚未完成!

\SetKwX定义了许多关键字和外观样式,但显然,在\ForAll使用等语句时,如果没有在精确位置进行手动交互,则并非所有操作都是可能的。

\documentclass[10pt,a4paper]{article}
\usepackage[lined,boxed,commentsnumbered,german]{algorithm2e}

\SetKwFor{ForAll}{for all}{do}{end}
\SetKwRepeat{Repeat}{repeat}{end}
%\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{}
\begin{document}
\begin{algorithm}
\ForAll{$i\in \left[n\right]$ in parallel}{
    $a\leftarrow b$\;
}    
\Repeat($\left\lceil\log n \right\rceil$ times){}{%
  \lIf{$b > 1$}{\\
    $b\leftarrow c$
  }
}
\end{algorithm}
\end{document}

在此处输入图片描述

相关内容