更新

更新

我想说明一个故意填满的进度条。我使用\progressbartikz,但相对定位 ( east) 在 X 方向上总是有点偏差,我不知道为什么。请考虑以下示例:

\documentclass{beamer}

\usepackage{progressbar}

\begin{document}

\begin{frame}
  \begin{overprint}
    \begin{tikzpicture}[remember picture]
      \node<1-2> (progressbar) [inner sep=0,outer sep=0] {\progressbar[heightr=1, width=0.3\textwidth, emptycolor=white, filledcolor=red]{1}};
    \end{tikzpicture}
    \tikz[remember picture] \draw<2>[overlay] node at (progressbar.east) [inner sep=0,outer sep=0] {\progressbar[heightr=1, width=0.1\textwidth, linecolor=white!0, emptycolor=white, filledcolor=red, subdivisions=1, roundnessr=0]{1}};
  \end{overprint}
\end{frame}

\end{document}

第一张幻灯片(裁剪后)如下所示:

进度条

第二张幻灯片(裁剪后)如下所示(请注意,第二张幻灯片的\progressbar比例约为 85%,而不是 100%):

进度条的相对位置不正确

我怎样才能将第二个\progressbar相对于第一个定位,以便它们不重叠(忽略难看的白色边框)?

答案1

像这样?

结果

问题是,默认情况下,放置在 处的第二个进度条的中心是(progressbar.east)。 您希望将左边缘置于该位置,这可以通过使用[anchor=west]该节点来实现。 即:

\documentclass{beamer}

\usepackage{progressbar}

\begin{document}

\begin{frame}
  \begin{overprint}
    \begin{tikzpicture}[remember picture]
      \node<1-2> (progressbar) [inner sep=0,outer sep=0] {\progressbar[heightr=1, width=0.3\textwidth, emptycolor=white, filledcolor=red]{1}};
    \end{tikzpicture}
    \tikz[remember picture] \draw<2>[overlay] node[anchor=west] at (progressbar.east) [inner sep=0,outer sep=0] {\progressbar[heightr=1, width=0.1\textwidth, linecolor=white!0, emptycolor=white, filledcolor=red, subdivisions=1, roundnessr=0]{1}};
  \end{overprint}
\end{frame}

\end{document}

旁注:我不太喜欢该代码,因为它在节点内使用 tikz 代码(\progressbar命令确实是完整的tikzpicture),但我不知道在这种情况下如何避免这种情况。

更新

代码可以稍微改进一下。您可以用tikzpicture与第一个相同的方式绘制第二个叠加层。这样就不再需要remember picture/ overlay,并且需要的编译次数也少了一次:

\documentclass{beamer}
\usepackage{progressbar}

\begin{document}
\begin{frame}
  \begin{overprint}
    \begin{tikzpicture}
      \node<1-2> (progressbar) [inner sep=0,outer sep=0] {\progressbar[heightr=1, width=0.3\textwidth, emptycolor=white, filledcolor=red]{1}};
      \node<2>[anchor=west] at (progressbar.east) [inner sep=0,outer sep=0] {\progressbar[heightr=1, width=0.1\textwidth, linecolor=white!0, emptycolor=white, filledcolor=red, subdivisions=1, roundnessr=0]{1}};
    \end{tikzpicture}
  \end{overprint}
\end{frame}
\end{document}

相关内容