algorithmicx 中连续行的缩进

algorithmicx 中连续行的缩进

尝试在算法环境中正确获得缩进时我遇到了麻烦,并且到目前为止发布的所有解决方案都无法解决我的问题,因为我希望看到它得到解决。

我希望后续行相对于初始行有一个缩进(我是这个论坛的新手,但无法发布图像)。

但是,根据我在该论坛上找到的结果,最好的方法是,所有连续行都使用固定缩进(即,无论首行是否缩进都没有区别),或者与首行缩进相同(请参阅下面的 MWE)。

有人能回答这个问题吗?

\documentclass[10pt, A4]{report}
\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}

\begin{algorithmic}\raggedright

\State Define N\_crf as the number of points on the circumference of the hyperstreamline, which will define its cross-sectional area at each r

\For {n = 1 : number of tracts}

\State \parbox[t]{\dimexpr\linewidth-\algorithmicindent\relax}{define N\_crf points creating a unit circle around r(n,i), in the plane perpendicular to t(n,i).}\strut

\EndFor

\end{algorithmic}

\end{document}

答案1

设置段落\hangindent

在此处输入图片描述

\documentclass{article}
\usepackage{algorithm,algpseudocode}% http://ctan.org/pkg/{algorithms,algorithmicx}

\begin{document}

\begin{algorithmic}
  %\raggedright
  \State Define \texttt{N\_crf} as the number of points on the circumference 
    of the hyperstreamline, which will define its cross-sectional area at each~$r$
  \For {$n = 1$ : number of tracts}
  \State \parbox[t]{\dimexpr\linewidth-\algorithmicindent\relax}{%
    \setlength{\hangindent}{\algorithmicindent}%
      define N\_crf points creating a unit circle around $r(n,i)$, in the plane 
      perpendicular to $t(n,i)$.}\strut
  \EndFor
\end{algorithmic}

\end{document}

你可以定义自己一个\hangparbox

\newcommand{\hangparbox}[3][t]{\parbox[#1]{\dimexpr#2}{%
  \setlength{\hangindent}{\algorithmicindent}#3}}

实现此目的的另一种粗略方法是插入和删除\algorithmicindent之前/之后的\parbox

\State \hspace*{\algorithmicindent}\parbox[t]{\dimexpr\linewidth-\algorithmicindent}{%
  \hspace*{-\algorithmicindent}
  %...
  }

在处理算法中深度嵌套的部分时这可能会很有用。

相关内容