7/05/2010

Мелкие тонкости презентаций в Beamer

Есть ряд мелких, но противных тонкостей при работе с Beamer, на которые мне пришлось нарваться при работе над очередной презентацией.


Как выровнять текст по ширине в Beamer?
Для этого используем возможности пакета ragged2e и в преамбуле документа презентации пишем:
\usepackage{ragged2e}
\justifying
Но это выровняет текст только в пределах одного слайда. Чтобы выровнять весь текст в презентации, в преамбулу вставляем:
\renewcommand{\raggedright}{\leftskip=0pt \rightskip=0pt plus 0cm}
И это выровняет текст по ширине в слайдах.


Куча слайдов в Beamer и как их структурировать
На самом деле, в Beamer никто не запрещает использование \section и \subsection - в тексте
презентации они никак не отражаются (за исключением, может быть, некоторых тем),
а структурировать презентацию это сильно помогает.


Отключить перенос в презентации

Чтобы выключить все переносы в презентации Beamer, в преамбулу следует вставить следующую команду:

\hyphenpenalty=100000 %%% to turn the hyphenation off

Теперь переносы в слайдах нас беспокоить не должны.

В презентации много текста, надо бы впихнуть туда ещё немного - как?
Для этого можно использовать такую конструкцию:

\begin{frame}[shrink=5]
...
\end{frame}
Это уменьшит содержимое слайда на 5% (можно поставить и больше, если надо).


Как включить\выключить нумерацию рисунков и убрать эти навигационные кнопки в Beamer?

Чтобы включить нумерацию рисунков, в преамбуле пишем:

\setbeamertemplate{caption}[numbered]

Выключение нумерации рисунков достигается так: \setbeamertemplate{caption}[]

Чтобы выключить навигационные символы на презентации в Beamer, используем строчку в преамбуле:

\setbeamertemplate{navigation symbols}{}

Для того, чтобы вообще убрать слово "РИС" в презентации и при этом не использовать пакет caption

(он с Beamer конфликтует), в преамбуле пишем:

\addto\captions<your language>{%
\renewcommand{\figurename}{foo}%
\renewcommand{\tablename}{bar}%
}

Или, если не используется babel, пишем:

\renewcommand{\figurename}{foo}%
\renewcommand{\tablename}{bar}%

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

\begin{frame}[allowframebreaks]{Литературные источники}

.........

\end{frame}

Теперь содержимое слайда будет автоматически разбиваться Beamer на несколько слайдов.



Заключение
Этот пост я буду периодически обновлять и добавлять сюда другие находки и мелкие косяки Beamer. Бесценные находки многоуважаемых комментаторов, как всегда, будут добавлены в текст поста с удовольствием.

Ссылки:
Несколько статей по Beamer на русском из журнала "Системный администратор".

16 комментариев:

  1. В журнале "Open Source", №61, 62 опубликованы две мои статьи по beamer
    http://osa.samag.ru/info/OpenSource061.zip

    http://osa.samag.ru/info/OpenSource062.zip
    статьи расчитаны на новичков, там есть ещё несколько "хитростей", которые лично я долго-долго искал: чтобы кириллица отображалась в структуре документа в пдф-вьюверах, нужно добавить: \documentclass[ucs]{beamer}, описан способ русификации окружений "теорема" и т.д.
    Долгое время мне приходилось вжимать "список литературы" в один слайд, пока я не нашёл параметр: \begin{frame}[allowframebreaks]{Литературные источники}... Теперь содержимое автоматически разбивается на несколько слайдов.

    ОтветитьУдалить
  2. А зачем выравнивать текст по ширине в слайдах? Там же крупный кегль (= узкая колонка), значит, будут страшные зияющие пробелы.

    Презентация не предназначена для чтения массива текста с экрана, это же не статья. И не должна представлять всю работу на одном экране 1024x768, это же не стендовый плакат. Значит, кегль меньше 18 в презентации — зло. И если на слайде много текста, и надо впихнуть туда ещё немного — самое время подумать о том, чтобы слайд разделить на два-три, а не масштабировать буквы.

    То же самое: развёрнутая библиография в презентации бесполезна, к ней нельзя перейти по ходу просмотра, от неё нельзя перейти к нужной статье, и её нельзя запомнить. Необходимо и достаточно кратких ссылок на автора и название работы под соответствующим слайдом. Это к комментарию предыдущего оратора.

    Руководство по тьюнингу стилей Beamer было бы полезно.

    За allowframebreaks спасибо, может пригодиться.

    ОтветитьУдалить
  3. Ну, список литературы привёл как пример для наглядности. Как-то я привык приводить список литературных источников в презентациях. Если не во время доклада, так во время обсуждения/вопросов может пригодится. Хотя мне уже указывали, что сноски были бы информативней.

    ОтветитьУдалить
  4. @Антон пишет...
    Спасибо за ссылки! Поместил в пост.


    \begin{frame}[allowframebreaks]{Литературные источники}... Теперь содержимое автоматически разбивается на несколько слайдов.
    Класс! Я не знал. Вставил в пост.


    @Анонимный пишет...
    А зачем выравнивать текст по ширине в слайдах? Там же крупный кегль (= узкая колонка),
    Не везде. Так смотрится лучше, на мой взгляд.

    Презентация не предназначена для чтения массива текста с экрана, это же не статья.
    Это да.


    То же самое: развёрнутая библиография в презентации бесполезна
    Я знаю, но в тех палестинах, где я больше не обитаю, это было требованием. Не виноватая я...

    Руководство по тьюнингу стилей Beamer было бы полезно.
    Возможно, будет. Но не скоро.

    @Антон пишет...
    Как-то я привык приводить список литературных источников в презентациях.
    И это правильно. Потому как презентация потом может быть выложена в интернете, и мне не раз и не два приходилось выковыривать нормальные ссылки и понятные объяснения именно из презентаций, а не из учебников разных дуболомов.

    ОтветитьУдалить
  5. Гм… А почему в первой половине статьи подсветка синтаксиса в коде есть, а во второй — нету? Определись, virens :)

    Пора ковырять Латех по-настоящему — он меня здорово выручил, когда я писал сопроводительную записку к рассчётке по программированию. Где-то у тебя здесь вроде был пост, в котором ты давал советы касательно книг, которые стоит прочесть…

    ОтветитьУдалить
  6. Михаил, не за что, рад помочь. Меня ваш блог столько раз спасал в своё время...

    ОтветитьУдалить
  7. @Minoru пишет...
    Гм… А почему в первой половине статьи подсветка синтаксиса в коде есть, а во второй — нету?
    На вторую половину запала не хватило :-)

    Определись, virens :)
    Покрасил код. Осторожно, окрашено!

    Пора ковырять Латех по-настоящему
    Мои последние посты, на самом деле, это такой очень тонкий троллинг Mr. Minoru :-)

    Где-то у тебя здесь вроде был пост, в котором ты давал советы касательно книг, которые стоит прочесть
    Не помню, загугли. [кстати] А, во, нашёл! Там в разделе установки ссылки есть даже (о класс, а я и не знал, что они там есть).

    Вообще есть "Не очень краткое введение в LaTeX" (на русском распространяется как lshortru.pdf), и установка в Дебиане.

    Но вообще у меня в загашниках такой пост лежит: "Освоение LaTeX - с чего начать" и ты, как редактор, можешь его посмотреть (он не дописан).


    @Антон пишет...
    Меня ваш блог столько раз спасал в своё время...
    Отрадно. А меня самого он сколько раз спасал... :-)

    ОтветитьУдалить
  8. Одна из пакостей Beamer'a: ругается на адобовские шрифты в рисунках. С этим злом можно бороться, переводя шрифт в кривые, но то не кошерно и портит их внешний вид. С обычными классами таких проблем нет. Также надо быть очень аккуратным при выборе темы - они почему-то идут с разными опциями. На практике приходится пользоваться той, где их больше, и далее менять цвета под себя. Если надо изменить какую-нибудь мелочь в теме, приходится штудировать оф. руководство
    http://www.ctan.org/tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf,
    и не факт, что в итоге это получится. Но осваивать Beamer надо: по моему опыту междунар. конференций, практически все презентации - Beamer и что-то другое под Mac (не знаю, что они там курят).

    ОтветитьУдалить
  9. @iv_vl комментирует...
    Одна из пакостей Beamer'a: ругается на адобовские шрифты в рисунках.
    Пакостей там много, и что хуже всего, авторы этого поделия исповедуют принцип "голову в песок" когда им сообщают о проблемах. Документации по бимеру немного.

    Также надо быть очень аккуратным при выборе темы - они почему-то идут с разными опциями.
    Ну так пионерия же: Вася Пупкин склепал тему и выложил. Больше всего меня убивают их названия: Берлин, Оксфорд... Как будто из них становится понятно, как оно выглядит.

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

    Но осваивать Beamer надо: по моему опыту междунар. конференций, практически все презентации - Beamer
    Это верно. У нас в универе народ только им и пользуется (даже пользователи Windows). Вернее, даже не осваивать, а привыкать к его косякам и коллекционировать их. Кстати, если есть своя коллекция таких пакостей - шлите почтой\пишите сюда, добавлю.

    ОтветитьУдалить
  10. Re русских заголовков в окружениях типа theorem, definition

    Альтернативный вариант

    \newtheorem{ru_def}{Определение}
    \renewenvironment{definition}{\begin{ru_def}}{\end{ru_def}}

    Мне кажется, преимущество в том, что такой путь позволяет сохранить цветовые гаммы схем (в частности \example)

    ОтветитьУдалить
  11. worldmind: чтобы нормлаьно вставлялись листинги нужно выставить свойство у фрейма
    \begin{frame}[fragile]

    ОтветитьУдалить
  12. Бывает, что \footfullcite{key} наезжает на ...дно
    Вот костылек
    \footnote{\fullcite{key}\\}

    ОтветитьУдалить
  13. Огромное спасибо за нумерацию изображений! :)

    ОтветитьУдалить
  14. Можно ли в Beamer разместить несколько картинок на одном слайде?

    ОтветитьУдалить
  15. @qwert комментирует...
    Огромное спасибо за нумерацию изображений! :)

    Пожалуйста. Я сюда буду добавлять подобные вещи время от времени.

    @Влад Юрченко комментирует...
    Можно ли в Beamer разместить несколько картинок на одном слайде?
    Конечно!

    Начиная от банального :

    \begin{figure}[ht!]
    \includegraphics[width=0.48\linewidth]{plot_1}
    \includegraphics[width=0.48\linewidth]{plot_2}
    \caption{The Hessian.}
    \label{fig:plot}
    \end{figure}

    до использования пакета subfigure:

    \begin{figure}[ht!]
    \subfigure[Coupling between the nearest neighbour actuators.]{
    \includegraphics[width=0.3\linewidth]{plot_1}
    }
    \subfigure[Coupling between the nearest neighbour and diagonally adjacent actuators.]
    {\includegraphics[width=0.3\linewidth]{plot_2}}
    \end{figure}

    Не забудьте вставить в преамбулу вызов пакета расширения \usepackage{subfigure}

    ОтветитьУдалить