我已经能够增加水平线的宽度,以表示第二个答案LaTeX 表格:如何使水平线变粗或变细(通常为 \hline)?。现在,我想在算法和列表环境中执行相同操作,但我不知道该怎么做。可以吗?如果可以,怎么做?
例如,以下示例
\documentclass[10pt]{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{listings}
\usepackage{makecell}
\begin{document}
\newcommand{\blah}{blah blah blah blah blah\\}
\newcommand{\hlinethick}{\Xhline{4\arrayrulewidth}}
\blah \blah \blah
\begin{lstlisting}[frame=tb]
return 1;
\end{lstlisting}
\begin{algorithm}
\caption{My algorithm.}
\begin{algorithmic}[1]
\Procedure{Algorithm}{}
\State \textbf{return} $mat$
\EndProcedure
\end{algorithmic}
\end{algorithm}
\blah \blah \blah
\begin{table}
\begin{center}
\caption{My table.}
\begin{tabular}{c r r r}
\hlinethick
header1 & header2 & header3 \\
\hline
$T_{s}$ & 7 & 14 & 21 \\
$T_{i}$ & 3 & 3 & 20 \\
\hlinethick
\end{tabular}
\end{center}
\end{table}
\end{document}
结果是
答案1
该listings
包提供了一个名为的键framerule
,它采用尺寸值(例如2pt
)并确定列表中使用的规则的粗细。
改变算法中使用的规则的厚度更为复杂。该algorithm
包将这些规则的绘制委托给float
包,不允许用户以任何直接的方式调整厚度;相反,厚度在所谓的浮动样式因此,你唯一的选择是重新定义浮动样式感兴趣的(此处为默认值ruled
)。
为了方便和更好的可维护性,我定义了一个新的长度宏(称为\hrulethickness
),它控制文档的表格、列表和算法中使用的规则的粗细。见下文。
\documentclass[10pt]{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{listings}
\usepackage{makecell}
% one length to rule them all
\newlength\hrulethickness
\setlength\hrulethickness{4\arrayrulewidth}
\newcommand{\hlinethick}{\Xhline{\hrulethickness}}
% `listings' settings
\lstset{framerule=\hrulethickness}
% redefinition of the `ruled' floatstyle
% (defined in the `float' package, used by the `algorithm' package)
\makeatletter
\renewcommand\fs@ruled{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled
\def\@fs@pre{\hrule height \hrulethickness depth0pt \kern2pt}%
\def\@fs@post{\kern2pt\hrule height \hrulethickness depth0pt \relax}%
\def\@fs@mid{\kern2pt\hrule height \hrulethickness depth0pt \kern2pt}%
\let\@fs@iftopcapt\iftrue}
\makeatother
\begin{document}
\newcommand{\blah}{blah blah blah blah blah\\}
\blah \blah \blah
\begin{lstlisting}[frame=tb]
return 1;
\end{lstlisting}
\begin{algorithm}
\caption{My algorithm.}
\begin{algorithmic}[1]
\Procedure{Algorithm}{}
\State \textbf{return} $mat$
\EndProcedure
\end{algorithmic}
\end{algorithm}
\blah \blah \blah
\begin{table}
\begin{center}
\caption{My table.}
\begin{tabular}{c r r r}
\hlinethick
header1 & header2 & header3 \\
\hline
$T_{s}$ & 7 & 14 & 21 \\
$T_{i}$ & 3 & 3 & 20 \\
\hlinethick
\end{tabular}
\end{center}
\end{table}
\end{document}