刚开始摆弄这个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}
- 代替 '对于所有的“我更愿意”对全部'。 代替 '在平行下 做“我更愿意把它合并成”同时做'。我该如何实现这一点?
- 我如何定义自己的宏'重复',因此它有一个“end”语句,插入“times”并且在左边界有一条垂直线?
- 是否可以删除“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}