1

I'm using algorithmic package and I've got this code:

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithmic}[1]
\Function {BalanceCascade}{}
\State $i \leftarrow 0, f \leftarrow \sqrt[T-1]{\frac{\left | P \right |}{\left | N \right |}}$, some very very very very very very very very very very very very very very very very long goes here, so this will create a few new lines
\EndFunction 
\end{algorithmic}
\end{document}

And I've got the following result: enter image description here Is it there a way to indent the new lines to be under the start of the first one?

Update: If I do the solution proposed by @Bobyandbob the lines get too closer: enter image description here Theres no space between lines and end function.

  • Welcome to TeX.SX! So the gap/indent in line 2 is should be smaller? – Bobyandbob May 22 '18 at 17:08
  • Hi @Bobyandbob - No, the gap/indent in line 3 and 4 (talking about real lines) should be bigger to start in the same point as lines 2. – Néstor May 22 '18 at 17:10
  • Please add a minimal working example (MWE), that illustrates your problem. Reproducing the problem and finding out what the issue is will be much easier when we see compilable code, starting with \documentclass and ending with \end{document}. MAybe related Indenting lines of code in algorithm – Bobyandbob May 22 '18 at 17:16
  • You could add \usepackage{varwidth} and try \State \begin{varwidth}[t]{\linewidth} $i \leftarrow 0, f \leftarrow \sqrt[T-1]{\frac{\left | P \right |}{\left | N \right |}}$, some very very very very very very very very very very very very very very very very long goes here, so this will create a few new lines \end{varwidth} ... solution from Include a line break in algorithmic while maintaining indentation – Bobyandbob May 22 '18 at 17:25
  • @Bobyandbob if I do that, the lines get too closer, see the original question. – Néstor May 22 '18 at 17:32
2

First I show what you had, then I show it in a \parbox, trying to use some horizontal list lengths to get the width right (it is close, but not quite right). Finally, I again use a \parbox, but specify the width manually to match the right margin.

To get the proper vertical placement and spacing, I had to use the [t] option of \parbox and also end it with a \strut.

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithmic}[1]
\Function {BalanceCascade}{}
\State $i \leftarrow 0, f \leftarrow \sqrt[T-1]{\frac{\left | P \right |}{%
  \left | N \right |}}$, some very very very very very very very very very
  very very very very very very very long goes here, so this will create a 
  few new lines
\EndFunction 

\Function {BalanceCascade}{}
\State \parbox[t]{\dimexpr\textwidth-\leftmargin-\labelsep-\labelwidth}{%
  $i \leftarrow 0, f \leftarrow \sqrt[T-1]{\frac{\left | P \right |}{%
  \left | N \right |}}$, some very very very very very very very very very
  very very very very very very very long goes here, so this will create a 
  few new lines\strut}
\EndFunction 

\Function {BalanceCascade}{}
\State \parbox[t]{313pt}{%
  $i \leftarrow 0, f \leftarrow \sqrt[T-1]{\frac{\left | P \right |}{%
  \left | N \right |}}$, some very very very very very very very very very
  very very very very very very very long goes here, so this will create a 
  few new lines\strut}
\EndFunction 
\end{algorithmic}

\noindent Here is the left margin
\end{document}

enter image description here

  • Hi Steven - do you know how to calculate the size to be passed to [t] for a documenta class \documentclass[a4paper,11pt]{book}? If I use the code you give me, I will exceed the right margin! – Néstor May 22 '18 at 17:47
  • @Néstor If I take my MWE and change article to book, it works out very similarly. However, as I noted, I don't think my "calculation" of \dimexpr\textwidth-\leftmargin-\labelsep-\labelwidth is precise. The good news is, if your margins are different, I think you only have to manually figure out a number like 313pt (in my example) once, and then use the same number throughout your document. – Steven B. Segletes May 22 '18 at 17:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.