如同这个问题,我试图输出一个用虚线而不是虚线的类似矩阵。
有什么办法可以做到这一点吗?
我也尝试使用这三个包:
\usepackage{tabularx} \usepackage{longtable} \usepackage{arydshln}
我也想学习如何实现这一点\documentclass{revtex4},除了使用\documentclass{文章}据我们所知,据我尝试,arydshln 可能与 revtex4 或 revtex4-1 不兼容。
我遇到了类似这篇文章的问题。我在 ;arydshln
后面添加了tabularx
,但它无法成功编译,而只输出错误。有人可以提供任何提示或解决方案吗?
答案不必完整。谢谢您的帮助!!!
答案1
由于revtex4
似乎与arydshln
包不兼容,这里有一个使用 TikZ 的选项:
\documentclass[aps,prl,twocolumn,nofootinbib,superscriptaddress,floatfix]{revtex4}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\[
\Biggl(\mkern-5mu
\begin{tikzpicture}[baseline=-.65ex]
\matrix[
matrix of math nodes,
column sep=1ex,
] (m)
{
B & C \\
D & E \\
};
\draw[dotted]
([xshift=0.5ex]m-1-1.north east) -- ([xshift=0.5ex]m-2-1.south east);
\draw[dotted]
(m-1-1.south west) -- (m-1-2.south east);
\node[above,text depth=1pt] at (m-1-1.north) {$\scriptstyle r$};
\node[above,text depth=1pt] at (m-1-2.north) {$\scriptstyle n-r$};
\node[left,overlay] at ([xshift=-1.2ex]m-1-1.west) {$\scriptstyle r$};
\node[left,overlay] at ([xshift=-1.2ex]m-2-1.west) {$\scriptstyle n-r$};
\end{tikzpicture}\mkern-5mu
\Biggr)
\]
\end{document}
答案2
\hdashline
您可以通过修改长度\dashlinedash
和来调整破折号和间隙\dashlinegap
:
\documentclass{article}
\usepackage{tabularx}
\usepackage{arydshln,leftidx,mathtools}
\setlength{\dashlinedash}{.4pt}
\setlength{\dashlinegap}{.8pt}
\begin{document}
\[
\leftidx{_{m-r}^{\phantom{m-r}\llap{$\scriptstyle r$}}}{\left( \begin{array}{c:c}
\smash{\overset{r}{B}} & \mathclap{\smash{\overset{n-r}{C}}} \\
\hdashline
D & E
\end{array} \right)}{}
\]
\noindent
\begin{tabularx}{\linewidth}{X:X}
\hdashline
ABC & DEF \\
\hdashline
\end{tabularx}
\end{document}
两种长度的默认值均为4pt
。
答案3
这使用了一种堆叠方法。这个答案帮助我思考如何将虚线/虚线自动化为堆叠的一部分,而在这个 MWE 中,这必须非常手动地完成。
\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{graphicx}
\stackMath
% DASHED LINE OF SPECIFIED LENGTH
% From morsburg at http://tex.stackexchange.com/questions/12537/
% how-can-i-make-a-horizontal-dashed-line/12553#12553
\def\dashfill{\cleaders\hbox to .5em{\rule{.4ex}{.4pt}}\hfill}
\newcommand\dashline[1]{\hbox to #1{\dashfill\hfil}}
\newlength\tmplen
\begin{document}
\[
\strutshortanchors{F}\def\stackalignment{r}\setstackgap{S}{5pt}
\stackanchor[15pt]{{}^r}{{}_{m-r}}
\def\stackalignment{c}
\stackon[1pt]{
\left(\raisebox{2pt}{%
\savestack{\num}{$~B~\,$}\tmplen=\wd\numcontent\relax%
\stackunder{\stackon{\dashline{\tmplen}}{\num}}{D\;}%
\rotatebox{90}{\kern-1.1\baselineskip\dashline{2.5\baselineskip}}%
\savestack{\num}{$\,~C~$}\tmplen=\wd\numcontent\relax%
\stackunder{\stackon{\dashline{\tmplen}}{\num}}{\,E}}%
\right)
}{%
~~{}_r~\,~_{n-r}%
}
\]
\end{document}
答案4
该软件包nicematrix
具有直接执行该操作的功能。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\NiceMatrixOptions{code-for-first-row = \scriptstyle,code-for-first-col = \scriptstyle }
$A = \begin{pNiceArray}{c:c}[first-row, first-col, columns-width=auto]
& r & n-r \\
r & B & C \\
\hdottedline
m-r & D & E
\end{pNiceArray}$
\end{document}