我从另一个问题中获取了以下代码,但它在这里不起作用:
\documentclass{beamer}
\usepackage{colortbl,xcolor}
\begin{document}
\begin{frame}
\begin{tabular}{c@{\,}l@{}}
& $p$ \\\arrayrulecolor{blue!60!green!70} & $p \to q$ \\\cline{2-2}
$\therefore$ & $q$ \\
\end{tabular}
\end{frame}
\end{document}
我该怎么做才能拥有蓝色的线条?
答案1
LaTeX 的颜色实现会插入颜色特殊项,并通过在当前组之后重置颜色\reset@color
。此处,此操作是在通过绘制的彩色规则之后完成的\leaders\hrule\@height\arrayrulewidth\hfill
。类类beamer
重新定义\reset@color
。此重新定义引入了一个\unskip
,它会取消前一个\leaders
。因此,线条消失了。
下面的补丁\kern0pt
在命令后 添加了一个不可见的\leaders
命令,以防止\unskip
杀死\leaders
跳过。
\documentclass{beamer}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{etoolbox}
% after package colortbl is loaded
\makeatletter
\patchcmd\@cline
{\arrayrulewidth\hfill}% search
{\arrayrulewidth\hfill\kern\z@}% replace
{}% success
{\errmessage{Patching \string\@cline\space failed}}% failure
\makeatother
% make the rule thicker
\setlength{\arrayrulewidth}{2\arrayrulewidth}
\begin{document}
\begin{frame}
\begin{tabular}{c@{\,}l@{}}
& $p$ \\\arrayrulecolor{blue!60!green!70} & $p
\to q$ \\\cline{2-2}
$\therefore$ & $q$ \\
\end{tabular}
\end{frame}
\end{document}