Nome do procedimento com versalete no algoritmo2e

Nome do procedimento com versalete no algoritmo2e

Eu sei que procedurealgorithm2epermite legendas como \caption{ProcedureName()}.

No entanto, gostaria que meu procedimento aparecesse em versalete:

\documentclass[12pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{enumerate}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage[algosection, boxruled, linesnumbered]{algorithm2e}

\begin{document}
\begin{procedure}

    \SetKwInOut{Input}{input}
    \SetKwInOut{Output}{output}
    \Input{Graph $G = (V,E)$}
    \Output{}
    \ForEach{node $v \in V$}
    {
        \lIf{$v$ is marked}{remove $v$}
    }

    \caption{\textsc{removemarked()}}
    \label{alg:removemarked}

\end{procedure}
\end{document}

O que claro dá erro

Paragraph ended before \algocf@captname was complete

Em vez de procedimento, se eu usar \begin{algorithm} ... \end{algorithm}, então ele bifurca bem. Existe uma maneira de fazer isso funcionar proceduretambém?

Responder1

Não está muito bem documentado no algorithm2emanual, mas para conseguir o que deseja, você precisa emitir o comando

\SetProcNameSty{textsc}

O argumento de \captionquando usar o procedureambiente só pode conter algo como name(arg).

No seguinte MWE eu também adicionei

\SetProcArgSty{textsc}

caso você esteja usando legendas de procedimentos com argumentos:

\documentclass[12pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{enumerate}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage[algosection, boxruled, linesnumbered]{algorithm2e}

\SetProcNameSty{textsc}
\SetProcArgSty{textsc}

\begin{document}
\begin{procedure}

    \SetKwInOut{Input}{input}
    \SetKwInOut{Output}{output}
    \Input{Graph $G = (V,E)$}
    \Output{}
    \ForEach{node $v \in V$}
    {
        \lIf{$v$ is marked}{remove $v$}
    }

    \caption{removemarked()}
    \label{alg:removemarked}

\end{procedure}
\end{document} 

Saída

insira a descrição da imagem aqui

informação relacionada