발표가 끝나고 “슬라이드 좀 주세요”라는 말에 방금 비추던 파일을 그대로 보낸 적이 있으신가요. 받은 쪽이 열어 보면 같은 그림이 네 번씩 나오는 120쪽짜리 PDF입니다. \pause로 한 장씩 드러나는 그림은 화면에서는 단계 표시지만, 인쇄물에서는 중복일 뿐입니다. LaTeX의 beamer에는 바로 이 문제만을 위한 클래스 옵션이 있습니다. handout입니다. 모든 오버레이를 접어 한 프레임을 한 페이지로 되돌립니다. 실측에서 3단계 오버레이를 가진 프레임 두 개짜리 덱이 6쪽에서 2쪽이 되었습니다. 이 페이지는 그 handout, \note로 쓰는 발표자 노트, pgfpages로 한 장에 슬라이드 넷을 넣는 법, 그리고 “발표 내용을 문서로 배포하는” 또 하나의 길을 다룹니다.
\documentclass[handout]{beamer} — 오버레이를 접는다
클래스 옵션에 한 단어를 더하면 끝입니다. \documentclass[handout,aspectratio=169]{beamer}라고 쓰면 \pause도 \item<2->도 아무 일을 하지 않게 되고, 각 프레임이 정확히 한 페이지가 됩니다. 실측해 봅시다. \pause를 두 번 넣은 프레임 하나와 \item<1->, <2->, <3->로 된 목록 프레임 하나, 모두 두 프레임짜리 덱이 보통 모드에서 6쪽, handout을 더하면 2쪽이 되었습니다. 페이지 치수는 그대로입니다(양쪽 다 362.835 × 272.126 pt). 내용은 한 글자도 바꾸지 않고 같은 .tex에서 두 개의 PDF를 얻습니다. 실무에서는 handout으로 클래스를 지정하고 본문을 \input하는 세 줄짜리 파일을 따로 두는 것이 사고가 가장 적습니다.
여기에 모르면 배포 자료가 조용히 망가지는 함정이 있습니다. handout은 오버레이를 “마지막 상태”로 접는 것이 아니라, 모든 컷의 내용을 겹쳐서 내놓습니다. 실제로 \only<1>{ALPHA}와 \only<2>{BRAVO}를 나란히 둔 프레임을 handout으로 조판하면, 나온 한 페이지에 ALPHA와 BRAVO가 모두 인쇄되어 있었습니다. 식의 일부를 \only로 갈아 끼우는 흔한 서법은, 배포 자료에서는 교체 전과 후가 나란히 나온다는 뜻입니다. 해결책은 오버레이 지정에 모드 이름을 함께 적는 것입니다. \only<2| handout:1>{...}이면 “발표에서는 둘째 컷, 배포 자료에서는 첫째 컷(곧 보인다)”, \item<2-| handout:0>이면 “배포 자료에는 내지 않는다”입니다. 프레임 단위로 바꾸려면 \begin{frame}<handout:0>으로 배포 자료에서 빼고, \begin{frame}<beamer:0>으로 배포 자료에만 냅니다. 실측에서 이 둘을 담은 세 프레임짜리 덱은 발표용과 배포용 각각 정확히 2쪽씩, 서로 다른 내용으로 출력되었습니다.
\documentclass[handout,aspectratio=169]{beamer}
% WRONG in a handout: both versions of the formula are printed
\only<1>{$x^2 + y^2$}
\only<2>{$x^2 + y^2 = r^2$}
% RIGHT: say what each mode should do
\only<1| handout:0>{$x^2 + y^2$} % talk only
\only<2| handout:1>{$x^2 + y^2 = r^2$} % talk step 2, handout step 1
% frame-level switches
\begin{frame}<handout:0>{Live demo} % not in the handout
\begin{frame}<beamer:0>{Full derivation} % handout only\note{...}는 기본으로 아무것도 내지 않는다 — \setbeameroption{show notes}가 필요하다
프레임 안에 \note{여기서 연구비 이야기}라고 써도 기본 상태에서는 PDF가 전혀 달라지지 않습니다. 실측으로 확인해 보니 세 프레임 가운데 둘에 \note를 넣어도 출력은 3쪽 그대로였습니다. 이것은 설계대로이며, beamer는 노트를 안에 담아 둘 뿐입니다. 꺼내려면 프리앰블에서 \setbeameroption{...}을 선언합니다. 같은 세 프레임 덱에서 재 보면 show notes는 5쪽(슬라이드 3장과, 노트가 있는 프레임 바로 뒤에 끼워지는 전용 페이지 2장), show only notes는 2쪽(노트만), show only slides with notes는 4쪽(노트가 있는 프레임과 그 노트만)이었습니다. show notes를 쓴 뒤 hide notes를 쓰면 다시 3쪽으로 돌아갑니다. 무대에 오르기 직전에 여기저기 주석 처리하는 것보다 이 한 줄을 바꾸는 편이 안전합니다.
| 프리앰블에 넣는 줄 | 나오는 것 | 3프레임 덱에서의 실측 |
|---|---|---|
(none) | 슬라이드만. \note는 저장되지만 출력되지 않음 | 3쪽 |
\setbeameroption{show notes} | 슬라이드와 그 바로 뒤에 끼워지는 노트 전용 페이지 | 5쪽 |
\setbeameroption{show only notes} | 노트 페이지만. 손에 들고 읽을 원고가 됨 | 2쪽 |
\setbeameroption{show only slides with notes} | 노트를 쓴 프레임과 그 노트만 | 4쪽 |
\setbeameroption{hide notes} | 앞서 쓴 show notes를 취소. 발표 직전에 넘길 스위치 | 3쪽 |
\setbeameroption{show notes on second screen=right} | 쪽수는 그대로, 한 페이지가 좌우 두 화면으로 넓어짐 | 3쪽 / 725.669 × 272.126 pt |
노트 페이지의 내용도 살펴볼 만합니다. show notes로 나오는 페이지에는 위쪽에 그 슬라이드의 축소 이미지와 날짜가 놓이고 그 아래에 본문이 들어갑니다. \note{...}를 잇달아 쓰면 단락이 이어지고, 항목으로 만들고 싶으면 \note[item]{...}을 쓰면 번호 매긴 목록이 됩니다. 실측에서 \note[item]을 둘 쓴 프레임의 노트 페이지에는 “1. first bullet”, “2. second bullet”이 나란히 찍혔습니다. 또 하나 알아 두면 좋은 것은 \end{frame} 뒤에 두는 단독 \note{...}입니다. 이것은 어느 프레임에도 매이지 않은 독립 노트 페이지가 되어, “다음 절로 넘어가기 전에 이 세 가지를 떠올린다” 같은 긴 메모를 두기에 알맞습니다. 노트는 슬라이드 내용과 달리 몇 줄을 쓰든 레이아웃을 깨뜨리지 않습니다. 여기서 유일하게 과하게 써도 되는 도구입니다.
\documentclass{beamer}
\setbeameroption{show notes} % swap for "hide notes" before you present
\begin{document}
\begin{frame}{Results}
Body of the slide.
\note[item]{mention the sample size}
\note[item]{do not read the table aloud}
\end{frame}
% a standalone note page, bound to no frame
\note{Before section 3: water, timer, ask about questions.}
\end{document}한 장에 슬라이드 넷 — pgfpages와 \pgfpagesuselayout
\usepackage{pgfpages}를 불러오고 \pgfpagesuselayout{4 on 1}[a4paper,border shrink=5mm]이라고 씁니다. 실측에서는 handout 모드의 다섯 프레임짜리 덱이 이것으로 A4 세로 2쪽(595.276 × 841.89 pt)이 되었습니다. 2 on 1로 바꾸면 3쪽, [a4paper,landscape,border shrink=5mm]를 넘기면 A4 가로(841.89 × 595.276 pt)입니다. border shrink는 각 슬라이드를 줄여 여백을 만드는 양으로, 제본 여백이나 필기할 공간이 필요할 때 씁니다. pgfpages는 beamer와 PGF/TikZ를 쓴 Till Tantau 본인의 작품이며, 버전 문자열은 여전히 \ProvidesPackage{pgfpages}[2011/01/05 ver 0.02]입니다. 오래전에 안정된 패키지로 읽는 것이 옳습니다.
pgfpages.sty 안을 세어 보면 레이아웃은 아홉 가지입니다. 2 on 1, 4 on 1, 6 on 1, 8 on 1, 16 on 1, 그리고 resize to(한 장을 다른 용지에 맞춰 확대·축소), rounded corners, two screens with lagging second, two screens with optional second입니다. 여기서 3 on 1은 존재하지 않습니다. “3 on 1로 짰는데 오류가 난다”는 질문이 이따금 나오는 이유가 이것이고, 슬라이드 세 장짜리 레이아웃은 다음 절의 handoutWithNotes가 더해 줍니다. 실무상 주의 하나. 4 on 1을 A4 세로에 두면 2 × 2로 놓이므로 16:9 슬라이드에서는 좌우 여백이 눈에 띕니다. 16:9 덱이라면 landscape를 붙이거나 세로로 2 on 1을 쓰는 편이 종이를 더 예쁘게 채웁니다.
% the whole handout build, in five lines
\documentclass[handout]{beamer}
\usepackage{pgfpages}
\pgfpagesuselayout{4 on 1}[a4paper,border shrink=5mm]
% for a 16:9 deck, turn the sheet instead
\pgfpagesuselayout{4 on 1}[a4paper,landscape,border shrink=5mm]
% one slide per sheet, scaled up to fill A4
\pgfpagesuselayout{resize to}[a4paper]슬라이드 옆에 노트 칸을 인쇄 — handoutWithNotes
\usepackage{handoutWithNotes}를 더하면 pgfpages에 “노트 딸린” 레이아웃이 추가됩니다. TeX Live 2024에 들어 있는 것은 v1.3(2022/02/22, Marei Peischl과 Guido Diepen이 관리)이고, .sty가 선언하는 레이아웃은 1 on 1 with notes, 2 on 1 with notes, 3 on 1 with notes, 4 on 1 with notes와 앞의 둘의 landscape 판을 합쳐 여섯 가지입니다. 실측에서 \pgfpagesuselayout{3 on 1 with notes}[a4paper]와 \setbeameroption{show notes}를 함께 쓴 세 프레임 덱이 A4 세로 2쪽에 들어갔습니다. show notes를 빠뜨리는 것이 가장 흔한 사고이며, 그러면 노트 칸이 빈 채로 나옵니다. 다만 강의 자료라면 꼭 나쁜 일도 아닙니다. 빈 칸이 수강생의 필기란이 되므로, \note를 하나도 쓰지 않았어도 이 레이아웃은 쓸모가 있습니다.
\documentclass[handout]{beamer}
\usepackage{pgfpages}
\usepackage{handoutWithNotes}
\pgfpagesuselayout{3 on 1 with notes}[a4paper,border shrink=5mm]
\setbeameroption{show notes} % without this the note column is empty같은 원고를 문서로 배포하기 — beamerarticle
배포할 것이 사실은 “슬라이드의 사본”이 아니라 “읽을 수 있는 글”이어야 할 때가 있습니다. 그래서 beamer는 beamerarticle을 마련해 두었습니다. \documentclass{article} 파일에 \usepackage{beamerarticle}을 더하면 frame 환경이 보통의 본문으로 흐릅니다. 실측에서 두 프레임짜리 원고를 article 쪽에서 조판하니, A4 한 쪽에 두 프레임의 내용이 이어진 산문으로 나왔습니다. \pause는 무시되고 슬라이드 테두리도 테마도 붙지 않습니다. beamer의 README가 내세우는 “강의 노트에서 슬라이드를, 슬라이드에서 강의 노트를 만들 수 있다”가 바로 이 구조이며, beamer 자신도 같은 원고로 만든 beamerexample-lecture-beamer-version.pdf와 beamerexample-lecture-print-version.pdf 두 벌을 함께 담고 있습니다. 한쪽에만 나오게 하고 싶은 글은 \mode<presentation>{...}이나 \mode<article>{...}로 감쌉니다.
% talk.tex holds only the frames; two wrappers build two documents
% slides.tex
\documentclass[aspectratio=169]{beamer}
\input{talk}
% notes.tex
\documentclass[a4paper,11pt]{article}
\usepackage{beamerarticle}
\input{talk}
% inside talk.tex, when the two versions must differ
\mode<presentation>{Three points.}
\mode<article>{The argument rests on three points, each of which is developed below.}소스를 고치지 않고 여러 벌 뽑기 — \PassOptionsToClass와 -jobname
\documentclass 줄을 고쳐 가며 세 번 컴파일하는 운용은, 언젠가는 반드시 “발표 5분 전에 handout 판을 비추는” 사고를 만듭니다. 명령줄에서 옵션을 넘겨 버리면 소스는 한 글자도 바뀌지 않습니다. pdflatex -jobname=slides-handout "\PassOptionsToClass{handout}{beamer}\input{slides.tex}". 실측에서 같은 slides.tex가 보통은 3쪽, 이 한 줄로는 2쪽짜리 slides-handout.pdf를 내놓았습니다(둘 다 453.543 × 255.118 pt). -jobname이 핵심이며, 이것이 없으면 두 빌드가 같은 .aux와 .nav를 놓고 다투어 프레임 총수와 목차가 뒤섞입니다. 노트도 같은 요령입니다. beamer에는 클래스 옵션 notes가 있고, beamer.cls가 받는 값은 hide, show, only, onlyslideswithnotes 네 가지입니다. 그래서 \setbeameroption{show only slides with notes}를 \documentclass[notes=onlyslideswithnotes]{beamer}라는 한 단어로 쓸 수 있습니다(이 표기에서는 빈칸이 사라진다는 점에 주의).
# the talk itself
pdflatex -jobname=slides slides.tex
# the handout, from the identical unedited source
pdflatex -jobname=slides-handout \
"\PassOptionsToClass{handout}{beamer}\input{slides.tex}"
# your own script: the note pages only
pdflatex -jobname=slides-notes \
"\PassOptionsToClass{notes=only}{beamer}\input{slides.tex}"
# remember: every one of these needs two runs for .nav and .toc진짜로 종이에 찍을 때 — 용지, 토너, 확인
인쇄하기 전에 테마의 배경색을 확인하세요. beamer의 색 테마 가운데는 배경이 짙은 것이 있어서, 예컨대 albatross는 beamercolorthemealbatross.sty에서 \setbeamercolor*{normal text}{fg=yellow!50!white,bg=blue!50!black}이라고 선언합니다. 흰 바탕에 검정이 아니라 짙은 남색 바탕에 옅은 노랑입니다. 이것을 40부 찍으면 종이가 휘고 토너가 바닥나며, 게다가 읽기도 어렵습니다. 배포용 빌드에서는 \usecolortheme{default}(그냥 fg=black,bg=white)로 되돌리거나 \mode<handout>{\usecolortheme{default}}처럼 모드로 갈아 끼우는 것이 실무적입니다. 배경이 bg=black!40, 곧 40 % 회색인 beetle 같은 테마도 마찬가지입니다. 용지 쪽에서는 border shrink를 5 mm쯤 두면 제본 여백과 복사기가 잘라 내는 몫을 함께 흡수합니다. 그리고 인쇄 버튼을 누르기 전에 pdfinfo로 파일을 확인하세요. 가장 흔한 실패는 A4인 줄 알았던 것이 여전히 128 × 96 mm였다는 발견입니다.
- 발표용 — 오버레이 그대로,
\documentclass[aspectratio=169]{beamer}. 현장에서 비추는 한 벌. - 종이 배포용 —
\documentclass[handout]{beamer}에pgfpages의4 on 1.\only를 쓴 곳에는handout:지정을 빠뜨리지 마세요. - 본인용 원고 —
\setbeameroption{show only notes}. 노트만 인쇄해 연단에 둡니다. - 청중용 필기 자료 —
handoutWithNotes의3 on 1 with notes.show notes를 빠뜨리면 빈 칸으로 나오는데, 그것도 쓸모가 있습니다. - 정말로 읽을 자료 —
\documentclass{article}+beamerarticle. 배포물이 슬라이드가 아니라 글이어야 할 때. - 공통 주의 — 이 빌드들은
.aux와.nav를 공유하면 안 됩니다. 출력마다 별도 디렉터리나-jobname으로 잡 이름을 나누세요.