はじめに
TeXにて論文執筆中、擬似コードを記述する場面があった。
パッケージは、algorithmic.sty
を使用。
その際、if文をネストする必要があったのだが、
%パッケージインポート
\usepackage{algpseudocode,algorithm}
\begin{algorithm}
\begin{algorithmic}[1]
\If{〜}
\If{〜} 〜〜 \EndIf
\EndIf
\end{algorithmic}
\end{algorithm}
と記述すると、

のように表示され、見づらくなってしまう。
しかし、
\algnewcommand{\IIf}[1]{\State\algorithmicif\ #1\ \algorithmicthen} \algnewcommand{\EndIIf}{\unskip\ \algorithmicend\ \algorithmicif}
を擬似コード前で記述し、ワンラインでif文を表現したい部分にて、
\IIf{〜} 〜〜 \EndIIf
と記述することで表現できる。
改善後
%パッケージインポート
\usepackage{algpseudocode,algorithm}
%ワンライナーで表現するため
\algnewcommand{\IIf}[1]{\State\algorithmicif\ #1\ \algorithmicthen}
\algnewcommand{\EndIIf}{\unskip\ \algorithmicend\ \algorithmicif}
\begin{algorithm}
\begin{algorithmic}[1]
\caption{擬似コード}
\If{$x = 1$}
\IIf{$y = 1$} yを出力 \EndIIf
\EndIf
\end{algorithmic}
\end{algorithm}

また、end if
を除くことも可能である。
その際は、\EndIIf
を除くだけで良い。

これでネストの表現が見やすくなった。