我想更改算法中各行的样式。例如,我想用方框包围关键行号、为其添加颜色或以其他方式区分它们。
可以使用 algorithm2e 更改所有行号的样式,如此处(以及手册中)所述:Algorithm2e 修改行号
有没有办法修改任意子集线条的样式?
答案1
基于这个答案这个答案,这可以通过更新命令来实现\alglinenumber
,如下所示。如最后一行所示,这还不是最佳解决方案。
\documentclass{article}
\usepackage{algpseudocode}
\usepackage{xcolor}
\newcommand{\StateRed}[1]{\algrenewcommand{\alglinenumber}[1]{\footnotesize\textcolor{red}{##1}:}\State #1}
\newcommand{\StateBlack}[1]{\algrenewcommand{\alglinenumber}[1]{\footnotesize##1:}\State #1}
\begin{document}
\begin{algorithmic}[1]
\StateRed $x = 1$
\StateBlack $y = 2$
\StateRed $ z = 3$
\State you probably didn't want this to be red!
\end{algorithmic}
\end{document}
当向行号添加非零宽度的注释时,这也不能完美地工作,因为从第 9 行到第 10 行(大概是第 99 行到第 100 行,虽然我没有检查过)时间距会受到影响。