如何在算法包中更改字体系列

如何在算法包中更改字体系列

有没有办法为算法环境设置特定的字体系列,特别是针对其中的注释?

答案1

algorithmicx提供了一个 \ALG@beginalgorithmic在环境开始时执行algorithmic。默认情况下,它设置为\relax,不执行任何操作。但是,您可以更新它以设置字体大小:

在此处输入图片描述

\documentclass{article}
\usepackage{algpseudocode,algorithm}

\makeatletter
\algrenewcommand\ALG@beginalgorithmic{\footnotesize}
\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}

如果您只想更新 s \Comment,请重新定义\algorithmiccomment以满足您的需求。也许您会对以下内容感兴趣:

\algrenewcommand\algorithmiccomment[2][\normalsize]{{#1\hfill\(\triangleright\) #2}}

它将默认大小设置为\normalsize。它允许你做一些像这样荒谬的事情:

在此处输入图片描述

\documentclass{article}
\usepackage{algpseudocode,algorithm}

\makeatletter
\algrenewcommand\ALG@beginalgorithmic{\footnotesize}
\algrenewcommand\algorithmiccomment[2][\normalsize]{{#1\hfill\(\triangleright\) #2}}
\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[\tiny]{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[\Large]{The gcd is $b$}
    \EndProcedure
  \end{algorithmic}
\end{algorithm}

\end{document}

虽然我已经调整了字体尺寸在上面的例子中,你还可以调整字体家庭以类似的方式。


algorithms也提供了一个algorithmic环境。但是,它更加死板(不太灵活),因为它algorithmic每次调用环境时都会重新定义整个结构。因此,特定于环境的更改非常繁琐。下面是一个示例,它添加了可能的字体更改(通过\setalgorithmicfont{<font>})和对常规的调整\COMMENT(传递给\algorithmiccomment):

在此处输入图片描述

\documentclass{article}
\usepackage{algorithmic,algorithm,xpatch}

\xpatchcmd{\algorithmic}{\setcounter}{\algorithmicfont\setcounter}{}{}
\providecommand{\algorithmicfont}{}
\providecommand{\setalgorithmicfont}[1]{\renewcommand{\algorithmicfont}{#1}}
\renewcommand{\algorithmiccomment}[1]{{\tiny\hfill$\triangleright$ #1}}

\begin{document}

\setalgorithmicfont{\footnotesize}

\begin{algorithm}
  \caption{Euclid’s algorithm}\label{euclid}
  \begin{algorithmic}[1]
    \STATE $r \gets a \bmod b$
    \WHILE{$r \not= 0$}
      \STATE $a \gets b$
      \STATE $b \gets r$\COMMENT{A comment}
      \STATE $r \gets a \bmod b$
    \ENDWHILE
    \STATE \textbf{return} $b$\COMMENT{The gcd is $b$}
  \end{algorithmic}
\end{algorithm}

\end{document}

相关内容