当我包括时arydshln
,我得到了冲突kbordermatrix
(来自这里):
\documentclass{article}
\usepackage{amsmath}
\usepackage{arydshln}
\usepackage{kbordermatrix}
\begin{document}
\begin{align}
\kbordermatrix{ &1 & 2 & 3\\
a&b & c & d}
\end{align}
\end{document}
\adl@@cr ...tempdima \xdef \adl@rowsL {\adl@rowsL
(\adl@colsL /\number \adl@...
l.11 \end{align}
我怎样才能使用这两个包而不发生冲突?
答案1
如果您不需要在里面使用虚线kbordermatrix
,您可以获得与blockarray
环境相同的结果——以一种不太简单的方式(但您可以定义新的命令/环境),并且arydshln
只要您不在块数组内使用,它就兼容。
因此我建议使用此代码作为解决方法:
\documentclass{article}
\usepackage{amsmath}
\usepackage{kbordermatrix}
\usepackage{array, blkarray} %
\usepackage{arydshln}
\newcolumntype{$}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\begin{document}
\begin{align}
\begin{blockarray}{*{3}{>{\scriptstyle}c}}
1 & 2 & 3\\
\begin{block}{\Left{$ \scriptstyle a $\enspace }{[\enspace}ccc\Right{. \enspace]}{}}
b & c & d\\
\end{block}
\end{blockarray}
\end{align}
\begin{align}
\begin{array}{$c*{3}{^c}}
\rowstyle{\scriptstyle} & 1 & 2 & 3\\
\hdashline
\scriptstyle a & b & c & d
\end{array}
\end{align}
\end{document}
答案2
arydshln
如果您需要和的功能kbordermatrix
,我建议您使用nicematrix
。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
$\begin{pNiceArray}{cc:cc}[first-row,first-col,last-row,last-col]
& C_1 & C_2 & C_3 & C_4 \\
L_1 & 0 & 1 & 2 & 3 & L_1 \\
L_2 & 4 & 5 & 6 & 7 & L_2 \\
\hdottedline
L_3 & 8 & 9 & 10 & 11 & L_3 \\
L_4 & 12 & 13 & 14 & 15 & L_4 \\
& C_1 & C_2 & C_3 & C_4
\end{pNiceArray}$
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
上述代码已创建了虚线规则(带有圆点)。如果您更喜欢虚线规则,则只需加载 TikZ 并使用dashed
TikZ 的样式即可。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
$\begin{pNiceArray}{cc|[tikz=dashed]cc}[first-row,first-col,last-row,last-col,margin=1pt]
& C_1 & C_2 & C_3 & C_4 \\
L_1 & 0 & 1 & 2 & 3 & L_1 \\
L_2 & 4 & 5 & 6 & 7 & L_2 \\
\Hline[tikz=dashed]
L_3 & 8 & 9 & 10 & 11 & L_3 \\
L_4 & 12 & 13 & 14 & 15 & L_4 \\
& C_1 & C_2 & C_3 & C_4
\end{pNiceArray}$
\end{document}
答案3
arydshln
使用和存在问题\kbordermatrix
。此外,您需要\kbordermatrix
在等式中使用 (根据相关文档来自加州理工学院)。话虽如此,它并不否认这些包之间的冲突。你可以尝试easybmat 包代替芳基化物在某些情况下。