beamer

beamer는 LaTeX로 발표용 슬라이드(PDF)를 만들기 위한 document class입니다. 원고를 frame이라는 단위로 나누면 각각이 슬라이드 한 장이 됩니다. 학술 발표에서 익숙한 정돈된 테마, 목록을 한 줄씩 보여 주는 오버레이, 좌우 2단 구성과 강조 상자까지 프레젠테이션에 필요한 것이 두루 갖춰져 있습니다. 이 페이지에서는 첫 줄부터 단계 표시까지 차례로 살펴봅니다.

클래스 선택 — \documentclass{beamer}

beamer 문서는 \documentclass{beamer}로 시작합니다. 이 한 줄만으로 페이지는 종이가 아니라 스크린 한 화면분의 가로형이 되고, 제목, 내비게이션, 배색 같은 프레젠테이션용 체재가 한꺼번에 정돈됩니다. 일반 article처럼 장절을 흘려 보내는 것이 아니라, 화면 단위로 내용을 배치해 가는 것이 beamer의 방식입니다.

기본 슬라이드는 4:3(약 126 mm × 96 mm)입니다. 요즘 와이드 화면에 맞추고 싶다면 클래스 옵션으로 가로세로비를 바꿉니다. \documentclass[aspectratio=169]{beamer}라고 하면 16:9가 됩니다. aspectratio가 받는 값은 1610, 169, 149, 54, 43, 32이며 각각 16:10, 16:9, 14:9, 5:4, 4:3, 3:2를 뜻합니다. 본문 글자 크기도 \documentclass[11pt]{beamer}처럼 지정할 수 있고 기본값은 11pt입니다.

frame 환경 — 슬라이드 한 장

beamer의 주역은 frame 환경입니다. 원칙적으로 \begin{frame}부터 \end{frame}까지가 슬라이드 한 장이 되며, 그 안에 목록, 그림, 수식을 씁니다. 슬라이드 제목은 \frametitle{...}로 붙이거나 \begin{frame}{Title}처럼 환경의 인수로 넘깁니다.

latex
\begin{frame}{はじめに}
  \begin{itemize}
    \item 背景
    \item 目的
  \end{itemize}
\end{frame}

여기서 중요한 점은 하나의 frame이 반드시 한 페이지는 아니라는 것입니다. 뒤에서 볼 오버레이(단계 표시)를 사용하면 같은 frame에서 여러 PDF 페이지가 생성되어 재생 시 애니메이션처럼 보입니다. 그래도 “frame = 논리적인 한 화면”이라는 단위는 변하지 않으며, 페이지 번호가 아니라 frame 번호로 셉니다.

제목 슬라이드와 목차

제목 정보는 article 등과 마찬가지로 프리앰블에서 선언합니다. \title{...}, \author{...}, \institute{...}, \date{...}를 쓰고, 본문에서는 \titlepage 를 frame 하나에 넣으면 제목 슬라이드가 조판됩니다(\maketitle도 같은 결과입니다). 발표에서는 \date{\today}로 날짜를 자동 입력하는 경우가 많습니다.

긴 발표에서는 \section{...}으로 내용을 나누면 그 정보가 각 슬라이드 위쪽 내비게이션에 반영됩니다. 구분을 선언한 뒤 \tableofcontents를 frame 하나에 넣으면 목차 슬라이드가 됩니다. \tableofcontents[currentsection]라고 쓰면 현재 절만 강조한 목차가 되며, 각 절의 시작에 자동으로 넣고 싶다면 프리앰블에서 \AtBeginSection[]{...}를 사용해 이 목차 프레임을 삽입합니다.

테마 — 전체 모양을 한꺼번에 정하기

beamer의 큰 매력은 테마 를 한 줄 고르기만 해도 배색, 레이아웃, 내비게이션이 정돈된다는 점입니다. 프리앰블에서 \usetheme{Madrid}처럼 presentation theme 를 선택합니다. Madrid 외에도 Berlin, Warsaw, Singapore, metropolis(추가 설치 필요) 등 많은 테마가 있습니다. 배색만 바꾸려면 \usecolortheme{...}(예: beaver, seahorse, dolphin), 서체는 \usefonttheme{...}(예: serif, professionalfonts)로 조정합니다.

명령정하는 것
\usetheme전체 레이아웃, 내비게이션, 배색\usetheme{Madrid}
\usecolortheme배색만 교체\usecolortheme{seahorse}
\usefonttheme제목과 본문 서체\usefonttheme{serif}
\useinnertheme / \useoutertheme내부(목록 등) / 외부(헤더 등) 체재\useoutertheme{infolines}

오버레이 — 단계적으로 보여 주기

발표 중 내용을 조금씩 제시하고 싶을 때는 오버레이를 사용합니다. 가장 간단한 것은 \pause 로, frame 중간에 두면 그 뒤의 내용이 다음 슬라이드(다음 페이지)로 넘어갑니다. 이때 하나의 frame이 여러 PDF 페이지로 펼쳐지고, 재생하면 단계 표시가 됩니다.

latex
\begin{frame}{結果}
  \begin{itemize}
    \item 第一の点
    \pause
    \item 第二の点
    \pause
    \item 第三の点
  \end{itemize}
\end{frame}

더 세밀하게 제어하고 싶다면 명령 바로 뒤에 산괄호 <...>오버레이 지정을 붙입니다. 예를 들어 \item<1->는 “1장째 이후 계속 표시”, \item<2>는 “2장째에만 표시”, \item<2->는 “2장째 이후”를 뜻합니다. <-2,4-5,7>처럼 범위나 건너뛰는 번호도 쓸 수 있습니다. 표시·비표시를 전환하는 대표 명령은 다음과 같습니다.

명령동작공간 처리
\pause이후 내용을 다음 슬라이드로 보냄보내진 내용은 차례로 추가 표시
\onslide<2->{...}지정 슬라이드에서 표시, 그 외에는 숨김항상 공간 확보(밀리지 않음)
\uncover<2->{...}지정 슬라이드에서 나타냄항상 공간 확보
\only<2>{...}지정 슬라이드에만 출력공간을 확보하지 않음(내용이 당겨짐)
\alert<2>{...}지정 슬라이드에서 강조색으로 표시항상 표시되고 공간 확보

\onslide\uncover는 내용이 숨겨져 있는 동안에도 공간을 확보하므로 항목이 나타나도 레이아웃이 밀리지 않습니다. 반면 \only는 출력 자체를 넣고 빼기 때문에 숨겨진 분량의 공간은 당겨집니다. \alert<2>{...}처럼 \textbf\textcolor에도 오버레이 지정을 붙여 “특정 슬라이드에서만 강조”할 수 있습니다.

블록, 단 구성과 fragile

내용을 테두리 상자로 강조하려면 block 환경을 사용합니다. \begin{block}{Title}…\end{block}는 테마에 맞는 제목 달린 상자가 됩니다. 경고 느낌의 alertblock, 예시용 exampleblock도 있으며, 정리와 정의에는 theorem, definition 환경을 그대로 사용할 수 있습니다.

슬라이드를 좌우로 나누고 싶을 때는 columns 환경 안에 \column{width}(또는 column 환경)을 나열합니다. 그림과 설명을 가로로 나란히 놓기에 편리합니다.

latex
\begin{frame}{比較}
  \begin{columns}
    \column{0.5\textwidth}
      左の内容
    \column{0.5\textwidth}
      右の内容
  \end{columns}
\end{frame}

주의할 점이 하나 있습니다. frame 안에서 verbatim 환경이나 listings(소스 코드 표시)를 사용할 때는 그 frame에 [fragile] 옵션을 붙여 \begin{frame}[fragile]라고 써야 합니다. beamer는 오버레이를 위해 <, > 같은 문자의 의미를 내부에서 바꾸는데, 문자를 그대로 출력해야 하는 verbatim과 충돌하기 때문입니다. [fragile]을 붙이면 frame 내용을 일단 외부 파일에 써낸 뒤 다시 읽는 특별 처리로 전환되어 둘이 공존할 수 있습니다.

최소 예

다음은 테마, 제목 슬라이드, \pause가 붙은 목록 frame을 갖춘 컴파일 가능한 최소 beamer 문서입니다. 프리앰블에서 테마와 제목 정보를 선언하고, 본문에서는 첫 frame에 \titlepage를, 다음 frame에 단계 표시 목록을 둡니다.

latex
\documentclass[aspectratio=169]{beamer}
\usetheme{Madrid}

\title{My Talk}
\author{Ada Lovelace}
\institute{Analytical Engine Lab}
\date{\today}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{Overview}
  \begin{itemize}
    \item Background
    \pause
    \item Method
    \pause
    \item Results
  \end{itemize}
\end{frame}

\end{document}

컴파일하면 먼저 Madrid 테마의 제목 슬라이드(제목, 저자, 소속, 날짜)가 나타나고, 이어지는 “Overview” 슬라이드에서는 화면을 넘길 때마다 항목이 하나씩 추가됩니다. frame은 두 개지만 \pause 때문에 PDF는 여러 페이지로 펼쳐집니다. 일본어 슬라이드로 만들 때는 LuaLaTeX라면 luatexja 등으로 일본어에 대응시키고 엔진에 맞는 설정을 더합니다.

발표 자료로 쓰는 순서

beamer는 논문을 그대로 잘게 자르는 도구가 아닙니다. 먼저 발표 흐름을 “문제, 방법, 결과, 결론” 정도로 나누고, 각 frame에는 하나의 주장만 둡니다. 본문 원고에서 긴 단락을 붙여 넣지 말고 그림, 식, 짧은 목록으로 압축한 다음, 필요한 곳에만 \pause<2->로 단계 표시를 합니다.

  • 화면비 — 투영 환경을 안다면 슬라이드를 설계하기 전에 aspectratio=169 또는 43을 정합니다.
  • 밀도 — 슬라이드당 목록은 3~5개를 기준으로 하고, 세부 내용은 말로 하거나 배포 자료로 넘깁니다.
  • 코드와 로그verbatim, listings, minted가 들어 있는 frame에는 [fragile]을 붙입니다.
  • 핸드아웃판 — 오버레이 때문에 PDF가 읽기 어렵다면 제출이나 배포용으로 오버레이를 줄인 PDF도 준비합니다.

발표판과 배포판 분리하기

beamer PDF는 기본적으로 발표 중 넘기기 위한 문서입니다. \pause<2-> 오버레이가 많은 상태로 배포하면 같은 논리적 frame이 여러 페이지로 늘어나 읽기 어려운 핸드아웃이 됩니다. 제출용이나 사전 배포용으로는 같은 소스에서 handout 옵션을 붙인 배포판을 별도로 만들거나, 중요한 frame만 오버레이를 줄인 판을 준비합니다.

latex
% talk version
\documentclass[aspectratio=169]{beamer}

% handout version: switch this line when exporting for distribution
% \documentclass[aspectratio=169,handout]{beamer}

\begin{document}
\begin{frame}{Result}
  \begin{itemize}[<+->]
    \item Observation
    \item Interpretation
    \item Limitation
  \end{itemize}
\end{frame}
\end{document}

배포판을 만들 때는 페이지 수뿐 아니라 한 페이지에 나타나는 정보량도 봅니다. 강연에서는 단계 표시가 효과적이어도, 배포 자료에서는 처음부터 모든 항목이 보이는 편이 더 읽기 쉬울 수 있습니다. 반대로 발표판에서는 세세한 주석이나 보충을 줄이고, 자세한 내용은 handout이나 논문 본문으로 넘기면 청중이 화면을 따라가기 쉬워집니다.