algorithm2e:如何自定义“程序”环境的标题?

algorithm2e:如何自定义“程序”环境的标题?

程序环境要求标题采用非常受限的形式:“Name()”。但是,我想添加更多详细信息,例如:“我的超棒程序 $A = (para1, para2)$”。我该怎么做?

实际上,这个标题可以在算法环境,或者,如何将环境的标签(例如算法 1)更改为“过程”。

答案1

如果你只是想更改AlgorithmProcedure,你可以执行以下操作:

在此处输入图片描述

\documentclass{article}

\usepackage{algorithm2e}
\renewcommand{\algorithmcfname}{Procedure}

\begin{document}

\begin{algorithm}[H]
  \SetAlgoLined
  \KwData{this text}
  \KwResult{how to write algorithm with \LaTeX2e }

  initialization\;
  \While{not at end of this document}{
    read current\;
    \eIf{understand}{
      go to next section\;
      current section becomes this one\;
    }{
      go back to the beginning of current section\;
    }
  }
  \caption{How to write algorithms}
\end{algorithm}

\end{document}

姓名算法存储在 中\algorithmcfname,您可以重新定义以满足您的需要。您还可以使用\SetAlgorithmName{#1}{#2}{#3}where

  • #1表示与算法列表关联的名称
  • #2algorithm表示与环境关联的名称
  • #3表示与hyperref\autoref名字

假设你想删除程序,您还希望将其从算法列表中删除,因此没有任何计数器与其关联。以下\@caption在新algoproc环境中重新定义可实现此目的:

在此处输入图片描述

\documentclass{article}

\usepackage[ruled]{algorithm2e}

\makeatletter
\newenvironment{algoproc}[1][]
  {\renewcommand{\algorithmcfname}{Procedure}%
   \begin{algorithm}[#1]
   \long\def\@caption##1[##2]##3{%
     \par
     \begingroup\@parboxrestore
     \if@minipage\@setminipage\fi
     \normalsize \@makecaption{\AlCapSty{\AlCapFnt\algorithmcfname}}{\ignorespaces ##3}%
     \par\endgroup
   }}
  {\end{algorithm}}
\makeatother

\begin{document}

\begin{algoproc}[H]
  \SetAlgoLined
  \KwData{this text}
  \KwResult{how to write algorithm with \LaTeX2e }

  initialization\;
  \While{not at end of this document}{
    read current\;
    \eIf{understand}{
      go to next section\;
      current section becomes this one\;
    }{
      go back to the beginning of current section\;
    }
  }
  \caption{How to write algorithms}
\end{algoproc}

\end{document}

相关内容