如何使用 slashbox 指定数组行高?

如何使用 slashbox 指定数组行高?

我遇到了问题\backslashbox。从图片中可以看出,它很丑陋,找不到更好的词来形容。我想把行高调小一点,以强制斜线框也变小。我试过使用\arraystretch,但这并没有影响斜线框。我有什么办法让它在使用时看起来更美观\backslashbox

以下是代码片段:

\documentclass[11pt]{article}
\usepackage{setspace}
\doublespacing
\usepackage{array}
\usepackage{slashbox}

\begin{document}

\begin{equation}
\mbox D^{\frac 1 2}_{mm^\prime}=\begin{array}{r | r r}
\mbox{\backslashbox{$m$\kern-1em}{\kern-1em$m^{\prime\prime}$}}& \frac 1 2 & -\frac 1 2 \\ \hline
\frac 1 2 & a & b \\
-\frac 1 2 & c & d
\end{array}
\end{equation}

\end{document}

在此处输入图片描述

答案1

我想到了一个适合你特定论点的方法。然后,为了尝试让它适用于\bsbox(反斜杠框)中的其他内容,我在 MWE 中引入了\refAand概念,其中我将论点放在与最初有效大小相同的框中。\refB\bsbox

\documentclass[11pt]{article}
\usepackage{setspace}
\doublespacing
\usepackage{array}
%\usepackage{slashbox}
\usepackage{stackengine}[2013-09-11]
\usepackage{graphicx}
\def\refA{$m$}
\def\refB{$m^{\prime\prime}$}
\newcommand\bsbox[2]{%
  \raisebox{-1pt}{%
  \stackinset{c}{}{c}{}{\rotatebox{45}{\rule[-.5em]{.2pt}{3em}}}{%
  \def\stacktype{L}%
  \setstackgap{L}{.5\baselineskip}%
  \kern-1pt\makebox[\widthof{\refA}][r]{#1}\stackon{}{\smash{\makebox[\widthof{\refB}]{#2}}}\kern1pt%
  }%
  \kern-5.5pt}%
}
\begin{document}
\begin{equation}
\mbox D^{\frac 1 2}_{mm^\prime}=\begin{array}{r | r r}
\mbox{\normalsize\bsbox{$m$}{$m^{\prime\prime}$}}& \frac 1 2 & -\frac 1 2 \\ \hline
\frac 1 2 & a & b \\
-\frac 1 2 & c & d
\end{array}
\end{equation}

\begin{equation}
\mbox D^{\frac 1 2}_{mm^\prime}=\begin{array}{r | r r}
\mbox{\normalsize\bsbox{$m^2$}{$m_{2}$}}& \frac 1 2 & -\frac 1 2 \\ \hline
\frac 1 2 & a & b \\
-\frac 1 2 & c & d
\end{array}
\end{equation}
\end{document}

在此处输入图片描述

答案2

这里有一些想法,但我不确定这是否是您想要的输出。

\documentclass[11pt]{article}
\usepackage{array}
\usepackage{diagbox}

\begin{document}

\begin{equation}
\mbox D^{\frac 1 2}_{mm^\prime}=\begin{array}{r | r r c}
\mbox{\backslashbox[11mm]{\scriptsize$m$}{\scriptsize$m^{\prime\prime}$}}& \frac 1 2 & - \frac 1 2 & \\ \hline
\rule{0pt}{2.5ex}\frac 1 2 & a & b & \\[1ex]
-\frac 1 2 & c & d & 
\end{array}
\end{equation}

\end{document}

首先,我使用diagbox包而不是,slashbox因为由于许可证问题,slashboxTeXLive 发行版中不再提供。我\scriptsize在拆分单元格中使用了两个值,以减少所需空间和与线发生碰撞的风险。我还指定了线的长度,backslashbox使其尽可能小而不会发生任何碰撞。最后,我删除了包setspacedoublespacing设置,以消除它在第一行中引起的额外空间。为了保持整洁,我为以下行添加了一些额外空间。

输出

相关内容