algorithmic if文

algorithmic if文

- 藤田 洸 の投稿
返信数: 5
今現在論文作成中で、以下のようなアルゴリズム(一部抜粋)を作っています。
実際のものはif文が大量に入ってしまい、ものすごく縦長になってしまい、一ページに収まりきらずに困っています。
そこでif文の中身を
if a>b then output = b
など一行に表示できると聞いたのですが、調べてみたところ参考になるページは出てきませんでした。
実際このようなことはできるのでしょうか?
またほかに何か短くできるような方法があれば教えていただきたいです。
よろしくお願いします。
\begin{algorithm} 
 \caption{aaa} 
 \label{alg1} 
 \begin{algorithmic} 
 \IF{$5$} 
 \IF{$s > d $} 
 \STATE $output = a;$
 \ENDIF
 \IF{$s < d $} 
 \STATE $Rout = b;$
 \ENDIF
 \ENDIF
 \end{algorithmic}
\end{algorithm}
藤田 洸 への返信

Re: algorithmic if文

- 和田 勇 の投稿
使用されているパッケージと異なると思いますがalgpseudocode を利用されてはどうでしょうか?
コマンド名がすべて大文字から単語先頭のみ大文字に変わるのですが
https://tex.stackexchange.com/questions/163768/write-pseudo-code-in-latex で生成されるイメージの 5 行目がご希望のもののように思えます。
(当方 macOS High Sierra で TexLive2017 で試して見ました)

algpseudocode のドキュメントはコマンドラインで texdoc algpseudocode とするか 
http://tug.ctan.org/macros/latex/contrib/algorithmicx/algorithmicx.pdf を参考にしてください。複数ページの対応などの例もあるようです。


ーーーー

以下は、異論のある方もいらっしゃるかと思いますが、あくまでも紙幅が定められている場合などの苦肉の対応策として紹介します。

ドキュメント提出先の制約なども考慮・了解をえるなどしなければいけませんが、一ページに収まりきらないがはみ出る部分が少しの場合は、フォントサイズを \small や \scriptsize など可読できるものに変更するのも一つの手段です。

行間も読みにくくならない程度に狭めることも場合によっては行うことがあります。
紙幅が定まっている週刊誌などでは時々文章末部分が妙に行間が狭くなっていることが散見されます。

和田 勇 への返信

Re: algorithmic if文

- 藤田 洸 の投稿
返信ありがとうございます。
後出しで申し訳ないのですが、アルゴリズムに行数を載せたくないためalgorithmicを使っていました。参考pdfを拝見したところ、行数がついてしまうように思えます。
このような場合は、フォントサイズを小さくする等するしか手はないのでしょうか?
それともalgorithmicxを使っても行数が出ないような方法はあるのでしょうか?

藤田 洸 への返信

Re: algorithmic if文

- S T の投稿
algorithmicxのマニュアルの3ページに

Each algorithm begins with the\begin{algorithmic}[lines] command,
the optional lines controls the line numbering: 0 means no line
numbering, 1 means number every line, and n means number lines n, 2n,
3n. . . until the \end{algorithmic} command, witch ends the algorithm.

と書いてあります。ゼロを指定すれば行番号がでないようです(未検証)。
S T への返信

Re: algorithmic if文

- 藤田 洸 の投稿
マニュアルを拝見したところ確かにそのような記述を見つけました。
しかしながら
\begin{algorithmic}[0]
をしたところ以下のようなエラーが出てしまいできませんでした… 
! LaTeX Error: Unknown float option `0'.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help.... \begin{algorithm}[0]\begin{algorithm}[0]
S T への返信

Re: algorithmic if文

- 藤田 洸 の投稿
連投すみません
何やらこちらで勘違いしていたようで
無事行番号を消すことができました。失礼いたしました。
ありがとうございます。