LINUX.ORG.RU

Выравнивание картинки tikz по центру слайда

 , ,


0

2

Забацал я тут ради интереса блок-схему с помощью tikz с помощью заголовков из этой темы.

Блок-схема получилась качественная, но оказалось, что невозможно встроить её в другой документ. В обычный report она как-то ещё вошла (и то за счет уменьшения расстояний между нодами, а не засчет scalebox). А вот с beamer совсем туго - сдвигается вправо, вылезает за пределы слайда, хотя может туда поместится. Просто сдвинута вправо и ничем её не вернуть.

Я пытаюсь вставить так:

\begin{figure}   
\centering                                                               
\scalebox{.51}{                                                                 
\input{my_block} % В my_block лежат настройки из той темы
}
\eng{figure}

\centering не работает. scalebox только уменьшает, но всё равно картинка стоит криво. Как бы её выровнять точно посередине слайда?

Deleted

Последнее исправление: Deleted (всего исправлений: 2)
\begin{figure}   
\begin{center}                                                               
\scalebox{.51}{ \input{my_block} }
\end{center}
\end{figure}

К тому же, у тебя \eng вместо \end.

kachsheev ★★★
()

Попробуй этот слайд скомпилить:

\begin{frame}[fragile]{Функция трассировки}
\begin{figure}\centering\tiny
\begin{tikzpicture}[%
    start chain=going below,
    node distance=1em and 4em
    ]
    \node [cloud] {\texttt{Trace}};
    \node [block,join,fullw] {Построение матрицы поворота лучей по заданным пользователем данным};
    \node [block,join,fullw] (fw) {Вычисление направляющего вектора фотонов};
    \node [ifthen, fxd] (ifcoor) {Координаты <<фотонов>> в плоскости зеркала
        заданы?};
    \node [block, fxd, right = 16em of ifcoor] (coorfill) {Заполнение координат $(X_i,
        Y_i)$ псевдослучайными числами в диапазоне $(-D/2, D/2)$, где~$D$~-- диаметр
        зеркала};
    \node [function, wide, fullw, below = 6.5em of ifcoor] (bicub) {Бикубическая интерполяция
        матрицы         аберраций, $dZ(i,k)$, на координаты фотонов};
    \node [function, wide, join] (parall) {Вычисление координат фотона в плоскости
            светоприемника};
    \node [cloud, join] {Возврат};
    \path [line] (ifcoor) to node [u] {Нет} (coorfill);
    \path [line] (ifcoor) to node [l] {Да} (bicub);
    \path [line] (coorfill) to  (bicub);
    \path [line] (fw) to (ifcoor);
\end{tikzpicture}
\end{figure}
\end{frame}

Ключевое слово — fragile.

Eddy_Em ☆☆☆☆☆
()

Еще вариант — воткнуть блок-схему внутрь minipage.

Но, ясен пень, если у тебя блок-схема по высоте слишком здоровая, то в любом случае получится гадость.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

! Package pgfkeys Error: I do not know the key '/tikz/block' and I am going t

fragile у меня уже установлено.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Блок-схема и сейчас (с помощью scalebox) вполне вписывается в слайд. Т.е. она вся находится внутри слайда. Но она сдвинута, и собственно minipage тоже не помогает.

Deleted
()
Ответ на: комментарий от Deleted

Если лень разбираться в подноготной, попробуй как-нибудь так:

\begin{figure}   
\centering                                                               
\scalebox{.51}{\hspace*{-3cm}\hbox to 0pt{%
\input{my_block}% В my_block лежат настройки из той темы
}}
\eng{figure}
(кстати, перед \input пробел лучше подавить, а еще убедиться, что у тебя там никаких пробелов перед \begin{tikzpicture} нет)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Возможно, лучше будет \hspace*{-3cm}\hbox to 0pt{ воткнуть перед \scalebox

А вообще, tikz любит иной раз непонятные размеры блоку делать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Спасибо, я просто воткнул \hspace{-8cm} перед input ))) Выглядит нормально. Просто инструмент оказался весьма прост и популярен (блок-схемы я имею в виду).

Deleted
()
Ответ на: комментарий от Eddy_Em

Но, ясен пень, если у тебя блок-схема по высоте слишком здоровая

Ну да, дело в scalebox. Если уго убрать, то блок-схема становится ровно в центр. Но проблема в том, что в слайд вертикально помещаются максимум 5 этажей-блоков, а всего их 7. В слайде кроме блок схемы ещё есть заголовок и подзаголовок.

Deleted
()
Ответ на: комментарий от SystemD-hater

Тоже работает, спасибо. Но через \hspace, правда, проще.

Deleted
()
\documentclass[10pt,pdf]{beamer}
\usetheme{Madrid}

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\usepackage{tikz}

\begin{document}

\begin{frame}[fragile]\frametitle{Пример №1}
  \begin{figure}
    \begin{tikzpicture}[scale=3.0, every node/.style={scale=3.0}]
      \node[draw,minimum width=1cm, minimum height=1cm] () {1};
    \end{tikzpicture}
  \end{figure}
\end{frame}

\begin{frame}[fragile]\frametitle{Пример №2}
  \begin{block}{Блок}
    \begin{figure}
      \begin{tikzpicture}[scale=3.0, every node/.style={scale=3.0}]
        \node[draw,minimum width=1cm, minimum height=1cm] () {1};
      \end{tikzpicture}
    \end{figure}
  \end{block}
\end{frame}

\begin{frame}[fragile]\frametitle{Пример №3}
  \begin{columns}
    \begin{column}{5cm}
      \begin{block}{Блок}
        \begin{figure}
          \begin{tikzpicture}
            \node[draw,minimum width=1cm, minimum height=1cm] () {1};
          \end{tikzpicture}
        \end{figure}
      \end{block}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}[fragile]\frametitle{Пример №3}
  \begin{columns}
    \begin{column}[c]{5cm}
      \begin{block}{Блок}
        \begin{figure}
          \begin{tikzpicture}
            \node[draw,minimum width=1cm, minimum height=1cm] () {1};
          \end{tikzpicture}
        \end{figure}
      \end{block}
    \end{column}
    \begin{column}[c]{5cm}
      \begin{block}{Блок}
        abc.
      \end{block}
    \end{column}
  \end{columns}
\end{frame}

\end{document}
  • окружение figure отцентрирует,
  • [scale=3.0, every node/.style={scale=3.0}] - масштабирование, включая текст и параметры.
AlexVR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.