Псевдокод с процедурой в заголовке

Псевдокод с процедурой в заголовке

Я пытаюсь создать псевдокод, похожий на тот, что вЭта статья. В настоящее время я использую пакет algorithmicx. Моя проблема в том, что я хотел бы, чтобы подпись выглядела так, как показано ниже:

введите описание изображения здесь

Итак, заглавными буквами и с аргументами. Я не могу понять, как это сделать. Ниже приведен пример. По сути, я бы хотел, чтобы "Euclid(a,b)" было в заголовке, а не в теле послепроцедура.

\documentclass[11pt]{article} 

\usepackage[utf8]{inputenc}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\floatname{algorithm}{Procedure}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\renewcommand\thealgorithm{}

\begin{document}

\begin{algorithm}
\caption{Euclid’s algorithm}
\begin{algorithmic}[1]
\Require Integers $a$ and $b$
\Ensure The g.c.d of $a$ and $b$
\Procedure{Euclid}{$a,b$}
\State $r\gets a\bmod b$
\While{$r\not=0$}
\State $a\gets b$
\State $b\gets r$
\State $r\gets a\bmod b$
\EndWhile
\State \textbf{return} $b$
\EndProcedure
\end{algorithmic}
\end{algorithm}

\end{document}

решение1

Хитрость заключается в использовании \textproc, как показано ниже:

\documentclass[11pt]{article} 

\usepackage[utf8]{inputenc}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\floatname{algorithm}{Procedure}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\renewcommand\thealgorithm{}

\begin{document}

\begin{algorithm}
\caption{\textproc{Euclid}$(a,b)$}
\begin{algorithmic}[1]
\Require Integers $a$ and $b$
\Ensure The g.c.d of $a$ and $b$
\State $r\gets a\bmod b$
\While{$r\not=0$}
\State $a\gets b$
\State $b\gets r$
\State $r\gets a\bmod b$
\EndWhile
\State \textbf{return} $b$
\end{algorithmic}
\end{algorithm}

\end{document}

Это приводит квведите описание изображения здесь

Кстати, это также полезно, когда вы хотитессылаться на алгоритм в тексте.

Связанный контент