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