Пишем презентации в LaTeX

  • Tutorial

В процессе подготовки доклада на GolangConf'2019 я использовал LaTeX. Несмотря на некоторые устаревшие вещи, немного необычное поведение, скудную или сложную документацию, я внезапно получил удовольствие. Я не стал "гуру" LaTeX, но я смог делать весьма неплохие слайды. И я хочу описать основные точки создания современной презентации на LaTeХ. Особенно это должно "зайти" айтишникам, которые по роду занятий программируют. Программировать свою презентацию — это увлекательно.



Почему LaTeX:


  • Гибкие оверлеи (когда информация на слайде появляется по очереди)
  • Повторяемость и однозначность
  • Пишем как программу. Некоторые ресурсы можно хранить отдельными файлами — код, список ссылок

Почему НЕ LaTeX:


  • На выходе только PDF
  • На тонкую подстройку таблиц и колонок, если они есть, может уйти больше времени, чем подвигать мышкой. Не надо делать презентацию в пять сложных слайдов в LaTeX. А в 55 — надо

Начнем с установки


Практически, сейчас существует один лидирующий дистрибутив утилит LaTeX/TeX, который поглотил все остальные — TexLive. Выпуски там нумеруются по годам. Не надо ставить археологические версии ранее 2018 года. Так что почти всем пользователям Ubuntu сразу сюда. Для "маководов" есть отдельный набор. Или можно использовать универсальный установщик, в том числе и для Windows.


Пользователи CentOS должны страдать.


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


Дистрибутив TexLive увесистый, занимает до 5Gb. Ставить надо texlive-full или подобный пакет (название может разниться от дистрибутива к дистрибутиву).


Однако, на дворе XXI век, и вы можете воспользоваться одним из онлайн-сервисов для работы с LaTeX. Почему-то немногие даже научные работники об этом не знают. Например, один из самых продвинутых.


Немного о LaTeX


Это не пошаговое руководство, как начать работать в LaTeX. Мы поверхностно посмотрим, как сделать презентацию, а по пути вы сами воспользуетесь Google. Но базовые отсылки я буду делать. Также обратите внимание на викикнигу.


Так будет выглядеть простейшая презентация с использованием пакета beamer — именно он отвечает за презентации:


\documentclass{beamer}% тип документа
% далее идёт преамбула
\title{My Super Topic}
\author{Ashot and Alice}

\begin{document}% начало презентации

\begin{frame}% первый слайд
\titlepage
\end{frame}

\begin{frame}% второй слайд
Hello, World!
\end{frame}

\end{document}

Поехали


А вот так выглядит готовая презентация, которую я сделал на GolangConf2019. Вокруг неё мы и будем крутиться.


Первое, что вы должны сделать, это забыть как страшный сон все отсылки к шрифтам TeX. Дональд Кнут начал разрабатывать систему шрифтов METAFONT в 1977 году, а в 1979 представил её. Это было ОЧЕНЬ круто на то время. Но на дворе 2019 год, тащить в сегодня стандарты наименований файлов 8+3 и специальные растровые шрифты можно только в минуты скуки. Все современные системы работают с современными векторными шрифтами. Утилиты TexLive имеют в своём составе новый компилятор документов — xelatex. Он полностью совместим с pdflatex, но работает с системными шрифтами. Всё что нужно дополнительно сделать, это подгрузить пакет fontspec или xltxtra (он подгружает fontspec) и задать шрифты:


% !TeX TS-program = xelatex

\documentclass[aspectratio=169]{beamer}

\usepackage{xltxtra}
\usepackage[main=russian,english]{babel}

\setmainfont{Arial}
\setromanfont{Times New Roman}
\setsansfont{Arial}
\setmonofont{Courier New}
...

В примере мы сразу задали размер презентации (16см на 9см), сделали комментарий чем собирать и подключили пакет babel, который мы разбирать не будем. Для пользователей Linux напомню, что в 2019 году TTF-шрифты можно кидать в директорию .fonts в домашнем каталоге.


Темы оформления


Можно делать презентацию и без специального оформления, но чувство прекрасного по умолчанию в beamer странное, поэтому практически все пользуются теми или иными темами. Обычно, темы оформления — это набор файлов .sty, размещенных там, где их может найти компилятор, т.е. там же, где и сам файл презентации. Подключается тема соответствующей строкой в преамбуле презентации:


\usetheme{gcr2019}% в скобках название темы

Есть, кстати, чудесное руководство по созданию простейшей темы оформления презентации. Я сделал 3 темы на ближайшие конференции Олега Бунина, одну для себя, две — для иллюстрации к этой статье: раз, два и три.


В принципе, всё что определено в этих темах, может быть и обычной простынёй в вашем файле презентации. В этом нет ничего плохого. Темы нужны, когда нужна повторяемость. В каждой из приведенных выше тем оформления есть пример использования и скомпилированный результат.


Оверлей


Оверлей — это когда у вас информация постепенно появляется на одном и том же слайде. Вот например:


\begin{frame}
    \begin{itemize}
        \item<1-> Живи, безумец!.. Трать, пока богат!
        \item<2-> Ведь ты же сам – не драгоценный клад.
        \item<2-> И не мечтай – не сговорятся воры
        \item<3-> Тебя из гроба вытащить назад!
    \end{itemize}
\end{frame}

Сначала появится первая строка, затем вторая и третья, а затем четвертая. Заодно мы увидели, как сделать ненумерованный список. Систему оверлеев можно прикрутить практически к чему угодно. Я, например, делал так подсветку строк кода (рассмотрим ниже).


Обратите внимание на строки в моих шаблонах:


\setbeamercolor{itemize item}{fg=black}
\setbeamercolor{itemize subitem}{fg=black}
\setbeamercolor{alerted text}{fg=black}
\setbeamertemplate{itemize items}{\textbullet}% отключает кошмарные синие треугольники
\setbeamerfont*{itemize/enumerate subbody}{parent=itemize/enumerate body}
\setbeamerfont*{itemize/enumerate subsubbody}{parent=itemize/enumerate subbody}
\setbeamerfont{alerted text}{series=\bfseries}

Закомментируйте строки (для комментариев используйте символ "%") и посмотрите, что будет. Не тот цвет, синие треугольнички и вот это вот всё.


Не нашел куда это определить. beamer предоставляет возможность несколько раз использовать один и тот же слайд. Это вот прямо очень круто:


\begin{frame}[label=again]{Слайд покажем ещё раз}
...
\end{frame}
...
\againframe{again}

Картинки


Возьмем пример из моей презентации. Две колонки, слева ненумерованный список, справа — картинка:


\begin{frame}{Редактор Acme}
        \begin{columns}[T,onlytextwidth]
                \begin{column}{0.44\textwidth}
                        \begin{itemize}
                                \item Для разработчиков
                                \item Автор --- \emph{Роб Пайк}
                                \item Написан на Alef
                                \item Alef = Acme
                                \item 30 лет с нами
                        \end{itemize}
                \end{column}
                \begin{column}{0.56\textwidth}
                        \includegraphics[width=\textwidth]{acme-alef.png}
                \end{column}
        \end{columns}
\end{frame}

Параметр [T,onlytextwidth] говорит о том, что вертикальное выравнивание производится по базовой линии строк вверх, а блок колонок имеют ширину равной ширине фрейма для текста. LaTeX сам сожмет картинку как надо. Можете создать свой пример и поиграться параметрами, чтобы увидеть, как и что будет перекрываться.



Листинг кода


Сразу оговорюсь, что подсветка синтаксиса в листинге кода в презентации не нужна. Если она там вам нужна — вы что-то делаете не так. Больше нужны выделения. Я использую стандартный пакет listings, который умеет подсветку синтаксиса, и не умеет выделений. Вы можете посмотреть настройки оформления блока листинга в любом из моих примеров:


\definecolor{acmebg}{HTML}{FFFFEF}
\definecolor{acmel}{HTML}{52AAAD}
\lstset{
        columns=flexible,
        keepspaces=true,
        showstringspaces=false,
        showtabs=false,
        tabsize=4,
        frame=single,
        basicstyle=\fontsize{10pt}{12}\bf\ttfamily\color{black},
        backgroundcolor=\color{acmebg},
        commentstyle=\color{black},
        keywordstyle=\color{black},
        stringstyle=\color{red},
        rulecolor=\color{acmel},
        framerule=1pt
}

Для выделения фона я пользуюсь пакетом lstlinebgrd, который "заброшен". Приходится вставлять исправляющий код. А вот этот дополнительный код даёт мне команду \btLstHL, которая позволяет подсвечивать строки в оверлее:


\begin{frame}[fragile]{Limbo. Примеры синтаксиса}
        \begin{lstlisting}[basicstyle=\fontsize{12pt}{12}\bf\ttfamily\color{black},linebackgroundcolor={%
                \btLstHL<1>{1}%
                \btLstHL<2>{2-3}%
                \btLstHL<3>{5,6}%
                \btLstHL<4>{8,9}%
                \btLstHL<5>{11}%
                }]
i, j: int;
k := 1;         # int
b := byte 2;    # byte

s: string;      # длина в символах
s1 := s[0:];    # срез

a: array of int;
a = array[10] of int;

myfunc: fn(i, k: int, s: string) : (list of string, int);
        \end{lstlisting}
\end{frame}


Библиография


Для простоты и универсальности я использую пакет biblatex. Вот тут есть сложность. Пакет beamer перекрывает часть умолчаний biblatex. Вот эти команды убирают иконки и задают фонт библиографии:


\setbeamertemplate{bibliography item}{\insertbiblabel}
\renewcommand*{\bibfont}{\fontsize{8}{1}\selectfont}

Надо помнить важный момент — библиография задаётся в отдельном файле. В примерах в шаблонах я пишу библиографию в основном тексте с помощью пакета filecontents, который в свою очередь создаёт нужный реальный файл. И компиляция происходит в ЧЕТЫРЕ шага. Сначала просто xelatex компилирует файл и создаёт вспомогательные файлы. Затем утилита biber компилирует файл библиографии, затем надо ещё дважды прогнать xelatex. Да, с препроцессорами там всё сложно.


Пакет biblatex тоже настраивается. Но на первое время хватит того, что есть у меня в примерах.


Послесловие


Я получил удовольствие и от подготовки презентации, и от подготовки материалов к этой статье. Я надеюсь, если кто-то хотел, но не мог решиться начать использовать LaTeX в своей работе — я сломал этот барьер. Конечно, я не сделал пакетов, я не копал в глубину, я не упомянул важные темы рисования. Но я думаю, что это уже всё придёт, как только вы начнете пользоваться инструментом. Неплохие практические статьи есть и на Хабре по тегу #latex.


Я надеюсь, что мои шаблоны кому-нибудь помогут на предстоящих конференциях. Возможно, кто-нибудь оформит те ошметки вспомогательного кода с подсветкой, которые годами валяются в интернете, в годный пакет. Дерзайте!

Поддержать автора
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 116

    +1

    Фичи Acme не раскрыты. Почему не любой обычный редактор, например, VSCode, или Eclipse, или IntelliJ IDEA?

      +1
      Потому что в 89-ом году их ещё не было? :)))
        +1
        Презентацию я конечно в vim писал. Это просто кусок самой презентации.
        +6
        Долгое время делал презентации в beamer, из любви к latex и все такое прочее. Но потом осознал, что затраты времени на создание хорошей презентации просто несравнимы с условным Keynote. То, на что там требуется несколько секунд (например, выравнивание картинок), в beamer уходили часы. В итоге, думается, в современном мире beamer уже менее актуален, чем раньше: красивые формулы делаются latexit или подобным, а все остальное проще, удобнее и быстрее в редакторах.
          0
          Давайте посмотрим вопрос цены. Я даже и поспорить-то не могу — я в глаза его не видел. И вероятно никогда не увижу ) Я могу пообсуждать разъезжающиеся презентации в PowerPoint, LibreOffice. Но Keynote… Я причем ничего не имею против, но «зачем beamer, когда есть keynote» — очень плохой аргумент. Потому что beamer он вот есть, а keynote он очень ограниченно есть
            +3
            «зачем beamer, когда есть keynote» — очень плохой аргумент.
            Собственно я не это хотел сказать. А скорее в обратную сторону: если есть keynote (т.е. используете mac), то в beamer нет смысла.
            Давайте посмотрим опрос цены.
            Конечно, если нет доступа к платному софту, beamer — нормальная альтернатива. Хотя, кажется, есть множество достаточно дешевых программ для презентаций за пределами powerpoint.

            Я все к тому, что раньше beamer был как latex по отношению к ворду — недостижимой вершиной. Т.е. хотите красивые формулы и картинки + стабильное форматирование, это единственный вариант. Сейчас это более не так. Можно делать красивые презентации, полные формул, в другом софте и гораздо быстрее/эффективнее. Кстати, keynote — кажется, не лучший из них даже, просто пример.
              +1
              Тогда нужен ещё пример. Keynote — это вселенная MacOS и вот это всё. Есть другой, более традиционный, платный софт, но к нему есть вопросы. Самый распространённый — почему у меня всё разъехалось. Другой момент — формулы нужны очень ограниченному кругу людей. И да, LaTeX тут стандарт. Как Fortran в математике, хотя казалось бы.

              Другой вопрос, что я считаю, что люди делятся на тех, кому подвигать мышкой, и кому пописать команды. Причем, последних субъективно больше, но у первых порог входа ниже. Я собственно к тому, что «latex к ворду» тоже не совсем корректное сравнение. Презентации я ваял в vim, как и программы на go. А не в эклипсе, емаксе или том же acme :) Сравнивать можно все инструменты, но уже предметно. Нет никакого word vs vim :)
                +1
                Fortran в математике
                Ммм? О чем речь? Number crunching?
                  0
                  NumPy например
                    +1

                    А причем Фортран к numpy?


                    А вообще математика большая. Кое-где стандарт — agda, например.

                      0
                      Собери без Фортрана. Я собственно вот в этом месте на шлагбаум налетел
                        0
                        Numpy написан на C.
                          0
                          Давайте раскрутим это до netlib. Суть не поменяется
                            0
                            Я сомневаюсь, что хоть какой-то значимый новый number crunching софт пишут на fortran. Всё на C/C++/assembler, где есть соотв. библиотеки. Код на фортран обычно приходится писать тем, кто поддерживает старый велосипед.
                              0

                              Есть реализации blas и lapack, написанные на фортране. Есть, впрочем, и без него.

                                0
                                есть-то есть, но кому они теперь нужны? :)
                                0
                                Не сомневайтесь, еще как пишут. Основной язык программирования с использованием MPI — фортран. Собственно, там еще в привязках и С есть, но для численных расчетов физики и инженеры предпочитают таки фортран. Причина банальна — в фортране есть полноценная и удобная работа с комплексными числами, матрицами и многомерными массивами, чего нет ни в Cи, ни в C++ (ISO/IEC 9899-2011 6.5.2.1 Array subscripting).
                                Собственно, в C и C++ нет ничего для разработки числодробилок, чего нет в фортране, но не наоборот — в фортране есть много чего, чего нет в ни в C, ни в C++. Специализированный инструмент всегда лучше, нежели универсальный.

                                  0
                                  Вы это из какого года пишете? Или что за софт? Я просто физик, работаю с HPC, не знаю ни одной значимой софтины на Fortran, написанной за последние 10-15 лет. Зато сходу могу назвать тройку программ, которые были переписаны с Фортрана на плюсы или С.
                                    0
                                    Назовите — даже интересно, кто и что переписал.
                                      0
                                      AMBER, Psi4, Cloudy…
                                      Я слышал, что есть что-то моложе 15 лет на Фортране, что и понятно, ведь есть люди, которые привыкли к Фортрану и им так удобней. Тем не менее, как мне кажется, уже давно идет постепенный отказ от Fortran. Примерно как с COBOL. Какой MPI софт Вы имели ввиду?
                                      0
                                      На фортране написано слишком много, чтобы это можно было переписать.
                                      Тот же lapack, который установлен на всех linux-кластерах в мире, написан на фортране. На си только привязки.
                                      Его производные:
                                      CLAPACK — f2c’ed conversion of LAPACK
                                      ScaLAPACK — fortran
                                      BLAS — Fortran
                                      CBLAS — C API for BLAS)
                                      BLAS++ — C++ API for BLAS and Batch BLAS.
                                      LAPACK++ — C++ API for LAPACK.

                                      А Вы и дальше считайте, что кто-то переписал netlib.org на C, C++ и на МСМ-языки.

                                      Если Вы купите компиляторы интел, с ними будет идти оптимизированный под их процессоры lapack, однако на чем он написан, большой секрет. В любом случае их ifort производит самый быстрый код, и он быстрее, чем произведенный icc. По крайней мере, на задачах разложения матриц, вычисления их спектра и прочих элементов ЛА.
                                        0
                                        Написано-то написано, но пользуются ли им, поддерживают ли его? Какова сегодня реальная роль фортрановского BLAS, когда ATLAS — и тот на C. Про Eigen, GSL/CBLAS и т.д. вообще молчу.
                                        Я не говорил, что netlib переписали на C. Сравнение ifort с icc к моему утверждению отношения не имеет. Я говорил, что fortran — это устаревший язык, как COBOL. Что-то на нём есть, но мало, чисто по инерции и постепенно сходит на нет.
                                          0
                                          Поддерживают и пользуются. Или Вы думаете, что штеуд и прочие ведущие производители систем программирования за просто так выпускают компиляторы с фортрана?
                                          Сегодня это единственный компилируемый язык, имеющий возможности для работы с векторами и матрицами прямо в языке, а не просто операторы доступа по индексу.
                                          Если Вы полагаете, что нужна поддержка ООП, что очень спорно, то их там есть — как только ООП стало модным-стильным-молодежным, его тут же туда воткнули.
                                          Не хочу разводить срач, но в С/С++, например, на уровне языка нет вообще никакой поддержки ни векторов, ни матриц, ни параллельного программирования — только лишь на уровне библиотек. Даже массивы, как таковые, поддерживаются всего лишь на уровне оператора доступа по индексу, который, как это написано в стандарте, всего лишь субституция арифметики указателей.

                                            0

                                            Это в какой стандарт Фортрана воткнули ООП?

                                              0
                                              Считается, что в 90-й, но без боли на это смотреть нельзя. Если не ошибаюсь, формально там есть только 1) инкапсуляция данных через структуры с приватными полями и доступом из модуля и 2) полиморфизм на уровне функций.
                                              0
                                              Да никто уже в здравом уме не пишет новые проекты на fortran кроме физиков, у которых год защиты кандидатской находится в epsilon окрестности какого-то релиза fortran. Штеуд специально дает mkl чтобы даже мысли о писании на fortran не было у ibm таже штука с essl. все остальные юзают eigen/thrust и не парятся
                                                0
                                                физики тоже уже вроде не пишут на фортран.
                                0

                                Посмотрел на зависимости numpy в своём дистре — зависит от виртуалов, предоставляющих cblas и lapack. От фортрана не зависит.

                                  0
                                  netlib
                                    0
                                    там просто куча старья. Старье на фортране есть. Но более-менее востребованные части уже переписаны на C++ или C.
                                      0
                                      Там гнездится софт, использующийся сегодня всеми значимыми опенсорсными проектами, а также многими проприетарными. На замену этому софту нет ничего и в проекте не просматривается. Как говорится, кому не нравится фортран и хочется переписать нетлиб на <подставьте сюда свой любимый язык>, тот не в состоянии это сделать, а те, кто может — их все устраивает.
                                        0
                                        всеми значимыми опенсорсными проектами
                                        Прям всеми? Скорее менее чем 1%. Кроме того, там много софта на C. Там есть код на fortran, но его востребованность, не так высока и, видимо, падает.
                                        На замену этому софту нет ничего и в проекте не просматривается
                                        Да ладно? ATLAS, Eigen, Armadillo и аналоги? Какой такой там есть софт, которому нет аналогов не на фортране?
                                        На фортране есть код, который кого-то (многих) всё ещё устраивает и им пользуются. Ну и всё.
                                          0
                                          Из atlas_install.pdf
                                          ATLAS also natively provides a few routines from the LAPACK [2] (Linear Algebra PACKage). LAPACK is an extremely comprehensive FORTRAN package for solving the most commonly occurring problems in numerical linear algebra. LAPACK is available as an open source FORTRAN package from netlib [21], and its size and complexity effectively rule out the idea of ATLAS providing a full implementation. Therefore, we add support for particular LAPACK routines only when we believe that the potential performance win we can offer make the extra development and maintenance costs worthwhile. Presently, ATLAS provides roughly most of the routines that involve the LU, QR and Cholesky factorizations.

                                            0
                                            ATLAS provides roughly most of the routines that involve the LU, QR and Cholesky factorizations.

                                            То есть, проще говоря, атлас поддерживает практически все, что более-менее востребовано.
                                            Ну и атласом список не заканчивается. А про какой значимый МПИ софт Вы говорили, который был написан за последние 15 лет на Фортране?

                                      0
                                      % eix netlib
                                      * sci-libs/coinor-netlib
                                           Доступные версии:      (~)1.2.6
                                           Домашняя страница:     https://projects.coin-or.org/svn/Data/Netlib
                                           Описание:              COIN-OR netlib models

                                      Похоже, отношения оно не имеет.


                                      Собственно, судя по ебилду, я и numpy могу собрать без lapack. Да и если запросить установку, то ничего фортраноподобного не втягивается (собираемость, впрочем, я не проверяю, там слишком много новых питонопакетов).

                                        –1
                                        Мне так лень разбирать. У меня клиент на легаси попросил собрать ему NumPy, я воткнулся в netlib, которого не было на той системе и в пакетах не было, и собрать я не смог, потому что собрать там фортран тех лет я посчитал овертаймингом уже решения проблемы. Может 30 лет не переписывали и за 3 переписали, но хз
                                          +1
                                          возможно, там есть какой-то код, которые 20 лет никто не трогал потому, что он никому особо не нужен :).
                                      0
                                      lapack в опенсорсных проектах с netlib.org и написан на фортране.
                                      cblas — всего лишь интерфейс к lapack.
                              0
                              Я собственно к тому, что «latex к ворду» тоже не совсем корректное сравнение.

                              Ну постойте. В ворде вы в жизни не сделаете так же, как latex. И дело не в двигании мышкой, а в отсутствии важных инструментов и концепций в ворде. И вот для больших документов со сложной версткой от latex вы никуда не денетесь. А от beamer — запросто. Тут как раз уже можно говорить о предпочтениях «мышка или код». Но я говорил в первую очередь об эффективности все же: имхо beamer гораздо менее эффективен в работе, когда нужно сделать красивую презентацию с большим количеством графики (и уравнений).

                              Другой момент — формулы нужны очень ограниченному кругу людей. И да, LaTeX тут стандарт.
                              Да, но есть другие инструменты, которые позволяют генерировать latex как одиночное изображение — тот же упомянутый latexit. Генерите формулу, копируете изображение в презентацию — и вуаля. У вас мощь latex в эффективности того же keynote.

                              А при чем тут vim я вообще не понял, честно признаться.
                                +1
                                Честно говоря, мы вроде об одном и том же :)) Но только я ни MacOS, ни Keynote никогда в глаза не видел и честно не готов предметно дискутировать. Как, впрочем, я не делал верстку больших документов или документов со строгими требованиями. А вот больше презентации делал. И несмотря на то, что я набил шишек с LaTeX это для меня оказалось эффективнее LibreOffice Impress/Power Point. Но вроде это Вашим тезисам и не противоречит.
                                  +2
                                  Наверное, об одном и том же:) Я, собственно, не хотел вас как-то убеждать отречься от beamer: у каждого свой опыт в конце концов.
                                  Для меня просто было всегда «latex — сила, а ворд и прочия powerpoint — фу». И я долгое время чисто из принципа не пытался делать ничего кроме beamer, еще всех убеждал им пользоваться. А потом оказалось, что все, что мне действительно важно в beamer — хорошее отображение уравнений — можно просто импортировать в любой другой софт. А все остальное удобнее и быстрее в этом другом софте, в моем случае Keynote. Единственный пункт под вопросом — стабильность верстки — в моем случае ни разу не становился проблемой. Но я не использую анимации, а слайды делаю дублируя предыдущий и удаляя ненужные части + использую сетку для ориентации.

                                  Я не знаю совсем, честно признаться, какие там проблемы с расползанием powerpoint, я всегда все равно в pdf экспортирую, и там все ок вроде. Но, по правде говоря, РР я пользуюсь исключительно редко.

                                  Отдельно замечу, что это, возможно, особенность презентаций: мне важно иметь много графической информации, часто с хитрым позиционированием, и формулами в странных местах (поверх изображений и т.п.). Возможно, для чисто формульных презентаций или кода я бы использовал beamer и дальше.
                                    +1
                                    > Но я не использую анимации, а слайды делаю дублируя предыдущий и удаляя ненужные части

                                    Вот на HighLoad++ 2018 я в этом месте погорел. Мне пришлось срочно отменять нумерацию, «раскручивать» вручную оверлеи, а потом я в пару мест решил внести изменения. Как я всех «любил». А LaTeX в этот раз на GolangConf 2019 меня от этого спас, хотя я презентацию доделывал за два часа до доклада — обнаружил и интересный материал. ВОТ ОНО!!! :)
                                      +1
                                      Представляю… Да, надо признаться, изменения при большом количестве слайдов, растущих из одного через оверлеи, иногда требуют времени (и эмоционального ресурса), что есть, то есть. Но я как-то привык уже, что ли, или наловчился быстро копипастой все решать.

                                      Для меня в итоге возможность быстро выделить какой-то элемент на изображении, обвести график или пририсовать деталь решает все равно: не надо отмерять пиксели в отступах, чтобы он попал на нужное место, а перетаскиваешь ровно куда надо. И вот это мне пригодилось уже множество раз: уж опыт изменения и допиливания презентаций за полчаса до доклада у меня большой, спасибо разгильдяйству:)
                                      0
                                      Но я не использую анимации, а слайды делаю дублируя предыдущий и удаляя ненужные части + использую сетку для ориентации.

                                      Попробуйте анимацию magic move, она как раз сделана для такого подхода. Иногда процесс перемещения одинаковых блоков при переключении слайда можно очень просто, и, главное, наглядно анимировать.
                                        +1
                                        Спасибо за совет! Дело не в том, что я не умею, я специально не делаю анимацию, т.к. чаще всего на конференциях неизвестно какой компьютер, и мне презентация нужна в pdf, чтобы ничего никуда не уплыло. Для этого приходится делать переходы вручную.
                                  +2
                                  Тот факт, что выходной формат — pdf, это не недостаток, а неоспоримое достоинство, поскольку pdf-ридеры сегодня есть даже на смартфонах, а офиса с поверпонтом в проекторах как то не наблюдается. А так воткнул в проектор флешку с презентацией и вперед — все проекторы сегодня умеют в pdf.

                                  Делать презентации в LaTeX — очень трудоемкий процесс. Я несколько раз пытался работать с бимером и всякий раз отказывался именно по этой причине.
                                  С другой стороны, PowerPoint и прочие аналоги имеют весьма скудные возможности форматирования текста. Тем, кто пользуется кнопками ЖПН и делает отступы пробелами, это фиолетово, а тем, кто работает со стилями, совершенно неприемлемо.
                                  Сам делаю презентации лекций в Libreoffice Writer с плагином TexMaths. Абзацы, символы, перечни — все стилями. Ничего не разъезжается — просто каждую страницу (слайд) нужно завершать разрывом страницы.
                                  +1

                                  Есть ещё вопрос версионирования. Опыт совместной работы над beamer-презентациями в гите (с пуллреквестами и этим всем) у меня есть, и он хороший. А как с этим у Keynote/Powerpoint/etc?

                                    +1
                                    На самом деле, не так плохо, как кажется. Office360 или как там его и GoogleDocs имеют и версионирование и совместную _одновременную_ работу (чего git не умеет).
                                      0

                                      Это, возможно, от воркфлоу зависит, но вот одновременно работать над презентацией или статьёй ни разу не хотелось (примерно так же, как не хотелось одновременно работать над кодом, по крайней мере, при его написании, а не отладке).


                                      В конце концов, что с коллегами по работе, что до того в вузе — я делаю какие-то правки, коллеги или научрук в комментах к PR пишет, что поменять, чуть реже смотрят на готовую pdf'ку, не написано ли ерунды в формулах и нормальные ли картинки, условно. Это заведомо очень асинхронный процесс.


                                      Ну и git log/checkout/blame (чтобы понять контекст данных конкретных изменений) тоже оказываются весьма полезными.


                                      Может, у меня программизм головного мозга, хз.

                                        0
                                        Согласен, одновременная работа над презентацией нужна редко, возможно при совместной подготовке презентации, когда кто-то кому-то помогает её готовить. Но версионирование есть и в Google Docs.
                                        0
                                        У LaTeX есть www.sharelatex.com, я упоминал его всуе в статье
                                        0
                                        Ну очевидно с гитом они никак (только разве как целый файл заливать или экспорт в html делать). Но совместная работа в реальном времени, скажем, Keynote поддерживается из коробки.
                                  +2

                                  Это хорошо, когда ты делаешь презентации, как самостоятельная единица. А вот как делать презентации в LaTeX, работая в корпорации? Или, перефразируя вопрос — как использовать уже существующие шаблоны MS Office для удобного создания презентации в LaTeX?

                                    0
                                    Или переписывать, или никак. В корпорации я бы предложил рассмотреть вопрос целесообразности куда-нибудь наверх. Например, большинство шаблонов достаточно простые. Я перегнал стандартные шаблоны конференций, потому что там вообще просто картинки. И шрифты подобрал. В 90% случаев корпоративных шаблонов — там примерно так же. А в 90% из оставшихся 10% все свистелки нецелесообразны
                                    +3
                                    Практически, сейчас существует один лидирующий дистрибутив утилит LaTeX/TeX, который поглотил все остальные — TexLive.

                                    Как минимум есть ещё активно развивающийся MiKTeX, который обновляется чаще TeX Live. У него гораздо более удобный GUI для пользователей Windows и поддерживает из коробки установку пакетов on-the-fly.

                                      0
                                      Это действительно упущение. Он как-то мимо меня прошёл. Но он чисто под Windows…
                                        +1

                                        Не только. Есть готовые образы (правда не совсем последней как у windows-версии) и для MacOS, и для части дистрибутивов Linux. Также можно его собрать самому из исходников.

                                          0
                                          Ну кстати. Это вот прямо повод для небольшой статьи я считаю
                                        +1
                                        Установку на лету умеет и texlive:
                                        tlmgr install texliveonfly && texliveonfly my_file.tex


                                        Ну и тащить texlive-full смысла нет, там 5 гигов ненужных пакетов, а хватает, судя по опыту, всего пятисот метров. Так что ставить минимальную сборку, а дальше устанавливаем необходимое через texliveonfly.
                                        0
                                        Он полностью совместим с pdflatex, но работает с системными шрифтами.

                                        Это не так, и почему написано прям в этом же предложении.
                                        Грузить XeLaTeX, чтобы использовать Таймс и Ариал — это круто :)

                                        На выходе только PDF

                                        Технически, тоже неправда (хотя другие стандартные опции ещё хуже). Пандок умеет переводить тех в другие разметки и даже в пауэрпоинтовский формат.
                                          0
                                          Не столько с Таймс и Ариал, сколько с рендерингом оных. Ну и не иметь возни с угадыванием энкодинга и вот этого вот всего. Вы ведь прекрасно понимаете о чем я
                                            0
                                            А что с их рендерингом?
                                              0
                                              Выглядит отвратно. Особенно там плохо с кернингом
                                            0
                                            У меня в статье ссылки на одну боевую и две шаблонные презентации. Переведите их в ppt Пандоком и покажите тут в анимированном gif. Можно например ppt потом конвертнуть в pdf и дать мне. И посмотрим, можно ли так вообще делать, или это просто строка в доку Пандок
                                            0

                                            Пришел к подобному подходу (Современный формат презентаций), только Latex все же сложновато — я за Markdown :)

                                              +1
                                              Честно говоря, это очень узкий случай. Хотя, почему бы и нет. Но ни для полиграфии, ни для доклада на конференциях не зайдет
                                                0

                                                Почему для доклада на конфе не зайдет? У меня заходило.

                                                  0
                                                  Я так понимаю, это ведь онлайн?
                                                    +2
                                                    Посмотрел: там простые статичные файлы, можно скачать всё и открыть локально: github.com/KvanTTT/Presentations/tree/master/2018-05-15-Source-code-analyzers-how-generalizable-are-they
                                                      +2
                                                      Нет, они прекрасно переводятся в html, который можно выложить куда угодно, или для конференций часто лучше сделать pdf. Там, конечно, нет въезжающей и выезжающей анимации, но зато не слетит
                                                        0

                                                        Так в pdf тоже есть экспорт, но правда кривоватый. А html открывается всеми современными браузерами на всех популярных платформах, собственно в статье об этом расписано.

                                                          0
                                                          По крайней мере Reveal-презентации Decktape прекрасно переводит в pdf. Это, конечно, растры, но с заданным разрешением, поэтому в нормальном качестве. Причем как во варианте с анимацией, так и во варианте без нее
                                                    +1
                                                    Мы используем Asciidoc, но суть не меняется. На всех конференциях и в полиграфии — самое то. За последние два года не сделал ни одной презентации в Powerpoint и аналогах. Коллеги используют Markdown и тоже с отличным результатом. И Latex, как мы видим, прекрасен. Отличная статья на правильную тему. Спасибо автору
                                                      0

                                                      Почему бы не использовать все современные возможности медиа типа интерактива, графики, видео в презентациях? В наше время презентация — это не просто набор статичных страничек, пусть с оверлеями.


                                                      Поэтому средства, описанные в статье (использование javascript), даже лучше ложатся на концепцию программирования презентаций, чем Latex. Ведь с финальной программой обычно можно взаимодействовать, а не просто получать результат каких-то вычислений.

                                                        0
                                                        В наше время презентация — это не просто набор статичных страничек, пусть с оверлеями.

                                                        Самая лучшая презентация — статика. Ну ещё GIF-ки иногда допустимы. Все остальные свистелки и перделки не несут аболютно никакой полезной информации и только мешают восприятию контента.


                                                        А

                                                    +2
                                                    Привет единомышленникам ) См. Презентация как код, или Почему я больше не пользуюсь Powerpoint-ом

                                                    Я умею в LaTeX и люблю LaTeX, но чтобы сделать технологию более доступной коллегам, остановился на AsciiDoctor. Но LaTeX — технология более продвинутая, конечно, если есть смелость перелезть через входной барьер.
                                                      0
                                                      Честно говоря, я не умею в LaTeX. Это мой полуторный опыт. Первые 0.5 был счет и квитанция для тестов. Я там ежа родил с русскими шрифтами и pdflatex. Но тут внезапно барьер перешагнулся и прямо чтобы трудностей нет. Всё решается крайне небольшим набором инструментов
                                                        +1
                                                        Фил, слушай, а ты не заморачивался с генерацией извещений Почты России, ну тех которые приходят когда в отделение прибывает посылка с алишечки, а то я задалбываюсь кадый раз у них на сайте вводить одно и то-же. Главный затык это сгенерить правильный штрих-код трека посылки.
                                                          0

                                                          Не-а. Вопрос интересный

                                                      +1
                                                      Это не программирование, а разметка.
                                                        –1
                                                        Мммм… Нет :)
                                                          0
                                                          LaTeX это язык разметки, а не язык программирования.
                                                            +1

                                                            Он Тьюринг-полон, так что его вполне можно называть языком программирования.

                                                              +1
                                                              LaTeX это вообще макрорасширение. Но TeX вполне язык программирования
                                                          +1
                                                          Никто не оценил саму презентацию :((

                                                          На самом деле я забыл задать интересный вопрос. А есть ли нормальный показыватель презентаций в PDF? С видео, с двумя экранами, с таймером, с комментариями?
                                                            0
                                                            Я когда-то пользовался pdfpc, вроде было вполне.
                                                              0
                                                              Кстати, не задумывался о том, что такое возможно с PDF… В ситуации, когда конференция не даёт подключать свой ноутбук, у них в любом случае будет только Adobe Acrobat в Full-screen режиме.

                                                              В ситуации, когда свой ноутбук подключить можно, я открываю RevealJS презентацию в браузере, нажимаю кнопку S — и в отдельном окне браузера всё есть. Но я этим обычно не пользуюсь, текущего слайда мне вполне достаточно.
                                                                0

                                                                Ну вот кстати Okular. Надо постестировать. Ещё есть какой-то pdfpc

                                                                  +1
                                                                  Вот, кстати, о KDE… точнее KDE Connect, который с телефона позволяет рулить презентацией на компе. Не пробовал?
                                                                    0

                                                                    Ну и где ты в общем случае на конфе на компе организаторов найдешь KDE?

                                                              0
                                                              Когда писал диссер, тоже делал доклад в latex/pdf. и с версиями в гите. Но это была ВАЖНАЯ ПРЕЗЕНТАЦИЯ ))
                                                              А по работе все презентации очень короткоживущие, практически одноразовые, и большого смысла вкладываться в них нет. Использую самое простое — google slides. Да, фич мало, но это стимулирует к минималистическому стилю ))
                                                              Либо если это маркетинг, то они наоборот один раз вылизаны и показываются тысячу раз.
                                                                +2
                                                                И компиляция происходит в ЧЕТЫРЕ шага

                                                                Чтобы не заниматься всем этим ужасом, какие-то хорошие люди написали latexmk. Пишем в консоли latexmk -pdf myfile.tex и смотрим, как все это вызывается столько раз, сколько надо, и в той последовательности, в которой надо (никогда не мог ее запомнить). Подозреваю, что ему можно так же просто сказать, что нужно использовать xelatex.
                                                                  0
                                                                  Кстати. Не знал
                                                                    0
                                                                    Похоже что можно…
                                                                    0
                                                                    Стесняюсь спросить, а где, собственно, те самые неплохие слайды, которыми вы сюда людей заманили?
                                                                      0
                                                                      Поехали -> первое предложение
                                                                        0
                                                                        Что «первое предложение»? Где слайды?
                                                                        Почему в превью к статье вы их упоминаете, но не удосужились нормально дооформить статью и продемонстрировать результат?
                                                                          0
                                                                          Не очень понимаю претензию. Я оформил так и расположил упоминания так, как я считал нужным для повествования. Превью — собственно в превью к статье превью тех слайдов и стоит. Возможно, это не совпадает с какими-нибудь стандартами и соглашениями, но мне ничего об этом неизвестно.
                                                                            +1
                                                                            Я думаю, они тут по ссылке на GolangConf2019:
                                                                            А вот так выглядит готовая презентация, которую я сделал на GolangConf2019. Вокруг неё мы и будем крутиться.
                                                                              0

                                                                              Да, возможно. Подвинул ссылку. Спасибо

                                                                                0
                                                                                Ясно, спасибо. Если это те самые слайды, возможно, мои ожидания были выше.
                                                                                  0

                                                                                  Да, это те самые слайды

                                                                        +2
                                                                        Как человек, несколько лет собиравший презентации в LaTeX и рисовавший иллюстрации к ним в TikZ для кафедры дидактики математики RWTH могу сказать, что Beamer не исчезнет ещё очень долго.

                                                                        Большинство научных статей и работ по MINT (STEM) тематике до сих пор верстается в LaTeX и людям, относительно далёким от IT (профессора, доценты) привычнее использовать LaTeX как универсальный и кроссплатформенный инструмент, чем освоить что-то новое. К тому же:
                                                                        image

                                                                        В школах да — повсеместный Microsoft Office и Pages/Keynote. Учителям удобнее, хотя бы потому что WYSIWYG, но смотря на вёрстку очередного листа с заданиями или контрольной иногда становится очень грустно.
                                                                          0
                                                                          Ну кстати, умолчательное удобство WYSIWYG — миф. Он только _иногда_ снижает порог входа. Вообще везде, где это слово уместно
                                                                          0

                                                                          [aspectratio=169] это не "размер презентации 16 на 9 см"

                                                                            0

                                                                            beamer/beamer.cls


                                                                            \DeclareOptionBeamer{aspectratio}[43]{%
                                                                              \ifnum#1=1610%
                                                                                \beamer@paperwidth 16.00cm%
                                                                                \beamer@paperheight 10.00cm%
                                                                              \else\ifnum#1=169%
                                                                                \beamer@paperwidth 16.00cm%
                                                                                \beamer@paperheight 9.00cm%
                                                                              \else\ifnum#1=149%
                                                                                \beamer@paperwidth 14.00cm%
                                                                                \beamer@paperheight 9.00cm%
                                                                              \else\ifnum#1=54%
                                                                                \beamer@paperwidth 12.50cm%
                                                                                \beamer@paperheight 10.00cm%
                                                                              \else\ifnum#1=43%
                                                                                \beamer@paperwidth 12.80cm%
                                                                                \beamer@paperheight 9.60cm%
                                                                              \else\ifnum#1=32%
                                                                                \beamer@paperwidth 13.50cm%
                                                                                \beamer@paperheight 9.00cm%
                                                                              \else\ifnum#1=141%
                                                                                \beamer@paperwidth 14.85cm%
                                                                                \beamer@paperheight10.50cm%
                                                                              \fi\fi\fi\fi\fi\fi\fi%
                                                                            }
                                                                              0
                                                                              Коряво же как-то, ведь aspectratio — это соотношение сторон.
                                                                              И зачем для экранного документа указывать единицы в сантиметрах? Наверное, исторически сложилось.
                                                                                0

                                                                                Не, ну привязаться-то надо к чему-то. Те же шрифты должны же от чего-то отталкиваться. посмотрите, PowerPoint и LibreOffice тоже дают размер какой-то

                                                                            0

                                                                            Пробовал и упоминающийся в статье beamer, и кучу других инструментов — в итоге остановился на Shower — как в чистом виде (презентация пишется с использованием HTML-разметки), так и с использованием Bochar, чтобы писать презентацию на Маркдауне. Как веб-разработчику, мне такой подход вполне удобен.

                                                                              0

                                                                              Тоже вариант, конечно. Но насколько он позволяет делать те простые вещи, о которых я говорил выше? Прокрутите мою презентацию

                                                                              +1
                                                                              Что меня напрягает во всех этих системах разметки — слишком много нажатий Shift для ввода спецсимволов, и рука не отлипает от клавиш переключения раскладки, потому что через предложение приходится вставлять очередной тег на английском.
                                                                                +2
                                                                                Не знаю, с чем вы сравниваете LaTeX, но ни один из языков разметки, думается мне, не создавался с учётом использования кириллической, равно как и любой другой раскладки, за исключением ANSII латиницы.

                                                                                Если вас утомляет нажатие на Shift, возможно порадует тот факт, что »\«, с которой начинаются все команды TeX, вводится в macOS нажатием Alt+Shift+7.
                                                                                  0

                                                                                  АААААААААААААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!!

                                                                                    0
                                                                                    Если вас утомляет нажатие на Shift, возможно порадует тот факт, что »\«, с которой начинаются все команды TeX, вводится в macOS нажатием Alt+Shift+7.

                                                                                    У вас странная раскладка… У меня в латинице на mac book это отдельная клавиша (слева от Enter).
                                                                                      0
                                                                                      Стандартная немецкая QWERTZ.
                                                                                      image
                                                                                        0
                                                                                        ах вот оно что… это да, эту раскладку придумали в аду для мучения худших представителей рода человеческого и по недосмотру выпустили на Землю. Но я не представляю, почему бы использовать ее для программирования вместо стандартной латиницы. У меня три раскладки: немецкая, русская и английская, прекрасно живут вместе.

                                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                Самое читаемое