演算法:編號和對齊

演算法:編號和對齊

在演算法上,我們如何使“輸入”在第一行對齊並減少表格縮排?

\documentclass[a4paper]{scrartcl}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithm}
\usepackage{algpseudocode}

\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}

\begin{document}
    
\begin{algorithm}
    \caption{Anonymous Key Generation}\label{alg:akg}
    \begin{algorithmic}[1]
        \Require \begin{tabular}{l l l}
            $\mathrm{AAA}$ & $=$ & $\mathrm{BBB}$\\
            $\mathrm{CCC}$ & $=$ & $\mathrm{DDD}$
        \end{tabular}
        
        \Ensure $\mathrm{EEE}$
        \State Compute
        \Statex \hspace{\algorithmicindent} 
        \begin{tabular}{l l l}
            $\mathrm{FFF}$ & $\mathrm{=}$ &  $\mathrm{GGG}$\\
            & $\mathrm{=}$ &  $\mathrm{HHH}$ \\
        \end{tabular}
        \State Return $III$
    \end{algorithmic}
\end{algorithm}

\end{document} 

在此輸入影像描述

答案1

如果您必須對齊行,我建議使用修改後的版本aligned。注意對齊的使用top\\最後一行不應使用No。

\documentclass[a4paper]{scrartcl}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithm}
\usepackage{algpseudocode}

\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}

\newenvironment{ilaligned}{%
  $\openup-1\jot\begin{aligned}[t]%
}{\\[0.5ex]\end{aligned}$}

\begin{document}
    
\begin{algorithm}
    \caption{Anonymous Key Generation}\label{alg:akg}
    \begin{algorithmic}[1]
        \Require \begin{ilaligned}
            \mathrm{AAA} &= \mathrm{BBB}\\
            \mathrm{CCC} &= \mathrm{DDD}
        \end{ilaligned}
        
        \Ensure $\mathrm{EEE}$
        \State Compute
        \Statex \hspace{\algorithmicindent} 
          \begin{ilaligned}
            \mathrm{FFF} &= \mathrm{GGG}\\
                         &= \mathrm{HHH}
          \end{ilaligned}
        \State Return $III$
    \end{algorithmic}
\end{algorithm}

\end{document} 

在此輸入影像描述

相關內容