Проблема ширины кода алгоритма

Проблема ширины кода алгоритма

У меня возникла проблема с шириной алгоритма, который я написал, как показано ниже, и мне нужно написать его лучше, но я не могу. Кто-нибудь может помочь?

введите описание изображения здесь

Вот мой код:

  \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}

Связанный контент