我试图消除使用 tikzmarkin 突出显示表格区域时出现的偏移/缩进问题。
\documentclass{beamer}
\RequirePackage{booktabs,colortbl,caption,tabularx,chngcntr, tikz, comment, subfig,xcolor}
\usepackage{lmodern}
\usepackage[beamer,customcolors]{hf-tikz}
\tikzset{hl/.style={
set fill color=red!80!black!40,
set border color=red!80!black,
},
}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Correlations}
\vspace{-2em}
\begin{tabular*}{1.00\textwidth}{@{\hskip\tabcolsep\extracolsep\fill}l*{6}r}
& $\alpha$ & $ p_L $ & $\kappa$ & $\sigma$ & $\delta$ & $ \lambda $ \\
[1.5pt] \hline
\tikzmarkin<3>[hl]{c1}$\alpha$ \tikzmarkend{c1} & \tikzmarkin<1>[hl]{a1} -0.08 \tikzmarkend{a1} & 0.05 & -0.18 & 0.18 & -0.06 & -0.18 \\ [2pt]
$ ~p_L $ & -0.07 & 0.03 & -0.08 & 0.02 & 0.09 & -0.02 \\ [2pt]
$\varepsilon$ & -0.31 & 0.05 & -0.33 & \tikzmarkin<2>[hl]{b1} 0.59 & 0.04 & -0.30 \\ [2pt]
$\mu$ & -0.33 & 0.10 & -0.39 & 0.57 \tikzmarkend{b1} & 0.07 & -0.40 \\ [2pt]
$ \frac{\mu}{\varepsilon} $ & 0.23 & -0.06 & 0.47 & -0.39 & 0.24 & 0.49 \\ [2pt]
\end{tabular*}
\end{frame}
\end{document}
例如,第一个突出显示的单元格 (-0.08) 的内容向左移动。同样,第二个突出显示的单元格的底部单元格内容向左移动。但是,当第一列中的元素突出显示时,内容会向右移动。有没有使用 tikz 选项来修复此问题?谢谢。
答案1
删除要突出显示的单元格内容前后的空格,即:
改变这个:
& \tikzmarkin<1>[hl]{a1} -0.08 \tikzmarkend{a1} &
更改为:
&\tikzmarkin<1>[hl]{a1}-0.08\tikzmarkend{a1}&
完成解决方案的 MWE:
\documentclass{beamer}
\RequirePackage{booktabs,colortbl,caption,tabularx,chngcntr, tikz, comment, subfig,xcolor}
\usepackage{lmodern}
\usepackage[beamer,customcolors]{hf-tikz}
\tikzset{hl/.style={
set fill color=red!80!black!40,
set border color=red!80!black,
},
}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Correlations}
\vspace{-2em}
\begin{tabular*}{1.00\textwidth}{@{\hskip\tabcolsep\extracolsep\fill}l*{6}r}
& $\alpha$ & $ p_L $ & $\kappa$ & $\sigma$ & $\delta$ & $ \lambda $ \\[1.5pt] \hline
\tikzmarkin<3>[hl]{c1}$\alpha$\tikzmarkend{c1}& \tikzmarkin<1>[hl]{a1}-0.08\tikzmarkend{a1} & 0.05 & -0.18 & 0.18 & -0.06 & -0.18 \\[2pt]
$ ~p_L $ & -0.07 & 0.03 & -0.08 & 0.02 & 0.09 & -0.02 \\ [2pt]
$\varepsilon$ & -0.31 & 0.05 & -0.33 & \tikzmarkin<2>[hl]{b1}0.59 & 0.04 & -0.30 \\[2pt]
$\mu$ & -0.33 & 0.10 & -0.39 & 0.57\tikzmarkend{b1} & 0.07 & -0.40 \\[2pt]
$ \frac{\mu}{\varepsilon} $ & 0.23 & -0.06 & 0.47 & -0.39 & 0.24 & 0.49 \\[2pt]
\end{tabular*}
\end{frame}
\end{document}
答案2
因为,至少隐含地,你正在使用蒂克兹我建议使用matrix of (math) nodes
——参见手册第 57.1 节tikz
。
这样,您就可以按照通常的方式在命令中输入矩阵\matrix {...}
,然后应用tikz
您想要的任何格式“在表格顶部”。要使此功能正常工作,您需要添加fragile
向投影机并突出显示矩阵中的条目,将其添加|[hl]|
到相应的单元格中。结果如下:
完整代码如下:
\documentclass{beamer}
\RequirePackage{booktabs,colortbl,caption,tabularx,chngcntr, tikz, comment, subfig,xcolor}
\usetikzlibrary{matrix}
\usepackage{lmodern}
\usepackage[beamer,customcolors]{hf-tikz}
\tikzset{hl/.style={
fill=red!80!black!40,
draw=red!80!black,
rounded corners
}
}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[fragile]{Correlations}
\begin{tikzpicture}
\matrix (M)[matrix of math nodes,nodes in empty cells,
row sep=2mm,column sep=2mm,
nodes={anchor=east, minimum width=2em, minimum height=2em}
]{
& \alpha& p_L & \kappa & \sigma & \delta & \lambda \\
\alpha & |[hl]|-0.08 & 0.05 & -0.18 & 0.18 & -0.06 & -0.18 \\
~p_L & -0.07 & 0.03 & -0.08 & 0.02 & 0.09 & -0.02 \\
\varepsilon& -0.31 & 0.05 & -0.33 & 0.59 & 0.04 & -0.30 \\
\mu & -0.33 & 0.10 & -0.39 & 0.57 &|[hl]| 0.07 & -0.40 \\
\frac{\mu}{\varepsilon}& 0.23&-0.06& 0.47&-0.39& 0.24 & 0.49 \\
};
\draw[thick,blue](M-1-7.south east)--(M-1-1.south west);
\end{tikzpicture}
\end{frame}
\end{document}
几点说明:
- 我随意设置了
row sep=2mm,column sep=2mm
行距和列距。您可以根据自己的喜好进行更改 - 这
nodes in empty cells
是唯一必要的,因为矩阵中没有条目,我使用此条目在表头下(1,1)
绘制蓝色\hrule
- 因为我使用了
matrix of math nodes
数学模式,所以每个条目都是排版的。还有一种类似的matrix of nodes
方法,其中的条目不是数学模式的 - 规范
anchor=east
中的nodes={...}
每列都与“东”对齐 - 我更喜欢将框架标题作为环境
\frametitle{...}
参数添加,而不是使用frame
- 你可能想添加一些类似的东西
inner sep=1mm
到hl
样式中
答案3
如果以上两种答案都不适合您,那么一个“聪明”的解决方法就是简单地调整您未突出显示的单元格前面的空间。例如$\epsilon$
=> { $\epsilon$}
。数字括号将阻止编译器修剪元素前面的空间。