Как получить фиксированный размер, который зависит от слайда в латексном проекторе / тикзе? - PullRequest
2 голосов
/ 28 января 2010

У меня есть тикз-картинка с круговым узлом, внутри которого есть номер. Я хочу, чтобы это число изменялось со слайдами, но должно быть фиксированного размера. (-> не испортить круг).

Этот не работает, круг становится таким большим, как будто он должен содержать все 3 числа.

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

Здесь значения 3 на слайдах 1-3, 8 на слайдах 4-6 и еще 7.

Ответы [ 2 ]

3 голосов
/ 06 февраля 2010

Я заметил следующее:

  • Пробелы между \ only {} всегда отображаются (\ only, если не активен, является символом нулевой ширины; TeX не сбрасывает пробелы между символами)
  • Установите ширину текста в явном виде, используя «text width = ...». Это неявно помещает содержимое в мини-страницу.
  • Обратите внимание, что свойство "baseline" больше не работает должным образом.
  • «текст по центру» обеспечивает выравнивание для случая, когда содержимое не совсем «текст по ширине»
  • Среда "overprint" автоматически определяет только высоту содержимого, а не ширину.

В заключение, это работает для меня (я пробовал):

\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}
    };
1 голос
/ 06 февраля 2010

Есть несколько способов сделать это:

  • Вы можете использовать «оверлейную» среду, которая вычисляет максимальный необходимый размер.
  • Вы можете использовать \ makebox [width] {}.
  • Или просто используйте параметры «минимальная ширина» и «минимальная высота» на узле.
  • ...
...