我想更改算法包的字体。它目前使用的是衬线字体,我想尝试使用无衬线字体或打字机字体。我尝试使用以下代码(我改编自此链接),\ttdefault
但不起作用。我该如何实现我的目标?
\documentclass{article}
\usepackage{algpseudocode,algorithm}
\makeatletter
\algrenewcommand\ALG@beginalgorithmic{\ttdefault}
\makeatother
\begin{document}
\begin{algorithm}
\caption{Euclid’s algorithm}\label{euclid}
\begin{algorithmic}[1]
\Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of $a$ and $b$}
\State $r \gets a \bmod b$
\While{$r \not= 0$}\Comment{We have the answer if $r$ is 0}
\State $a \gets b$
\State $b \gets r$
\State $r \gets a \bmod b$
\EndWhile\label{euclidendwhile}
\State \textbf{return} $b$\Comment{The gcd is $b$}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
答案1
如果我没错的话,你应该使用它,\usepackage{algpseudocode}
因为它似乎重新实现了algorithms
,而且它定义了诸如 \State 等内容。
似乎没有一种简单的方法来改变字体(也许你应该考虑使用不同的代码包?)。
代码中的关键字在包中定义如下:
\algnewcommand\algorithmicfunction{\textbf{function}}
你可以将其更改为
\algrenewcommand\algorithmicfunction{\texttt{function}}
您可以对其他一些关键字进行类似的更改。但这不会改变其他文本,例如“Euclid”和评论中的文本。您可以通过algorithm
使用字体声明将其包装在一个组中来更改其中的一些内容。
\documentclass{article}
\usepackage{algpseudocode}
\algrenewcommand\algorithmicprocedure{\texttt{procedure}}
\begin{document}
{\tt
\begin{algorithmic}
\Procedure{Euclid}{a,b}
\State $ABC$ ABC \Comment{this is a test}
\EndProcedure
\end{algorithmic}
}
\end{document}
但这仍然不会改变数学部分的字体。要更改该字体,要么不将其放入数学中,要么查看mathastext
重新定义数学字体的包。