我在 Beamer 框架中有一个表格,我想在某些列之间添加虚线。但是,我有一些限制。首先,我想确保在某些转换之后禁用线条,这样它们应该可以visible
正常工作。接下来,我希望能够在虚线的顶部或底部写一段文字。我尝试使用该arydshln
软件包,但它似乎没有提供我需要的灵活性。
\documentclass[aspectratio=169,xcolor=dvipsnames]{beamer}
\usepackage{arydshln}
\begin{document}
\begin{frame}{Test}
\begin{figure}
\def\arraystretch{1.2}
%\setlength{\tabcolsep}{0.2em}
\begin{tabular}{ c : c c c : c }
$e$ & $e+1$ & $e+2$ & $e+3$ & $e+4$ \\
\hline
$k_{e}$ & $k_{e+1}$ & $k_{e+2}$ & $k_{e+3}$ & $k_{e+4}$ \\
$\Delta_{e}$ & $\Delta_{e+1}$ & $\Delta_{e+2}$ & $\Delta_{e+3}$ & $\Delta_{e+4}$\\
$\sigma_{e}$ & $\sigma_{e+1}$ & $\sigma_{e+2}$ & $\sigma_{e+3}$ & $\sigma_{e+4}$ \\
\end{tabular}
\end{figure}
\end{frame}
\end{document}
更确切地说,我想实现如下所示的效果。有什么想法可以使用表格或 TikZ 来实现吗?
答案1
由于表格是重复的,这里我会使用 tikz 和一个\foreach
命令。像这样:
\documentclass[aspectratio=169,xcolor=dvipsnames]{beamer}
%\usepackage{arydshln}
\usepackage{tikz}
\begin{document}
\begin{frame}{Test}
\begin{figure}
\begin{tikzpicture}[y={(0cm,-1cm)}]
\foreach\i in {0,...,4}
{% TABLE DATA
\ifnum \i > 0
\def\mytext{e+\i}
\else
\def\mytext{e}
\fi
\node at (1.2*\i,0) {$\mytext$};
\node at (1.2*\i,1) {$k_{\mytext}$};
\node at (1.2*\i,2) {$\Delta_{\mytext}$};
\node at (1.2*\i,3) {$\sigma_{\mytext}$};
}
% LINES
\draw[thick] (-0.6,0.5) -- (5.4,0.5);
\only<2>
{%
\draw[thick,dashed] (0.6,-0.5) -- (0.6,3.5) node [red,below] {Text 1};
\draw[thick,dashed] (4.2,-0.5) -- (4.2,3.5) node [red,below] {Text 2};
}
\useasboundingbox (-0.6,-0.5) rectangle (5.4,6);
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
答案2
使用{NiceArray}
和nicematrix
Tikz。
\documentclass[aspectratio=169,xcolor=dvipsnames]{beamer}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{frame}{Test}
\begin{figure}
\def\arraystretch{1.2}
$\begin{NiceArray}{ccccc}
e & e+1 & e+2 & e+3 & e+4 \\
\hline
k_{e} & k_{e+1} & k_{e+2} & k_{e+3} & k_{e+4} \\
\Delta_{e} & \Delta_{e+1} & \Delta_{e+2} & \Delta_{e+3} & \Delta_{e+4}\\
\sigma_{e} & \sigma_{e+1} & \sigma_{e+2} & \sigma_{e+3} & \sigma_{e+4} \\
\CodeAfter
\only<2>{\tikz \draw [dashed] (1-|2) -- (last-|2) node [below] {\color{red} Text} ;}
\end{NiceArray}$
\end{figure}
\end{frame}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。