2024年8月13日

Typstでスライド

Typstでスライドを作るためのパッケージは検索してみると五つ出てくる.あれ,この前調べたときは三つだったのが増えている.なお,一つはスライド用というよりは矢印を引くパッケージみたいなので直接は関係なさそう.

  • polylux:多分一番歴史が長そう.ちなみにpolyluxというのは東ドイツでよく使われているOHPのブランド名だそうだ.なお,ドイツではプロジェクターを「beamer」と呼ぶらしい.なんだかこれを使わないとならない気がしてきたぞ.
  • touyingはpolyluxのフォーク的なものなのかな? 別にpolyluxでよさそう.
  • slydstは名前的によさそうなんだけど,画面の一部だけ後から表示するとか(beamerでの\pause)の機能がなさそう.
  • minideck:2024年7月1日releaseと最も新しい.まだ触っていませんけどぱっと見良さそう?

というわけでpolyluxを使ってみましょう.

準備

ともかく読み込む.日本語用の設定もしておきましょう.

#import "@preview/polylux:0.3.1": *
// 日本語設定.スライドなのでゴシックにしてみました.
#set text(
  lang:"ja",
  font: ("New Computer Modern", "Yu Gothic"),
)

ともかく使う

polyluxでスライドを作るには,polyluxの機能を使い自力で書くか,用意されているテーマを使うかの二通りの方法がある.(LaTeXのbeamerと違い)テーマを使うかどうかで中身の書き方も少し変わってくる.

まずはそのまま使ってみましょう.

// 紙サイズの設定.これで16:9となる.
//#set page(paper: "presentation-16-9")
// こちらは4:3.
// #set page(paper: "presentation-4-3")
// 直接指定してもよい
#set page(width: 30cm, height: 20cm)
#set text(size: 25pt)

// #polylux-slideの引数に各スライドの中身を書いていく
// 書き方は通常のTypstの書き方とあまり変わらない
#polylux-slide[
  = 初めに

  polyluxを使って書いています.

  - 箇条書き
  - 通常の使い方とあまり変わらない
]

中身の書き方は普通に書く時とあまり変わりません.

オーバーレイ

スライドを順番に出していくあれです.一番簡単なのはpause.

#polylux-slide[
  一番シンプルなpause.

  #pause
  この部分はこのスライドの二枚目以降に出てくる.

  #pause
  この部分は三枚目以降
]

もうちょっと細かくしたいときは次のように.

#polylux-slide[
  もう少し細かい制御はonlyとuncoverでできる.

  onlyを使うと指定した枚数目だけ表示される.#only(2)[この部分は二枚目にだけ表示される.]それ以外ではなかったことにされるので,この部分の文章は二枚目以外では前に詰められる.

  uncoverも同様.#uncover(2)[この部分は二枚目にだけ表示される.]onlyと違い,uncoverはそれ以外では見えないだけなので,この前には二枚目以外では空白が空く.#uncover(2, mode: "transparent")[この部分は二枚目以外では薄い灰色になる.]

  何枚目かの指定はいろいろある.
  
  - #uncover((3,6))[3,6枚目のみに表示される.]
  - #uncover("1-2,4,6-8")[1,2,4,6,7,8枚目のみに表示される.]
]

ほかにも#uncover(beginning: 2, until: 4)[***]とかもある.

文章の一部を変更していきたいときにはalternativesが便利.

#polylux-slide[ 
  $A B C$が#alternatives[直角三角形][三角形]ならば#alternatives[$c^(2) =a^2 + b^2$][$c^(2) =a^2 + b^2 - 2a b cos C$]である.

  // 中央寄せ
   $A B C$が#alternatives(position: center)[直角三角形][三角形]ならば#alternatives(position: center)[$c^(2) =a^2 + b^2$][$c^(2) =a^2 + b^2 - 2a b cos C$]である.

  // もっと細かく指定
   $A B C$が#alternatives-match(position: center, ("1,3": [直角三角形],"2": [三角形]))ならば……

  // 三枚目以降も最後のものを表示する.
  $A B C$が#alternatives(repeat-last: true)[直角三角形][三角形]ならば#alternatives(repeat-last: true)[$c^(2) =a^2 + b^2$][$c^(2) =a^2 + b^2 - 2a b cos C$]である.
]

#uncoverとの違いは,それ以外の部分に影響を与えないこと.複数の者の幅の最大値を計算してその分を確保してくれる.

ハンドアウト

スライドを印刷して配るときには邪魔になるのはいつも通り.

#enable-handout-mode(true)

これをファイルの頭の方に入れておけば#uncoverがなかったことになる.なお,#only#alternativesは影響を受けない.

テーマ

テーマはimportで読み込む.今のところ,simple,clearn,metropolis,university,bipartiteがデフォルトで用意されている.simpleを使う場合は次のようにして読み込む.

#import themes.simple: *

テーマの設定は#showを使ってやる.

#show: simple-theme.with(
  aspect-ratio: "4-3", // 画面サイズを4:3に
  footer: [my slide], // すべてのスライドの下に「my slide」と表示
  background: blue, // 背景色を青
  foreground: red, // 文字色を赤(ひどい配色……)
)

設定できる項目はテーマによって異なる.aspect-ratioはsimpleテーマの場合16-9か4-3しか設定できないみたい.

// タイトル用のページ
#title-slide[
  = シンプルなスライド

  あべのり
]

// 通常のスライド
#slide[
  = シンプルなスライド

  これはシンプルなスライドです.

  #pause

  pauseとかも利用可能.
]

// backgroundも指定可能.指定しなくてもよい.
#focus-slide(foreground: red)[
  注目してほしいスライド
]

#title-slideとか#slideとか#focus-slideはbipartiteテーマ以外では大体同様に使える.それ以外のコマンドが使えたりする.

bipartiteテーマは左右に別のものを出せるテーマ.

#import themes.bipartite: *


// タイトル用のページ
#title-slide(
  title: [タイトル],
  subtitle: [サブタイトル],
  author: [著者],
  date: [4月1日]
)

// 通常のスライド
#west-slide(title: [ページのタイトル])[
  左にタイトル,右に中身.
]

#west-slide(title: [ページのタイトル])[
  右にタイトル,左に中身.
]

#split-slide[
  真ん中で別れる.
  ここは左部分(右寄せになる)
][
  右部分(左寄せ)
]

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です