見出し画像

beamerで\matrixを使う方法

beamerで\matrixを使うと,&のせいでエラーがでる.

まず解決法

以下のどちらかで解決する.
1. tikzのオプションで&を\&などに置き換えること.
2. &を使わずに,直接\pgfmatrixnextcellと書くこと.

TeXソースもどうぞ.

\documentclass[xcolor=svgnames]{beamer}
\usepackage{tikz}
% &の代わりに\&を使うように設定
\tikzstyle{every picture}+=[ampersand replacement=\&]
\begin{document}
   \begin{frame}
       \centering

       % &の代わりに\&を使う
       \begin{tikzpicture}
          \matrix {
              \node {a}; \& \node {b}; \\
              \node {c}; \& \node {d}; \\
          };
       \end{tikzpicture}

       % \pgfmatrixnextcell をそのまま書いてもいい
       \begin{tikzpicture}
          \matrix {
              \node {e}; \pgfmatrixnextcell \node {f}; \\
              \node {g}; \pgfmatrixnextcell \node {h}; \\
          };
       \end{tikzpicture}

      % &を使うとエラー
      % \begin{tikzpicture}
      %    \matrix {
      %        \node {a}; & \node {b}; \\
      %        \node {c}; & \node {d}; \\
      %    };
      % \end{tikzpicture}

   \end{frame}
\end{document}

なんでこれで解決するの?

そもそも\matrixで使われるのは\pgfmatrixnextcellであり,これが文字「&」に対応付けられている.tikzがこの二つの対応付けをしているが,beamerではこの対応付けがうまくいかないので,\pgfmatrixnextcellを直接打つか,\pgfmatrixnextcellに&以外の文字を対応させると解決する.

画像1

pgfマニュアルのp.321で説明されています.

お役に立ったらスキしてください. サポートは投稿を続けるモチベーションになります. ありがとうございます.