反面教師あり学習

*/

(旧)反面教師あり学習

Negative Supervised Learning

Beamerで数式に背景色をつけるアニメーションのコマンド書いた

概要

  • Beamer向けに以下の画像に示してるような,数式に背景をつけるアニメーションを作れるコマンドを書いた
  • LaTeXのコードが\onslideで汚くならず,すっきり書けるようになって便利になった
  • コマンド自体はシンプルだけど,Beamerの\altコマンドやスライド番号を引数に受け取る方法など,調べることが多かったのでメモ
  • Overleafのテンプレ作って公開した (2021/5/9追記)

f:id:eqseqs:20191010023634p:plain

追記 (2021/5/9): Overleafでテンプレート公開した

紹介記事っぽいのも改めて書いた:

www.eqseqs.work

www.overleaf.com

この記事で紹介してるコマンドをOverleafで使うと 「エディタ上で文法エラーが出るけどコンパイルは通る」現象が起こることがある (\highlightcapのキャプション中にさらに数式入れようとしたときとか). 公式に問い合わせたところ,Overleafの文法チェック機能とLaTeXの文法チェックは異なっていて, そんなエキゾチックな書き方には対応してないよ!って言われた.

エラーがうっとうしいときは下記のようにnovalidateで囲えばいいとのこと.

%%begin novalidate
ここに書いたテキストはOverleafの文法チェックから無視される
%%end novalidate

www.overleaf.com

作ったコマンド

以下の\highlight\highlightcapの2種類.

% 数式に背景色をつけるコマンド
\newcommand<>{\highlight}[2][red]{%
    \alt#3{%
        \tikz[baseline=(x.base)]{
            \node[rectangle,rounded corners,fill=#1!10](x){$#2$};
        }%
    }{%
        #2
    }%
}

% 数式に背景色とキャプションをつけるコマンド
\newcommand<>{\highlightcap}[3][red]{%
    \alt#4{%
        \tikz[baseline=(x.base)]{
            \node[rectangle,rounded corners,fill=#1!10](x){$#2$};
            \node[anchor=north, color=#1, align=center] at (x.south) {#3};
        }%
    }{%
        #2
    }%
}

これらのコマンドは,以下のページで紹介されているものをベースに機能を拡張したもの.

www.opt.mist.i.u-tokyo.ac.jp

サンプルスライド

上記コマンドを利用して作ったスライド例が以下. 数式部分のLaTeXコードもスライドに載せてある.

自分も研究室輪講のスライドで実際に使っていて, 一度元の数式見せてから補足とか解釈をアニメーションで足せるのは中々しゃべりやすくて良かった.

コマンドを作るのに使った文法とか

\altコマンド

公式ドキュメントのSection 9.3に説明がある.

http://tug.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf#subsection.9.3

定義は \alt<⟨overlay specification⟩>{⟨default text⟩}{⟨alternative text⟩} のようになっていて, overlay specificationを満たすときは一つ目,それ以外は二つ目の引数のテキストを表示する.

公式ドキュメントにある例:\alt<2>{On Slide 2}{Not on slide 2.}で覚えておくといいと思う.

\newcommand<>

公式ドキュメントではSection 9.6に説明がある.

http://tug.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf#subsection.9.6

簡単に説明すると,通常の\newcommand<>をつけるとoverlay specificationを 扱えるコマンドを新しく定義できる.

overlay specificationは引数の一番後ろに追加されるので, 例えば\newcommand<>{\highlightcap}[3]{ ... }のように定義すると, コマンド内では#4でoverlay specificationを参照することができる.

おわり

LATEX2ε美文書作成入門改訂第7版 [ 奥村晴彦 ]

価格:3,520円
(2019/10/11 09:27時点)
感想(1件)

インストールいらずのLATEX入門 Overleafで手軽に文書作成 [ 坂東慶太 ]

価格:2,640円
(2019/10/11 09:27時点)
感想(0件)