将文本定位到投影仪框架上任意位置的简单方法

将文本定位到投影仪框架上任意位置的简单方法

这可能是一个非常简单的问题但不知何故我却未能找到一个好的答案。

我希望将文本(例如单词/数学/字符串等)放在 Beamer 框架上的特定位置。这可能是使用 PowerPoint 可以做的最简单的事情。

目前,我使用大量 \center、\hspace、\vspace 等来实现这一点,这非常混乱。我还使用了另一种方法,即使用 Tikz 插入它们,但出于某种原因,每当我更改一个坐标时,另一个坐标也会移动。

理想情况下,您知道框架上的每个坐标,只需调用某个函数put(x,y){"word"},单词就会从 (x,y) 坐标开始。

有没有什么简单的方法可以实现这一点?

在此处输入图片描述

答案1

您可以使用与https://topanswers.xyz/tex?q=1989定义与框架重合的坐标系:

\documentclass{beamer}

\usepackage{tikz}

% trick taken from https://topanswers.xyz/tex?q=1989
\tikzset{
    use page relative coordinates/.style={
        shift={(current page.south west)},
        x={(current page.south east)},
        y={(current page.north west)}
    },
}

\begin{document}
    
\begin{frame}
  \begin{tikzpicture}[remember picture, overlay,use page relative coordinates]
  
  % showing a couple of example coordinates
  \node[anchor=south west] at (0,0) {(0,0)};
  \node[anchor=south east] at (1,0) {(1,0)};
  \node[anchor=north west] at (0,1) {(0,1)};
  \node[anchor=north east] at (1,1) {(1,1)};

   \node at (0.7,0.3) {test}; 
    
  \end{tikzpicture}
\end{frame} 
    
\end{document}

答案2

您可以使用tikzpagenodes来安装一个坐标系统,其中(0,0)(1,1)分别是框架文本区域的左下角和右上角。可以\put为此定义一个命令,但我看不出该语法比 更简单(x,y) node {<text>},尤其是因为后者更灵活,因为它允许您轻松添加 pgf 键。

\documentclass{beamer}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\tikzset{frameoverlay/.style={overlay,remember picture,shift={(current page text area.south west)},
x={($(current page text area.south east)-(current page text area.south west)$)},
y={($(current page text area.north west)-(current page text area.south west)$)},nodes={anchor=south west}}}
\begin{document}
    
\begin{frame}[t]
\frametitle{TikZ pagenodes}
\begin{tikzpicture}[frameoverlay]
   \path
    (0.5,0.5) node{Hello}
    (0.7,0.7) node{World}
    (0.2,0.1) node{Something}
    (0.6,0.3) node{New};
\end{tikzpicture}    
\end{frame}
\end{document}

在此处输入图片描述

相关内容