如何拥有取决于 Latex Beamer / tikz 中幻灯片的固定尺寸数字?

发布于 2024-08-19 20:49:27 字数 334 浏览 8 评论 0原文

我有一张 tikz 图片,其中有一个圆形节点,里面有一个数字。 我希望这个数字随着幻灯片的变化而变化,但大小固定。 (->不要搞乱这个圈子)。

这个不起作用,圆圈变得很大,好像必须容纳所有 3 个数字。

\tikz[baseline]
\node [fill=blue!20,draw,circle,anchor=base] (node1)
{
    \only<1-3>{3} \only<4-6>{8} \only<7->{11.5}
};

这里,幻灯片 1-3 上的值为 3,幻灯片 4-6 上的值为 8,其他值为 7。

I have a tikz picture with a circle node which has a number inside.
I want this number to change with the slides but to be of fixed size. (-> not mess up the circle).

This one isn't working, the circle gets as big as if it has to hold all 3 numbers.

\tikz[baseline]
\node [fill=blue!20,draw,circle,anchor=base] (node1)
{
    \only<1-3>{3} \only<4-6>{8} \only<7->{11.5}
};

Here the values are 3 on slides 1-3, 8 on slides 4-6 and else 7.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情愿 2024-08-26 20:49:27

我观察到以下情况:

  • \only{} 之间的空格始终呈现(\only,当不活动时,是一个“零宽度字符”;TeX 不会丢弃字符之间的空格)
  • 使用“text”显式设置文本的宽度宽度=...”。这会隐式地将内容放入小型页面中。
  • 请注意,“基线”属性不再按预期工作。
  • “文本居中”确保在内容不完全是“文本宽度”的情况下对齐。
  • “叠印”环境仅自动确定内容的高度,而不是宽度。

总而言之,这对我有用(我尝试过):

\tikz[baseline]
\node [fill=blue!20,draw,circle,anchor=base,text width=4ex,text centered,inner sep=0] (node1)
{
    \only<1-3>{3}\only<4-6>{8}\only<7->{11.5}
};

编辑:这适用于正确的基线:

\tikz[baseline=(node1.base)]
    \node [fill=blue!20,draw,circle] (node1)
    {
        \begin{minipage}{4ex}
            \centering
            \only<1-3>{3}\only<4-6>{8}\only<7->{11.5}
        \end{minipage}
    };

I observed the following:

  • The spaces between \only{} are always rendered (\only, when not active, is a "zero-width character"; TeX does not discard spaces between characters)
  • Set the width of the text explicitly using "text width=...". This implicitly puts the content into a minipage.
  • Note that the "baseline" property does not work anymore as expected.
  • "text centered" ensures the alignment for the case that the content is not exactly "text-width"
  • The "overprint" environment only automatically determines the height of the content, not the width.

To conclude, this works for me (I tried it):

\tikz[baseline]
\node [fill=blue!20,draw,circle,anchor=base,text width=4ex,text centered,inner sep=0] (node1)
{
    \only<1-3>{3}\only<4-6>{8}\only<7->{11.5}
};

EDIT: This works with the correct baseline:

\tikz[baseline=(node1.base)]
    \node [fill=blue!20,draw,circle] (node1)
    {
        \begin{minipage}{4ex}
            \centering
            \only<1-3>{3}\only<4-6>{8}\only<7->{11.5}
        \end{minipage}
    };
情何以堪。 2024-08-26 20:49:27

有几种方法可以做到这一点:

  • 您可以使用“覆盖”环境来计算所需的最大大小。
  • 您可以使用 \makebox[width]{ }。
  • 或者简单地使用节点上的“最小宽度”和“最小高度”选项。
  • ...

There are a couple of ways to do this:

  • You could use a 'overlay' environment which calculates the maximum size needed.
  • You could use \makebox[width]{ }.
  • Or simply use the 'minimum width' and 'minimum height' options on the node.
  • ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文