我想使用 tikz 添加一些覆盖,但它们应该出现在其后写的文本上方,而现在它在后面:
我也尝试过使用层,但没有帮助。
\documentclass[aspectratio=169]{beamer}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage[most]{tcolorbox}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{.5\textwidth}
\begin{tikzpicture}
\node(A){A};
\node[overlay, below=1mm of A,fill=yellow]{Blaaaaaaaaaaaaaaaaaaaaaaaaa};
\end{tikzpicture}
\end{column}%
\begin{column}{.5\textwidth}
Blo
\end{column}
\end{columns}
Bluuuuuuuuuuuuuuuuuuuuuuu
\end{frame}
\end{document}
编辑
为了澄清起见,这是我想要得到的输出:
编辑
实际上,我找到了(感谢 SebGlav 的想法)一种解决方法:只需将覆盖层的代码移到我想在上面绘制的文本之后即可。问题是,只有当我知道页面剪切的位置时,它才会起作用(或者也许我可以以某种方式注入我的代码以在下一个页面剪切之前执行)。但这听起来有点不合时宜(例如,因为我需要剪切我的代码,我还需要使用记住污染全局命名空间的图片,并且我还需要为需要绘制的任何覆盖层找到一个新名称……),我不确定是否有更好的解决方案:
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
\usepackage[most]{tcolorbox}
\begin{document}
\begin{tikzpicture}[remember picture]
\node(A){A};
\end{tikzpicture}
BBluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\begin{tikzpicture}[remember picture, overlay]
\node[overlay, below=1mm of A,fill=yellow]{Blaaaaaaaaaaaaaaaaaaaaaaaaa};
\end{tikzpicture}
\end{document}
答案1
不确定这是否是您想要的,但是如果您想在文本下方绘图,tikzmark
可以这样做:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{tikzpicture}[remember picture, overlay]
\fill[yellow] (pic cs:A) circle (1cm and 5mm);
\end{tikzpicture}
I want to see the Ti\textit{k}Z overlay \tikzmarknode{A}{underneath} my words.
\end{document}