xcolor's rowcolor блокирует многострочные скобки

xcolor's rowcolor блокирует многострочные скобки

Я пытаюсь создать таблицу с разными цветами, чередующимися в каждой строке, и обнаружил, что мой документ компилируется следующим образом:

Строки с цветами «покрывают» скобки оператора «cases», а неокрашенные строки — нет.

У меня были похожие проблемы с матрицами и другими большими скобками, но не с другими, такими как интегралы и суммы. Я посмотрел решения наздесьиздесь, но я не уверен, что понимаю хотя бы один из них, или какое отношение они имеют к моей проблеме.

Мой вопрос заключается в том, является ли это проблемой способа раскрашивания строк, и существует ли более традиционный способ сделать это.

Моя разметка здесь:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{amsmath}
\begin{document}

\begin{table}[h]

\renewcommand{\arraystretch}{1.5}%
\rowcolors{2}{}{gray!10} 
\begin{tabular}{p{3cm}|p{5cm}}

    \textbf{Problem} & \\
    With Color & $n! = 
    \begin{cases} 
        1 & \text{if } n = 0 \\
        (n-1)! &  \text{otherwise}
    \end{cases}$ \\

    Without Color & $n! = 
    \begin{cases} 
        1 & \text{if } n = 0 \\
        (n-1)! &  \text{otherwise}
    \end{cases}$ \\

\end{tabular}
\end{table}
\end{document}

решение1

введите описание изображения здесь

это работает, \left\{\begin{array}{rl} ... \end{array}\right.возможно, это поможет вам:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{amsmath}
\usepackage{array,cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}

\begin{document}
    \begin{table}[h]
\renewcommand{\arraystretch}{1.5}%
\rowcolors{2}{}{gray!10}
\begin{tabular}{p{3cm}|>{$}S{p{5cm}}<{$}}
\textbf{Problem}    & \\
        With Color  & n! = \left\{\begin{array}{rl}
                            1       & \text{if } n = 0 \\[-1ex]
                            (n-1)!  &  \text{otherwise}
                            \end{array}\right. \\
    Without Color   & n! = \begin{cases}
                            1       & \text{if } n = 0 \\
                            (n-1)!  &  \text{otherwise}
                            \end{cases} 
\end{tabular}
    \end{table}
\end{document}

решение2

Загрузите mathtoolsвместо amsmath(mathtools — это расширение amsmath) и используйте, скажем, среду `dcases*:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{mathtools}
\begin{document}

\begin{table}[h]
\renewcommand{\arraystretch}{1.5}%
\rowcolors{2}{}{gray!10}
\begin{tabular}{p{3cm}|p{5cm}}
    \textbf{Problem} & \\
    With Color & $n! =
    \begin{dcases*}
        1 & if $ n = 0 $ \\
        (n-1)! & otherwise
    \end{dcases*}$ \\
\end{tabular}
\end{table}

\end{document} 

введите описание изображения здесь

решение3

Среда {NiceTabular}предоставляет nicematrixинструменты, аналогичные инструментам , colortblно использующие PGF/Tikz для рисования.

Используя эту среду, вы получаете именно то, что хотите (но вам потребуется несколько компиляций, поскольку nicematrixиспользуются узлы PGF/Tikz).

\documentclass{article}
\usepackage{amsmath}
\usepackage{nicematrix}
\begin{document}

\begin{table}[h]
\renewcommand{\arraystretch}{1.5}%
\begin{NiceTabular}{p{3cm}|>{\arraybackslash}p{5cm}}%
    [code-before = \rowcolors{2}{}{gray!10}]
    \textbf{Problem} & \\
    With Color & $n! = 
    \begin{cases} 
        1 & \text{if } n = 0 \\
        (n-1)! &  \text{otherwise}
    \end{cases}$ \\
    Without Color & $n! = 
    \begin{cases} 
        1 & \text{if } n = 0 \\
        (n-1)! &  \text{otherwise}
    \end{cases}$ \\
\end{NiceTabular}
\end{table}
\end{document}

Вывод кода выше

Связанный контент