https://github.com/kyawaway/kyasualの紹介.
モチベーション
世に出回ってるbeamerのテンプレートは,どれもなんかダサい,,,というかぱっと見でbeamerだなとわかる,独特の体臭がする.この原因を,
- 色合い
- なんか青い.
- 寒色.
- フォント
- 細い.
- ちっちゃい.
- どれも大体デフォルトのフォント.
だと勝手に決めつけて,beamerっぽくないbeamerのテーマを目指した.
もう少し詳しくコンセプトを定めると,数学のゼミにも,エンジニア向けのLTにも使えるような,フォーマルさとカジュアルさを両立したデザインを目指した.用途に合わせてスライドテーマを変えるのは面倒なので,これさえ使っとけばおkみたいなものが欲しかった.
そのために,色合いはある程度カジュアルにしつつ,フォントは優等生的なもの(Noto Sans系統の,源真ゴシック)を選択した.使用感は通常のbeamerとほとんど同じだが,一部便利なアイコンやテンプレートを自前で定義した.
また.本テーマはMertopolisやexpress-beamerを大いに参考にした.
ディレクトリ構成
.
├── Makefile
├── latexmkrc
│
├── slide.tex
├── slide.pdf
│
├── slide
│
├── font
│ ├── GenShinGothic
│ └── TimesItalic
├── sty
│ ├── genshin.sty
│ ├── source.sty
│ └── style.sty
└── theme
├── beamercolorthemekyasual.sty
├── beamerfontthemekyasual.sty
├── beamerinnerthemekyasual.sty
├── beamerouterthemekyasual.sty
└── beamerthemekyasual.sty
beamer関連の設定はbeamerディレクトリに,その他の各パッケージの管理はstyディレクトに置いている.また,フォントは使用するfontディレクトリに置いている.
いい感じに書くために
beamerだから基本何も考えなくても壊滅的な感じにはならないけど,それでも楽にいい感じにするためにいくつか道具を定義した.
textblock
block環境で勝手に発生する段組みを使えば,いい感じにcontents>detailみたいな形式のまとまりが作れると考えた.が,blockは定義の記述とかに普通に使いたいから,背景色は変わらずに,勝手に発生する段組だけを拝借する,textblockなる環境を定義した.
\begin{textblock}{textblock title.}
textblock body. textblock body.
\end{textblock}
で,
と表示される.後述するように,itemizeとの組み合わせでよりいい感じになる.
itemize
ん?itemizeは元々あるだろ,と思うかもしれないが,itemizeもアイコン次第でより便利な道具になる.
okitem,negitem
\begin{itemize}
\okitem{ok}
\ngitem{ng}
\end{itemize}
で,
使用例:
HogeHoge method :
\begin{columns}
\begin{column}{0.4\textwidth}
\begin{itemize}
\okitem{ok point 1 !}
\okitem{ok point 2 !}
\okitem{ok point 3 !}
\end{itemize}
\end{column}
\begin{column}{0.4\textwidth}
\begin{itemize}
\ngitem{neg point 1 ...}
\ngitem{neg point 2 ...}
\ngitem{neg point 3 ...}
\end{itemize}
\end{column}
\end{columns}
thusitem
\begin{itemize}
\thusitem{thus}
\end{itemize}
で,
のような表示になる.
こんな感じで,itemize環境で勝手に発生する段組を使って,小見出しや小まとめが記述できる.textblock,itemizeを組み合わせると,
\begin{textblock}{Build}
\begin{enumerate}
\item{\lstinline|mv sampleslide.tex (your slide title)|}
\item{make}
\thusitem{(your slide title).pdf should be generated.}
\end{enumerate}
\end{textblock}
のように組版できる.
その他
細かい部分はサンプルスライドを参照されたい.
拡張,改造方法
フォント
人間だれしも好きなフォントくらいあると思うから,気軽に変えて欲しい.
デフォルトでは,
-
日本語フォント:源真ゴシック
-
英字フォント:源信ゴシック
-
イタリックフォント:Times Itallic
-
数式フォント:Computer Modern(latexデフォルト)
を選択した.どれも思想に沿って優等生的だと思う.余談だが,数式フォントなんかは変えたいなあと思ってる.(issueを立ててる)なんかいい感じのフォントがあれば教えて欲しい.
xetexを使うよう指定しているので,(uplatexとかよりは)フォントまわりは楽になっている.
設定方法
追加したいフォントをfontディレクトリに置いた上で,sty/genshin.styを参考に,mainfont,sansfont,monofontなどの対応するクラスにBold,Italicに設定したいフォントも含めてPath(./font/(追加したいフォント))を記述する.
記述例:
等幅フォントにGenShinGothic-Monospace-Regular.ttf(BoldにGenShinGothic-Monospace-Bold.ttf)を追加する場合,
\setmonofont[Scale = 1,
Path = ./font/GenShinGothic/,
BoldFont = GenShinGothic-Monospace-Bold.ttf ,
] {GenShinGothic-Monospace-Regular.ttf}
最後に,追加したstyファイルをstyle.sty上でインポートする.
文字サイズ,行間
フォントに関する設定は,beamer/beamerfontthemekyasual に記述する.
タイトルページ
一番調整する機会が多い場所だと思う.実際私も発表のたびに微調整してる.tikzで描いた長方形を配置している.
設定は,beamer/beamerouterthemekyasual に記述している.
文字
文字の配置を変えたい場合は,タイトルの構成要素は
6 \begin{beamercolorbox}[wd=\paperwidth, ht=\paperheight, sep = 0pt, dp = 0pt, #1]{%
7 title,
8 subtitle,
9 date,
10 institute,
11 author,
12 titlegraphic
13 }
で読み込んでいて,そのままの名前で呼び出せる.配置は,itikzで文字を配置する時のように\node[]~
で配置する.例えば,タイトル文字の座標を変えたいときは,
22 \node[above right] at (1.15cm, 0.5em + 0.45\paperheight){%
23 \begin{minipage}{\paperwidth-2cm}
24 {\usebeamerfont{title}\usebeamercolor[fg]{title}\inserttitle\par}
25 \end{minipage}
の22行目のat以降の数値を調整する.
図形
先に述べた通り,背景の描画はtikzで長方形を書いているだけである.
例えば,タイトル文字の調整に伴い,タイトル部分の背景の黒四角の調整を行いたい場合は,
17 \fill [
18 color = normal_text_color,
19 ] (0, 0.4\paperheight) rectangle(\paperwidth, 1.2\paperheight);
の19行目の数値を調整する.基本的に黒色で埋めている部分は\fill
で埋めているので,対応する文字変数があるrectangle内の\fill
部分の座標を調整すれば良い.
色
基本的に配色は全部カンで決めたので,どんどん自分好みに変えて欲しい.
テーマカラーに関する設定はbeamer/beamercolorthemekyasual に記述する.色自体はrgb形式で気合いで設定している.
主要な色は,
-
background_color
- 背景色.クリーム色の部分.
-
normal_text_color
- 文字色に関する配色.
- ブロックのタイトルの背景色にも利用している.
-
(alerted_/exaxmple_)block_(title_/body_)color
- block環境関連の配色.
- 現状,example blockの配色はコードブロックの配色にも利用してしまっている.(要改良)
変数名は後で整理します.
最後に
使ってね〜