我想制作一个类似于下图的矩阵,但正如您所看到的,由于单词的长度,列之间的间距不一致。
以下是我使用的代码:
\[
\bordermatrix{\text{} & \text{all} & \text{dog} & \text{dogs} & \text{eat} & \text{fleas} & \text{go} & \text{has} & \text{heaven} & \text{in} & \text{is} & \text{it} & \text{my} & \text{no} & \text{to} & \text{world} \cr
D_1 & 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 1& 0& 0& 0 \cr
D_2 &1& 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0 \cr
D_3 &0& 1& 0& 0& 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0 \cr
D_4& 0& 2& 0& 1& 0& 0& 0& 0& 0& 1& 1& 0& 0& 0& 1}
\]
答案1
在此处创建一个宏\fxtxt
,将文本上方的条目放置在适当宽度的固定宽度框中,此处选择为 3.5ex。
\documentclass{article}
\usepackage{amsmath}
\newcommand\fxtxt[1]{\makebox[3.5ex]{#1}}
\begin{document}
\[
\bordermatrix{\fxtxt{} & \fxtxt{all} & \fxtxt{dog} & \fxtxt{dogs} & \fxtxt{eat} & \fxtxt{fleas} & \fxtxt{go} & \fxtxt{has} & \fxtxt{heaven} & \fxtxt{in} & \fxtxt{is} & \fxtxt{it} & \fxtxt{my} & \fxtxt{no} & \fxtxt{to} & \fxtxt{world} \cr
D_1 & 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 1& 0& 0& 0 \cr
D_2 &1& 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0 \cr
D_3 &0& 1& 0& 0& 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0 \cr
D_4& 0& 2& 0& 1& 0& 0& 0& 0& 0& 1& 1& 0& 0& 0& 1}
\]
\end{document}
继续回答楼主的问题,只是重新定义\fxtxt
为45度角放置,宽度更窄,并且左对齐:
\documentclass{article}
\usepackage{amsmath,rotating}
\newcommand\fxtxt[1]{\rotatebox[origin=left]{45}{\makebox[3ex][l]{#1}}}
\begin{document}
\[
\bordermatrix{\fxtxt{} & \fxtxt{all} & \fxtxt{dog} & \fxtxt{dogs} & \fxtxt{eat} & \fxtxt{fleas} & \fxtxt{go} & \fxtxt{has} & \fxtxt{heaven} & \fxtxt{in} & \fxtxt{is} & \fxtxt{it} & \fxtxt{my} & \fxtxt{no} & \fxtxt{to} & \fxtxt{world} \cr
D_1 & 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 1& 0& 0& 0 \cr
D_2 &1& 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0 \cr
D_3 &0& 1& 0& 0& 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0 \cr
D_4& 0& 2& 0& 1& 0& 0& 0& 0& 0& 1& 1& 0& 0& 0& 1}
\]
\end{document}
答案2
另一个解决方案是使用blkarray
和\makebox
:
\documentclass{article}
\usepackage{mathtools}
\usepackage{blkarray}
\newcommand\chd[1]{\makebox[1.33em]{#1}}%
\begin{document}
\[ \begin{blockarray}{*{16}{c}}
& \chd{all} & \chd{dog} & \chd{dogs} & \chd{eat} & \chd{fleas} & \chd{go} & \chd{has} & \chd{heaven} & \chd{in}%
& \chd{is} & \chd{it} & \chd{my} & \chd{no} & \chd{to} & \chd{world}\\
\begin{block}{c(*{15}{c})}
D_1 & 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 1& 0& 0& 0 \\
D_2 &1& 0& 1& 0& 0& 1& 0& 1& 0& 0& 0& 0& 0& 1& 0 \\
D_3 &0& 1& 0& 0& 1& 0& 1& 1& 1& 0& 0& 0& 1& 0& 0 \\
D_4& 0& 2& 0& 1& 0& 0& 0& 0& 0& 1& 1& 0& 0& 0& 1 \\
\end{block}
\end{blockarray} \]
\end{document}