我正在使用 vNiceArray 来排版块行列式。
当您使用 nicematrix 包创建 vNiceArray 时,水平线太长,以至于超出了垂直线,这看起来不太好(它还使生成的行列式看起来更像表格而不是行列式,这可能会造成混淆)。我不确定哪种解决方案更好,但我认为水平线不应接触侧面的垂直线。
这个问题能轻松解决吗?或者有更好的方法来实现这个结果?
梅威瑟:
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[
\begin{vNiceArray}{c|c}
0&0\\
\hline
0&0
\end{vNiceArray}
\]
\end{document}
答案1
您可以使用键在两侧添加空间margin
。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[
\begin{vNiceArray}{c|c}[margin]
0&0\\
\hline
0&0
\end{vNiceArray}
\]
\end{document}
如果你想要\hline
更短的,你可以在 中使用 Tikz 来绘制它\CodeAfter
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\[
\begin{vNiceArray}{c|c}
0&0\\
0&0
\CodeAfter
\tikz \draw [shorten > = 0.5em, shorten < = 0.5em](2-|1) -- (2-|last) ;
\end{vNiceArray}
\]
\end{document}
您还可以创建自己的命令\MyHline
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\ExplSyntaxOn
\NewExpandableDocumentCommand \MyHline { }
{
\noalign
{
\skip_vertical:N \arrayrulewidth
\tl_gset:Nx \g_nicematrix_code_after_tl
{ \__tomasz_MyHline:n { \int_eval:n { \int_use:c { c@iRow } + 1 } } }
}
}
\cs_new_protected:Nn \__tomasz_MyHline:n
{ \tikz \draw [shorten~> = 0.5em, shorten~< = 0.5em](#1-|1) -- (#1-|last) ; }
\ExplSyntaxOff
\begin{document}
\[
\begin{vNiceArray}{c|c}
0&0\\ \MyHline
0&0
\end{vNiceArray}
\]
\end{document}