我正在准备一个投影仪演示文稿,其中我想在表格中使用彩色行,我\rowcolors{2}{green!20}{blue!20}
在乳胶代码的序言中使用它。
该命令适用于表格,但是,不知何故它也影响了 pmatrix(如下所示)。有什么办法可以避免这种情况吗?我想要具有纯色背景的矩阵。
\documentclass[xcolor=table,10pt]{beamer}
\usetheme{Frankfurt}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\rowcolors{2}{green!20}{blue!20}
\begin{document}
\begin{frame}
\begin{tabular}{cc}
\hline
\rowcolor{yellow} Column 1 & Column 2 \\
\hline
23 & 234 \\
234 & 56 \\
\hline
\end{tabular}
$$\lambda= \left( \begin{matrix}
\lambda_1 & 0 &\hdots & 0 \\
0 & \lambda_2 &\hdots & 0 \\
0 & 0 & \ddots & 0 \\
0 & 0 & \hdots &\lambda_n
\end{matrix} \right) $$.
\end{frame}
\end{document}
编辑 1:根据 @Warner 的建议,我尝试\rowcolors
在 Table 环境中定义命令,并且成功了。它不再影响矩阵。
每次添加新表时,Warner 的方法都要求我添加一些额外的行。我正在准备一组讲座,希望有一个全局设置(如果可能的话)。这将减少代码长度并使其始终保持一致。
答案1
tblr
有了新的 LaTeX3 包环境,一切都变得轻而易举tabularray
:
\documentclass[10pt]{beamer}
\usetheme{Frankfurt}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tabularray}
\SetTblrInner{row{odd}={blue9},row{even}={green9},row{1}={yellow9}}
\begin{document}
\begin{frame}
\begin{tblr}{cc}
\hline
Column 1 & Column 2 \\
\hline
23 & 234 \\
234 & 56 \\
\hline
\end{tblr}
$$\lambda= \left( \begin{matrix}
\lambda_1 & 0 &\hdots & 0 \\
0 & \lambda_2 &\hdots & 0 \\
0 & 0 & \ddots & 0 \\
0 & 0 & \hdots &\lambda_n
\end{matrix} \right) $$.
\end{frame}
\end{document}
答案2
我看到了你的帖子,遇到了完全相同的问题,刚刚为我的文件解决了这个问题。我强烈建议你创建一个新的表环境,你只能在其中配置这样的表。
(由于 [H] ,需要 \usepackage{float})
\documentclass[xcolor=table,10pt]{beamer}
\usetheme{Frankfurt}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{float}
%------------Custom table--------------------------------------
\newenvironment{MyTabular}[1]{% #1 = column types
\setlength{\intextsep}{3pt} %Space between text and table
\rowcolors{2}{green!20}{blue!20} %Color config
\begin{table}[H]
\centering
\renewcommand{\arraystretch}{1.1}
\begin{tabular}{#1} \rowcolor{yellow} %First row color
}{%
\end{tabular}
\end{table}
}
%--------------------------------------------------------------
\begin{document}
\begin{frame}
\begin{MyTabular}{cc}
\hline
Column 1 & Column 2 \\
\hline
23 & 234 \\
234 & 56 \\
\hline
\end{MyTabular}
$$\lambda= \left( \begin{matrix}
\lambda_1 & 0 &\hdots & 0 \\
0 & \lambda_2 &\hdots & 0 \\
0 & 0 & \ddots & 0 \\
0 & 0 & \hdots &\lambda_n
\end{matrix} \right) $$.
\end{frame}
\end{document}
答案3
您可以尝试以下操作;
\documentclass[xcolor=table,10pt]{beamer}
\usetheme{Frankfurt}
\usepackage{amsmath,amssymb}
\usepackage{etoolbox} % <---
\AtBeginEnvironment{tabular}{% <---
\rowcolors{2}{green!20}{blue!20}
}
\begin{document}
\begin{frame}
\frametitle{Coloring only \texttt{tabular}s}
\begin{tabular}{cc}
\hline
\rowcolor{yellow} Column 1 & Column 2 \\
\hline
23 & 234 \\
234 & 56 \\
\hline
\end{tabular}
\[
\lambda= \begin{pmatrix}
\lambda_1 & 0 &\hdots & 0 \\
0 & \lambda_2 &\hdots & 0 \\
0 & 0 & \ddots & 0 \\
0 & 0 & \hdots &\lambda_n
\end{pmatrix}
\].
\end{frame}
\end{document}
如果您给出了其他表的环境,您也可以为它们添加颜色定义。