如何更改 algorithimc 包的字体样式(不是大小而是样式)

如何更改 algorithimc 包的字体样式(不是大小而是样式)

我想更改算法包的字体。它目前使用的是衬线字体,我想尝试使用无衬线字体或打字机字体。我尝试使用以下代码(我改编自此链接),\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重新定义数学字体的包。

相关内容