easybmat 矩阵虚线

easybmat 矩阵虚线

我使用该easybmat包对一些块矩阵进行排版,如下所示,其中行由虚线分隔。由于某种原因,虚线并不总是正确显示。例如以下 MWE:

\documentclass{standalone}
\usepackage{easybmat}
\begin{document}
$\left[
\begin{BMAT}(@){c}{c.c}
A \\ B
\end{BMAT}\right]$
\end{document}

呈现为:

在此处输入图片描述

注意到最右边的点太长了吗?大小不等的点是 pdf 查看器瑕疵,可以忽略,但最右边的“点”在打印时看起来确实很难看。这里有人知道如何解决这个问题吗?

答案1

如果你仔细观察输出,你会发现“点”不是单独的字形,而是绘制的小线段,通常是正方形。我没有检查生成它们的代码,但我确定最后一条线段的大小似乎取决于矩阵中最宽元素的宽度。例如,如果用替换BM最后一个“点”的大小与其余所有点的大小相同。(需要进行更多实验或调查才能确定有效宽度是否存在下限或上限。)

知道效果取决于宽度,就可以调整有效宽度以获得良好的效果。在元素周围添加一些微小的空间或稍微减少空间可以产生更令人满意的效果:

示例代码的输出

\documentclass[12pt]{article}
\usepackage{easybmat}
\begin{document}
\Large
$\left[
\begin{BMAT}(@){c}{c.c}
A \\ B
\end{BMAT}\right]$
%
$\left[
\begin{BMAT}(@){c}{c.c}
A \\ \mkern1mu B\mkern1mu
\end{BMAT}\right]$
%
$\left[
\begin{BMAT}(@){c}{c.c}
A \\ \mkern-1mu B\mkern-1mu
\end{BMAT}\right]$

\end{document}

请注意,调整与大小有关(因此这里使用和article类来获得清晰的图像),所以可能需要进行一些实验。[12pt]\Large

我会尝试找出包中非方形线段的绘制位置,但这不会立即发生。代码在这方面肯定存在缺陷。(并且该包很旧,因此不太可能更新。也可能存在我不知道的更好/更新的方法。)

答案2

作为信息,nicematrix在其环境({pNiceMatrix}、等)中提供了绘制水平虚线的{bNiceMatrix}命令(以及用于绘制垂直虚线的序言中的说明符)。\hdottedline:{NiceArray}

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
$\begin{bNiceMatrix}
a & b & c & d \\
a & b & c & d \\
\hdottedline
a & b & c & d \\
\end{bNiceMatrix}$
\end{document}

上述代码的输出

相关内容