LaTeXのBeamerでスライドに吹き出しを入れる方法。TikZのcallout
を使って吹き出しを作る。
コード全体はGistに上げたものを参照のこと。
定義
プリアンブルに以下を書いておく。
\usepackage{tikz}
\usetikzlibrary{shapes.callouts,tikzmark,calc}
% Usage: \COLabel{name#1}{text#2}
% e.g.: \COLabel{psi1}{$\psi_1$}
\newcommand{\COLabel}[2]{%
\tikz[%
remember picture,%
baseline=(#1.base),%
every node/.style={inner sep=0,outer sep=0}%
]{%
\node (#1){#2};%
}}
% Usage: \CO<page#1>{target name#2}{++(x,y)#3}[opt#4]{text#5}
% e.g.: \CO<2>{psi1}{++(-4,1.5)}[text width=3cm]{hogehoge fugafuga piyopiyo}
\NewDocumentCommand\CO{d<> m m O{} m}{%
\begin{tikzpicture}[remember picture, overlay]
\IfValueTF{#1}{\path<#1>}{\path} (#2.center) #3 node[%
anchor=center,%
rectangle callout,%
fill=red!50,%
callout absolute pointer={(#2.mid)},%
font=\bfseries\footnotesize,
rounded corners,
#4
]{#5};
\end{tikzpicture}}
使う
吹き出しの先にしたいところに\COLabel
で名前をつけておいて、実際の吹き出しは\CO
を使って作る。引数には吹き出しを出したい位置を書く。
\begin{frame}\frametitle{}
\begin{center}
\COLabel{hogel}{}\COLabel{hoge}{ほげほげ}\COLabel{hoger}{}
\end{center}
\CO{hogel}{++(-1,-1)}{left}
\CO{hoge}{++(0,-1)}{middle}
\CO{hoger}{++(1,-1)}{right}
\end{frame}