Algorithm2e - 复制 KwFunction 字体

Algorithm2e - 复制 KwFunction 字体

在 algorithm2e 中,可以将一些函数名称定义为关键字,然后 algorithm2e 会提供打印这些函数名称的特定字体。现在,我想在算法之外使用该字体,例如在讨论算法时。这有时只能通过使用 \function name 来实现。

如何手动复制功能字体?

\documentclass{report}
\usepackage{algorithm2e}

\begin{document}
    
    \begin{algorithm}
        \SetKwFunction{default}{default}

        \default($ a $).  
    \end{algorithm}
    Here, \default still works, but it not always does.
\end{document}

答案1

在前言中定义新的函数类型,而不是在环境中定义algorithm。由于algorithm环境是一个浮动对象,它有时会在使用命令的文本之后结束,并且由于命令的使用先于其定义,因此命令将未定义。

\documentclass{report}
\usepackage{algorithm2e}
\SetKwFunction{default}{default}
\begin{document}
\begin{algorithm}
  \default($ a $).  
\end{algorithm}
\default always works, no matter whether this part is typeset before or after the algorithm.
\end{document}

如果您只是想复制算法中某些元素的样式,使用相应的样式定义可能会更容易。

在此处输入图片描述

\documentclass{article}
\usepackage{algorithm2e}
\advance\textwidth1.5cm
\begin{document}
To use the same style for program elements outside of the
\texttt{algorithm} environment of the package \texttt{algorithm2e},
use the following commands.
\begin{center}
  \begin{tabular}{llll}
    element type & command & \multicolumn{2}{c}{example} \\
    \hline
    keywords & \verb"\KwSty" & \verb"\KwSty{else}" & \KwSty{else} \\
    arguments & \verb"\ArgSty" & \verb"\ArgSty{arg}" & \ArgSty{arg} \\
    function args &  \verb"\FuncArgSty" & \verb"\FuncArgSty{farg}" & \FuncArgSty{farg} \\
    function names &  \verb"\FuncSty" & \verb"\FuncSty{fnc}" & \FuncSty{fnc} \\
    program names &  \verb"\ProgSty" & \verb"\ProgSty{prg}" & \ProgSty{prg} \\
    data &  \verb"\DataSty" & \verb"\DataSty{data}" & \DataSty{data} \\
    comments & \verb"\CommentSty" & \verb"\CommentSty{comment}" & \CommentSty{comment} \\
    titles & \verb"\TitleSty" & \verb"\TitleSty{title}" & \TitleSty{title} \\
    block markers & \verb"\BlockMarkersSty" & \verb"\BlockMarkersSty{newblock}" & \BlockMarkersSty{newblock}
  \end{tabular}
\end{center}
\end{document}

相关内容