我想创建某种特征矩阵,其中可用类为列,已实现特征为行。问题是类名太长了。
将它们旋转 90° 看起来很傻,所以我正在寻找其他想法。
到目前为止,我唯一的想法是水平书写标题文本,并用箭头(或类似箭头)将“标题行”与列匹配。但坦率地说,我不知道如何在 latex 中执行此类操作。
我这个简单方法的一个最简单例子如下。
\documentclass{beamer} \usepackage{tabularx} % 我实际上正在使用自定义主题 % PaloAlto 的空间浪费情况类似 \usetheme{帕洛阿尔托} \开始{文档} \框架 { \frametitle{boost 实现的图形类的比较} \begin{tabularx}{\textwidth}{X ccc} % % 列标题,第一列为空 % & \rotatebox{90}{邻接列表} & \rotatebox{90}{邻接矩阵} & \rotatebox{90}{压缩稀疏行图} \ % % 行,我怀疑我需要大约 10 % 类 adjlist adjmatrix csrg \hline AdjacencyGraph & 是 & 否 & 是 \\ 接口 \#2 & 是 & 否 & 是 \\ 接口 \#3 & 是 & 否 & 是 \\ 接口 \#4 & 是 & 否 & 是 \\ 接口 \#5 & 是 & 否 & 是 \\ 接口 \#6 & 是 & 否 & 是 \\ 接口 \#7 & 是 & 否 & 是 \\ 接口 \#8 & 是 & 否 & 是 \\ 接口 \#9 & 是 & 否 & 是 \\ % 省略休息 \结束{tabularx} } \结束{文档}
如果它很重要:我正在用 beamer 进行演示。
答案1
下面是一个示例,使用您的想法将标题水平放置并用箭头将其连接到列:
\documentclass{beamer}
\usepackage{tikz}
\usepackage{tabularx}
\newcommand*{\hnode}[1]{\tikz[remember picture] \node (#1) {};}
% I am actually using a similar theme
% The space ``wasted'' is similar for PaloAlto though
\usetheme{PaloAlto}
\begin{document}
\frame
{
\frametitle{Comparision of boost implemented graph classes}
\begin{tabular}{l}
%
% Column Headers, first column is empts
%
compressed\_sparse\_row\_graph\hnode{H3}\\
adjacency\_matrix\hnode{H2}\\
adjacency\_list\hnode{H1}\\
\\
\end{tabular}
\begin{tabularx}{\textwidth}{X c c c}
%
& \hnode{C1}
& \hnode{C2}
& \hnode{C3}\\
% Rows, I suspect I need about 10
% Class adjlist adjmatrix csrg
\hline
AdjacencyGraph & Yes & No & Yes \\
Interface \#2 & Yes & No & Yes \\
Interface \#3 & Yes & No & Yes \\
Interface \#4 & Yes & No & Yes \\
Interface \#5 & Yes & No & Yes \\
Interface \#6 & Yes & No & Yes \\
Interface \#7 & Yes & No & Yes \\
Interface \#8 & Yes & No & Yes \\
Interface \#9 & Yes & No & Yes \\
% Rest omitted
\end{tabularx}
\tikz[remember picture,overlay] \draw (H1) [very thick, red,->] -| (C1);
\tikz[remember picture,overlay] \draw (H2) [very thick, red,->] -| (C2);
\tikz[remember picture,overlay] \draw (H3) [very thick, red,->] -| (C3);
}
\end{document}
如果我可以这么说的话,它实际上看起来相当不错。
答案2
& \llap{\rotatebox[origin=rb]{-30}{\small adjacency\_list}}
& \llap{\rotatebox[origin=rb]{-30}{\small adjacency\_matrix}}
& \llap{\rotatebox[origin=rb]{-30}{\small compressed\_sparse\_row\_graph}}\\
也许一个解决方案