cline 在 beamer 中消失

cline 在 beamer 中消失

我从另一个问题中获取了以下代码,但它在这里不起作用:

\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} 

Result

相关内容