Algorithm2e-在一行中写入IfThenElse

Algorithm2e-在一行中写入IfThenElse

我有以下示例

\documentclass{report}
\usepackage{algorithm2e}

\begin{document}
    
    \begin{algorithm}
        \lIf{$\max_{\mathcal{AV}} > \theta_5$}
        {
            \Return the tracklet with $\max_{\mathcal{AV}}$.
        }
        \lElse
        {
            \Return no speaker.
        }  
    \end{algorithm}
    
\end{document}

但是我不希望 if 和 else 放在两条单独的行中,而只放在一行中。

有人能帮我吗?提前谢谢

答案1

定义\lIfElse{<condition>}{<true>}{<false>}为插入<false>子句作为的一部分<true>

在此处输入图片描述

\documentclass{article}

\usepackage{algorithm2e}

\newcommand{\lIfElse}[3]{\lIf{#1}{#2 \textbf{else}~#3}}

\begin{document}
    
\begin{algorithm}
  \lIfElse{$a$}{True}{False}
  \lIfElse{$b$}{\Return True}{\Return False}
\end{algorithm}
    
\end{document}

答案2

最简单的方法可能是手动完成:

\documentclass{report}
\usepackage{algorithm2e}
\usepackage[left=1cm]{geometry}
\begin{document}
    
    \begin{algorithm}
        \lIf{$\max_{\mathcal{AV}} > \theta_5$}
        {
            \Return the tracklet with $\max_{\mathcal{AV}}$. ; \textbf{else return} no speaker.
        }
    \end{algorithm}
    
\end{document}

结果:

在此处输入图片描述

请注意,我把页面弄得稍微宽一些(左边距减少到 1 厘米),否则文本无法放在一行上。

如果你想模仿别的返回那么你可以做类似的事情\textbf{else\enspace return}

相关内容