程序 IF-THEN-ELSE 对齐

程序 IF-THEN-ELSE 对齐

我正在使用“program”包来描述一个函数。当我使用 IF-THEN-ELSE 语句时,我希望行相对于“if”对齐。但是这些行相对于“then”对齐。这是一个简单的例子:

\documentclass[conference]{IEEEtran}
\usepackage{program}

\begin{document}
\begin{program}
\IF A = B \THEN
    eaual
\ELSE
    not equal
\FI
\end{program}
\end{document}

在此处输入图片描述

我怎样才能使它与“if”对齐?

还有一个问题:是否有可能抑制“fi”?

答案1

您可以调整定义,以便

  • \THEN不运行\THENtrue
  • \ELSE表现得更像\THEN
  • \FI取消缩进但不打印关键字

如下

\usepackage{program}
\makeatletter
\def\THEN{\@marginspace\untab\keyword{then}\ \tab}
\def\ELSE{\@marginspace\untab\keyword{else}\ \tab}%
\def\FI{\@marginspace\untab}
\makeatother

示例输出

\documentclass{article}

\usepackage{program}
\makeatletter
\def\THEN{\@marginspace\untab\keyword{then}\ \tab}
\def\ELSE{\@marginspace\untab\keyword{else}\ \tab}%
\def\FI{\@marginspace\untab}
\makeatother

\begin{document}

\begin{program}
  \IF A = B
  \THEN
    equal
  \ELSE
    not equal
  \FI

  \IF C = D
  \THEN
    equal
  \ELSE
    not equal
  \FI
\end{program}

\end{document}

我从 中定义的命令开始,并删除了大部分不需要的操作。由于命令名称包含字符 ,因此需要program.sty该对。\makeatletter ... \makeatothermarginspace@

相关内容