防止 algorithm2e 换行

防止 algorithm2e 换行

我想包含内联代码示例,例如如果 我 < n 然后 我++别的 我 - 。我使用以下 LaTeX:

\documentclass{article}
\usepackage{algorithmic}
\usepackage{algorithm2e}
\begin{document}
Inline code examples such as \lIf{i < n}{i++} and \lElse{i--} but
line breaks are being injected.
\end{document}

其结果为:

内联代码示例如如果 我 < n 然后 我++

别的 我 -

但正在注入换行符。

与我预期的相反:

内联代码示例如如果 我 < n 然后 我++; 和别的 我 - ;但正在注入换行符。

如何防止换行?

答案1

预计会使用所有algorithm2e宏在algorithm环境中编写伪代码。如果要在文本中内联使用它,则需要删除插入\par,这是大多数结构伪代码语句都会发出的。

下面我定义了\llIf\llElse通过范围限制删除了这个换行符\let\par\relax

在此处输入图片描述

\documentclass{article}
\usepackage{algorithm2e}

\newcommand{\llIf}[2]{{\let\par\relax\lIf{#1}{#2}}}
\newcommand{\llElse}[1]{{\let\par\relax\lElse{#1}}}

\begin{document}
Inline code examples such as \llIf{$i < n$}{$i{+}{+}$} and \llElse{$i{-}{-}$} without
line breaks being injected.
\end{document}

这两个宏都缺乏正式定义(包括注释),但我认为在内联使用中不需要这些。

最后,不要混合使用algorithmicalgorithm2e。它们是两个独立的包,不应一起使用。

相关内容