beamer で微調整するのに役に立った小ネタ

beamer で某講演会のスライドを作成したが、細かい調整をするのに苦労した。

  • 単語の途中で改行されるのを調整したい

mboxで枠無しの箱が用意されるのでそこでは改行されない。

\mbox{hogehoge}
  • itemizeenumerate環境でmboxを使うと、下にずれてしまう

makeboxを使って適当な幅(ここでは\linewidth幅)を作っておくとずれないようだ。

\begin{itemize}
  \item \mbox{ものすごく長い文字列をいれると改行はされないが、なぜか下の段から始まる}
  \item \makebox[\linewidth][l]{こうすると想定した行に文字列が収まる}
\end{itemize}
  • \onslideなど使ったときに、\labelがうまく参照されない

\onslide<2>とか順番指定をしたときには\label<2>とこちらも同様に順番指定をしないとリンクが効かない。

  • 表のサイズをページに収まるようにしたいのにコンパイルでいちいちoverfillとか警告が出てそのつどエンターキーを押さないと進まないのがイライラする

以下のようにしてscaleboxの拡大倍率をいじることでページ内に収まるように微調整する。なんとなく左側が空いているような気がするので\setlength{\leftskip}{-10pt} をすると指定した分だけ移動させることができるが、その表以降のものもずれてしまうので表が終わったら元に戻したほうがいいのかもしれない。

\scalebox{0.95}{\begin{varwidth}{\textwidth}
  \begin{table}
    \begin{tabular}{llc}
    \end{tabular}
  \end{table}
 \end{varwidth}
}
  • リンクに飛ぶボタンを作りたいが何回も使用するので関数化したい

\newcommandで関数を作成でき、取る引数の数を設定する。リンクを参照して「行き先の名前」のボタンをページ左隅に配置するボタンを作る関数の例。

\usepackage[absolute,overlay]{textpos}
\newcommand{\linkcommandd}[3]{
  \begin{textblock*}{\linewidth}(#3,264pt)
    {\textcolor{gray}{\hyperlink{#1}{\beamergotobutton{#2}}}}
  \end{textblock*}
}
  • ページのサイズを知りたい

layoutで調べることができるがなぜかこれページの下のほうに配置されて見切れてしまうので\vspaceで無理やり上にあげる。

\usepackage{layout}
\begin{frame}[t]\vspace{20pt}\layout\end{frame}
  • テキストの背景に色を付けたい
\colorbox{背景の色}{テキスト}
  • テキストの背景の枠が大きいので微調整したい

例えば()内に背景色付きのテキストを収めようとすると、枠が上下にでかすぎて()からはみ出て見栄えが悪い。テキストそのもののサイズも調整して

(\setlength{\fboxsep}{1pt}\raisebox{0.5mm}{\textcolor{テキストの色}{\footnotesize \colorbox{背景の色}{テキスト}}}

\footnotesizeのところは直接指定も可能。

(\setlength{\fboxsep}{1pt}\raisebox{0.5mm}{\textcolor{テキストの色}{\fontsize{10pt}{0cm}{\colorbox{背景の色}{テキスト}}}}
  • PDF の参考文献など該当箇所をクリックしたら引用文献のweb にすぐ飛べるようにしたい
\usepackage{hyperref}
\usepackage{url}
\href{リンク先url}{\tiny 表示テキスト}
  • 引用論文のページ範囲の - はendash

\textendashもしくは--

  • 数式で下付き文を付けたら高さが揃わない

\vphantom で基準にしたい高さの枠を作る。つまり、もっとも大きくなるであろう数式オブジェクト(\Sigma\Pi)などを透明で作成し、それに対して下付き文を\underbraceでつける。

\begin{equation}
      {\scriptsize
    \underbrace{
       \vphantom{\displaystyle\sum_{i=1}^q} y_t-y_{t-d}
     }_{\mbox{\tiny integrated (I)}}
      = c + \epsilon_t + 
    \underbrace{
      \vphantom{\displaystyle\sum_{i=1}^q} \displaystyle\sum_{i=1}^p\phi_iy_{y-i}
    }_{\mbox{\tiny{autoregression (AR)}}}
    +
    \underbrace{
      \vphantom{\displaystyle\sum_{i=1}^q} \displaystyle\sum_{i=1}^q\theta_i\epsilon_{t-i}
    }_{\mbox{\tiny{moving average (MA)}}}
      }
    \end{equation}

\vphantomで透明な数式オブジェクトの枠を作っている場合
\begin{equation}
    \underbrace{
        y_t-y_{t-d}
     }_{\textrm{integrated (I)}}
      = c + \epsilon_t + 
    \underbrace{
       \displaystyle\sum_{i=1}^p\phi_iy_{y-i}
    }_{\textrm{autoregression (AR)}}
    +
    \underbrace{
       \displaystyle\sum_{i=1}^q\theta_i\epsilon_{t-i}
    }_{\textrm{moving average (MA)}}
    \end{equation}

ない場合
\begin{equation}
    \underbrace{
       \vphantom{\displaystyle\sum_{i=1}^q} y_t-y_{t-d}
     }_{\textrm{integrated (I)}}
      = c + \epsilon_t + 
    \underbrace{
      \vphantom{\displaystyle\sum_{i=1}^q} \displaystyle\sum_{i=1}^p\phi_iy_{y-i}
    }_{\textrm{autoregression (AR)}}
    +
    \underbrace{
      \vphantom{\displaystyle\sum_{i=1}^q} \displaystyle\sum_{i=1}^q\theta_i\epsilon_{t-i}
    }_{\textrm{moving average (MA)}}
    \end{equation}

  • 色付きテキストに黒の下線を引きたい

テキストに色がついていると下線もその色に設定されてしまうので下線に設定したい色で全体を色付けしたのち、テキストだけ色を変える。

\textcolor{下線の色}{\underline{\textcolor{テキストの色}{テキスト}}}

LaTeXでアンダーラインだけ色をつける方法 - 8ttyan’s blog

  • 単位について
\usepackage{siunitx}
$\si{\degreeCelsius}$
$\si{\mmHg}$

LaTeX: 数値・単位の書き方 (siunitx)