![\rowcolors가 행렬 구분 기호를 자르는 이유는 무엇입니까?](https://rvso.com/image/328475/%5Crowcolors%EA%B0%80%20%ED%96%89%EB%A0%AC%20%EA%B5%AC%EB%B6%84%20%EA%B8%B0%ED%98%B8%EB%A5%BC%20%EC%9E%90%EB%A5%B4%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
행렬을 포함하고 행 색상이 바뀌는 표 형식을 조판하고 싶습니다. 어떻게 든 일부 행렬의 왼쪽 대괄호를 추가하면 \rowcolors{1}{}{black!5}
생략됩니다. 내가 뭘 잘못하고 있고 어떻게 이것을 피할 수 있습니까?
\documentclass[ border=2pt]{standalone}
\usepackage{amsmath}
\usepackage[natural,table]{xcolor}
\begin{document}
\rowcolors{1}{}{black!5}
\begin{tabular}[t]{ll}
\rowcolor{gray!50}{\bfseries SKP} & \\ \hline
$A$ & $\begin{bmatrix}-0.25 & 1 \\ 0 & 0.5 \end{bmatrix}$\\
$b=g$ & $\begin{bmatrix}0 \\ 1\end{bmatrix}$
\end{tabular}
\end{document}
답변1
일어나는 일은 다음과 같습니다. bmatrix
왼쪽 구분 기호를 입력한 다음 그 사이에 백스페이스를 사용하여 행렬의 본문을 입력합니다. 이제 몸~이다배열이므로 각 셀이 인쇄되는 현재 배경색을 상속받습니다.패딩을 포함해일반적으로 colortbl
.
백스페이스는 새 레이어에 의해 가려지기 때문에 왼쪽 구분 기호가 사라지는 원인입니다. 아, TeX의 색상이 주는 즐거움이군요! 대신 를 사용 ;-)
하면 문제가 더욱 분명해집니다 pmatrix
. 괄호의 일부만 중복 인쇄되는 것을 분명히 볼 수 있습니다.
해결 방법? 누락된 구분 기호를 다시 인쇄하는 환경 을 정의합니다 colorbmatrix
.
\documentclass[border=2pt]{standalone}
\usepackage{amsmath}
\usepackage[natural,table]{xcolor}
\newsavebox{\bmatrixbox}
\newenvironment{colorbmatrix}
{\begin{lrbox}{\bmatrixbox}
\mathsurround=0pt
$\displaystyle
\begin{bmatrix}}
{\end{bmatrix}$%
\end{lrbox}%
\usebox{\bmatrixbox}%
\kern-\wd\bmatrixbox
\makebox[0pt][l]{$\left[\vphantom{\usebox{\bmatrixbox}}\right.$}%
\kern\wd\bmatrixbox
}
\begin{document}
\rowcolors{1}{}{black!5}
\begin{tabular}[t]{ll}
\rowcolor{gray!50}{\bfseries SKP} & \\ \hline
$A$ & $\begin{colorbmatrix}-0.25 & 1 \\ 0 & 0.5 \end{colorbmatrix}$\\
$b=g$ & $\begin{colorbmatrix}0 \\ 1\end{colorbmatrix}$ \\ \hline
$A$ & $\begin{colorbmatrix}-0.25 & 1 \\ 0 & 0.5 \end{colorbmatrix}$\\
\end{tabular}
\end{document}
흰색 배경이 있는 행에서는 (보이는) 왼쪽 구분 기호도 중복 인쇄되지만 TeX의 정확성을 확신합니다.
가장 좋은 방법은 테이블에서 컬러 배경을 완전히 피하는 것입니다. 그러나 그것은 단지 내 개인적인 의견일 뿐입니다.
답변2
환경에서는 {NiceTabular}
예상 nicematrix
되는 출력을 직접 얻을 수 있습니다.
\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\NiceMatrixOptions{cell-space-limits=2pt}
\begin{NiceTabular}[t]{ll}[colortbl-like]
\CodeBefore
\rowcolors{1}{}{black!5}
\Body
\rowcolor{gray!50}\bfseries SKP & \\ \Hline
$A$ & $\begin{bmatrix}-0.25 & 1 \\ 0 & 0.5 \end{bmatrix}$\\
$b=g$ & $\begin{bmatrix}0 \\ 1\end{bmatrix}$
\end{NiceTabular}
\end{document}
여러 컴파일이 필요합니다( nicematrix
내부적으로 PGF/Tikz 노드를 사용하기 때문에).