以下に示すように記述したアルゴリズムの幅に問題があり、より良い方法で記述する必要がありますが、できません。何か助けはありますか?
これが私のコードです:
\begin{algorithmic}
\WHILE{$GenC[i] ! = null$}
\STATE $SpkRealC1 = GetSpikesInfo(GenC[i],RealC[1])$
\STATE $SpkRealC2 = GetSpikesInfo(GenC[i],RealC[2])$
\STATE $SpkRealC3 = GetSpikesInfo(GenC[i],RealC[3])$
\STATE $MappedRealtoGenClass[i] = $
\STATE $MaxSpikeNo(SpkRealC2,SpkRealC2,SpkRealC3)$
\STATE $MappedRealtoGenClassRatio[i]=$
\STATE $MaxSpikeNo(SpkRealC2,SpkRealC2,SpkRealC3)/spikesCount(GenClass[i])$
\ENDWHILE
\end{algorithmic}
答え1
行全体をインライン数式として設定していますが、これは特定の場所 (演算子と関係) でのみ改行されます。また、改行のペナルティがそれほど高くない場合にのみ、そのように動作します。あなたのインスタンスでは (行の幅とフォント サイズに基づいて)、ペナルティが高すぎるため、適切な改行ポイントがありません。
いずれにしても、テキストと数式の使用は正しくありません。内部的には、は「を で乗算 で乗算」$xyz$
と設定されており、これは正しいです。ただし、 をシンボル/変数、、、、、の乗算として設定する必要はありません。代わりに、 のようなものを使用してください。次の例では、手動の改行とインデントを使用することを含めて、これを実行しました ( を使用した方法)。x
y
z
$SpkReal$
S
p
k
R
e
a
l
\textrm{SpkReal}
\algvar
\documentclass{article}
\usepackage{algorithmic}% http://ctan.org/pkg/algorithmic
\newcommand{\algvar}{\textrm}
\begin{document}
\begin{algorithmic}
\WHILE{$GenC[i] ! = null$}
\STATE $SpkRealC1 = GetSpikesInfo(GenC[i],RealC[1])$
\STATE $SpkRealC2 = GetSpikesInfo(GenC[i],RealC[2])$
\STATE $SpkRealC3 = GetSpikesInfo(GenC[i],RealC[3])$
\STATE $MappedRealtoGenClass[i] = $
\STATE $MaxSpikeNo(SpkRealC2,SpkRealC2,SpkRealC3)$
\STATE $MappedRealtoGenClassRatio[i]=$
\STATE $MaxSpikeNo(SpkRealC2,SpkRealC2,SpkRealC3)/spikesCount(GenClass[i])$
\ENDWHILE
\end{algorithmic}
\begin{algorithmic}
\WHILE{$\algvar{GenC}[i] \neq \algvar{null}$}
\STATE $\algvar{SpkRealC}_1 = \algvar{GetSpikesInfo}(\algvar{GenC}[i],\algvar{RealC}[1])$
\STATE $\algvar{SpkRealC}_2 = \algvar{GetSpikesInfo}(\algvar{GenC}[i],\algvar{RealC}[2])$
\STATE $\algvar{SpkRealC}_3 = \algvar{GetSpikesInfo}(\algvar{GenC}[i],\algvar{RealC}[3])$
\STATE $\algvar{MappedRealtoGenClass}[i] = $
\STATE \hspace*{\algorithmicindent}$\algvar{MaxSpikeNo}(\algvar{SpkRealC}_2,\algvar{SpkRealC}_2,\algvar{SpkRealC}_3)$
\STATE $\algvar{MappedRealtoGenClassRatio}[i] = $
\STATE \hspace*{\algorithmicindent}$\algvar{MaxSpikeNo}(\algvar{SpkRealC}_2,\algvar{SpkRealC}_2,\algvar{SpkRealC}_3)/$
\STATE \hspace*{2\algorithmicindent}$\algvar{spikesCount}(\algvar{GenClass}[i])$
\ENDWHILE
\end{algorithmic}
\end{document}