Имя процедуры с маленькой буквы в algorithm2e

Имя процедуры с маленькой буквы в algorithm2e

Я знаю, что procedureв algorithm2eразрешены только такие подписи, как \caption{ProcedureName()}.

Однако я бы хотел, чтобы моя процедура была написана маленькими заглавными буквами:

\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}

Что, конечно, дает ошибку

Paragraph ended before \algocf@captname was complete

Вместо процедуры, если я использую \begin{algorithm} ... \end{algorithm}, то он нормально разветвляется. Есть ли способ заставить его работать procedureтакже?

решение1

Это не очень хорошо документировано в algorithm2eруководстве, но чтобы добиться желаемого, вам нужно выполнить команду

\SetProcNameSty{textsc}

Аргумент \captionпри использовании procedureсреды может содержать только что-то вроде name(arg).

В следующем MWE я также добавил

\SetProcArgSty{textsc}

на всякий случай, если вы используете заголовки процедур с аргументами:

\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} 

Выход

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

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