我有一份定义好的文档\rowcolors
现在在数学环境中,case元素以与大括号重叠的表格背景呈现:
可以通过添加以下方法修复\rowcolors{1}{}{}
不幸的是,这在 eqnarray 环境中不起作用。
没有效果,并且将其放在 cases 语句中只会使两行都具有白色背景,仍然覆盖括号。
\documentclass[11pt, a4paper, titlepage, german, final]{scrreprt}
\usepackage[table]{xcolor}
\usepackage{color}
\usepackage{multirow}
\usepackage{colortbl} %puts colors in tables
\definecolor{tr_color1}{HTML}{FFFFFF} %Weiß
\definecolor{tr_color2}{HTML}{E5F2FF} %Blau
\rowcolors{1}{tr_color1}{tr_color2}
\usepackage{amsmath, amssymb, amstext, amsfonts, mathrsfs} % Mathematische Symbole
\begin{document}
\[
PD(t)= \begin{cases}
1 : x \\
0 : y
\end{cases}
\]
\[\rowcolors{1}{}{}
PD(t)= \begin{cases}
1 : x \\
0 : y
\end{cases}
\]
\begin{eqnarray*}
\rowcolors{}{}{}
d & = & \begin{cases} 1 : PD(i)=1 \\ 0 : PD(i)=0 \end{cases}\\
z & = & xx
\end{eqnarray*}
\begin{eqnarray*}
d & = & \begin{cases}\rowcolors{}{}{} 1 : PD(i)=1 \\ 0 : PD(i)=0 \end{cases}\\
z & = & xx
\end{eqnarray*}
\end{document}
来自这里(\csname CT@everycr\endcsname{}
)也不起作用。
那么,如何取消设置 eqnarray 环境中的 rowcolors?
答案1
\@rowc@lors
这似乎有效;基本上,我们在对齐中取消了 的操作amsmath
。当然,我不会对eqnarray
永远不应该使用的操作做任何事情。
\documentclass{article}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\usepackage{etoolbox}
\makeatletter
\pretocmd\env@cases{\def\@rowc@lors{}}{}{}
\pretocmd\start@align{\def\@rowc@lors{}}{}{}
\makeatother
\definecolor{tr_color1}{HTML}{FFFFFF} %Weiß
\definecolor{tr_color2}{HTML}{E5F2FF} %Blau
\rowcolors{1}{tr_color1}{tr_color2}
\begin{document}
\begin{center}
\begin{tabular}{cc}
a & a \\
b & b \\
c & c
\end{tabular}
\end{center}
\[
PD(t)= \begin{cases}
1 : x \\
0 : y
\end{cases}
\]
\begin{align*}
d & = \begin{cases} 1 : PD(i)=1 \\ 0 : PD(i)=0 \end{cases}\\
z & = xx
\end{align*}
\begin{gather*}
a = b \\
c = d
\end{gather*}
\begin{multline*}
a + b \\
c + d
\end{multline*}
\end{document}
答案2
\@rowcolorsfalse
您还可以使用(以及对所有显示数学使用)禁用行颜色(本地)\everydisplay{\@rowcolorsfalse}
。但在我看来,更有趣的问题是如何在不覆盖括号的情况下为案例着色。改变悬垂并不容易,但这似乎有效:
\documentclass[11pt, a4paper, titlepage, german, final]{scrreprt}
\usepackage[table]{xcolor}%
\usepackage{multirow}
\definecolor{tr_color1}{HTML}{FFFFFF} %Weiß
\definecolor{tr_color2}{HTML}{E5F2FF} %Blau
\rowcolors{1}{tr_color1}{tr_color2}
\usepackage{amsmath}
\usepackage{etoolbox,array}
\begin{document}
\makeatletter
\[ \@rowcolorsfalse
PD(t)=
\begin{cases}
1 : x \\
0 : y
\end{cases}
\]
\[
PD(t)=
\begin{cases}
1 : x \\
0 : y
\end{cases}
\]
\patchcmd\env@cases{@{}l}{@{}>{\columncolor{white}[0.2pt][\tabcolsep]}l}{}{}%
\[
PD(t)=
\begin{cases}
1 : x \\
0 : y
\end{cases}
\]
\end{document}
答案3
感谢@david-carlisle 的回答。(看来他不需要答案声誉:D)
到目前为止,原始问题尚未得到解答。但问题出现在语句中\cases
,\eqnarray
其中到目前为止无法取消设置 rowcolor。
aligned
可以通过使用正常数学环境(其中 rowcolor unset 有效)和使用amsmath-package 中的 -environment来绕过此问题。
\[
\rowcolors{1}{}{}
\begin{aligned}
d & = \begin{cases} 1 : PD(i)=1 \\ 0 : PD(i)=0 \end{cases}\\
z & = xx
\end{aligned}
\]
我保留这个答案,以便有人也能回答实际问题。