我试图在表格旁边画这样的箭头:
我能够用这个技巧画出垂直箭头显示在这里:
$\left.
\begin{tabular}{|c|c|c|}
\hline medium & high & high \\
\hline low & medium & high \\
\hline low & low & medium \\
\hline
\end{tabular}
\right\uparrow
\rotatebox[origin=c]{90}{Impact}$
但是我不知道如何在表格顶部画水平箭头。这个答案似乎使用相同的技术来绘制水平箭头,但我无法适应它。它也应该可以使用 TikZ但我希望保持简单。
答案1
距离您提出这个问题已经有一段时间了,但我刚刚才偶然发现。
既然您要求tikz
解决方案,那么这里有一个简单的解决方案。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\def\spc{7pt} % Space between array and arrows, adjuts the arrows length automatically
\tikzset{myarrow/.style={-stealth,shorten >=\spc, shorten <=\spc}}
\begin{tikzpicture}
\node[inner sep=\spc] (t)
{
\begin{tabular}{|*{3}{c|}}
\hline medium & high & high \\
\hline low & medium & high \\
\hline low & low & medium \\
\hline
\end{tabular}
};
\draw[myarrow] (t.north west) -- (t.north east) node[midway,above] {Likelihood};
\draw[myarrow] (t.south east) -- (t.north east) node[midway,below,sloped] {Impact};
\end{tikzpicture}
\end{document}
答案2
只需xrightarrow
:
\documentclass{article}
\usepackage{amsmath, amssymb}
\usepackage{bigstrut}
\usepackage{array, rotating, cellspace}
\setlength{\cellspacetoplimit}{6pt}
\setlength{\cellspacebottomlimit}{6pt}
\begin{document}
$\xrightarrow[%
\left.\begin{tabular}{|*{3}{>{\sffamily}Sc|}}
\hline medium & high & high \\
\hline low & medium & high \\
\hline low & low & medium \\
\hline
\end{tabular}%
\enspace \right\uparrow\hskip-1em\rlap{\hskip 1.25em\rotatebox[origin=c]{90}{\sffamily Impact}}]
{\textsf{\normalsize Likelihood}\bigstrut} $
\end{document}
答案3
{NiceTabular}
这是使用和 Tikz 的解决方案nicematrix
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{NiceTabular}{ccc}[hvlines,first-row,last-col,cell-space-limits=6pt]
\Cdots[line-style={solid,->}]^{\text{Likelihood}} \\
medium & high & high
& \Vdots[line-style={xshift=3mm,solid,<-}]^{\text{Impact}} \\
low & medium & high \\
low & low & medium \\
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。