latex算法步骤,子代码编号及修改算法框的宽度

看了官方文档和网上一下资料,对于一个步骤下面有好多子步骤的算法,大多是通过for循环与while判断实现的,而且对于for下面的每一步骤没有重新编码,感觉很乱,不好看。

论文的参考文有下图的结构,感觉很好,可以一用。

在这里插入图片描述

主要用到下面这个代码块,其 对代码块里的每一句以 \State开始的语句进行编号,其中[1]表示,自动从1开始编号。如果不想自动编号,可以去掉[1],自己设置为step1,step2,a,b,c等等。

\begin{algorithmic}[1]
  \State...
  \State...
 \end{algorithmic}
\begin{algorithmic}
  \State  step1...
  \State  step2...
 \end{algorithmic}

因此考虑实现上述代码,使用两个编号代码块,如下:、

\begin{algorithm}
\caption{GFHF algorithm}\label{algo1}
\begin{algorithmic}[1]
    \State  Construct a probabilistic transition matrix P by (3)
    \State  Let $Y_{0}=[Y_{0}^{l},0]$
    \State  Performing the following steps for a desired $T$ steps:
    \begin{algorithmic}
         \State  3.a: $Y_{t+1}=P*Y_{t}$,
         \State  3.b: $Y_{t+1}^{(l)}=Y_{0}^{l}$.
    \end{algorithmic}
    \State  Output $Y_{T}$
\end{algorithmic}
\end{algorithm}

在这里插入图片描述

但是出现问题,最后一句总是在跟随子代码块,且自定义编号和\begin{algorithmic}的编号大小不一致,因此考虑一个编号代码块,且都自己定义编号,另外考虑3.a,3.b,前面添加空格。

\begin{algorithm}
\caption{GFHF algorithm}\label{algo1}
\begin{algorithmic}
    \State 1: Construct a probabilistic transition matrix P by (3)
    \State 2: Let $Y_{0}=[Y_{0}^{l},0]$
    \State 3: Performing the following steps for a desired $T$ steps:
         \State \quad \quad 3.a: $Y_{t+1}=P*Y_{t}$,
         \State \quad \quad 3.b: $Y_{t+1}^{(l)}=Y_{0}^{l}$.
    \State 4: Output $Y_{T}$
\end{algorithmic}
\end{algorithm}

在这里插入图片描述

最后一步,修改算法框的宽度,上述太宽了,不美观

加入:

\begin{center}  % center algorithm
\begin{minipage}{0.8\linewidth}  % mini-page
...
\end{minipage}
\end{center}

效果如下:

\begin{center}  % center algorithm
\begin{minipage}{0.8\linewidth}  % mini-page

\begin{algorithm}[H]
\caption{GFHF algorithm}\label{algo1}
\begin{algorithmic}
    \State 1: Construct a probabilistic transition matrix P by (3)
    \State 2: Let $Y_{0}=[Y_{0}^{l},0]$
    \State 3: Performing the following steps for a desired $T$ steps:
         \State \quad \quad 3.a: $Y_{t+1}=P*Y_{t}$,
         \State \quad \quad 3.b: $Y_{t+1}^{(l)}=Y_{0}^{l}$.
    \State 4: Output $Y_{T}$
\end{algorithmic}
\end{algorithm}

\end{minipage}
\end{center}

在这里插入图片描述

注意:0.8\linewidth,宽为0.8倍的\linewidth,要识别\linewidth为尺度单位,需导入包\usepackage{subcaption} (在\begin{document}之前)

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/ff44aff2cf.html