黒地のMarpテーマ(minorun-dark)でスライドを組むときのデザインバランスと検査。余白の測り方、縦のバランス、配色の決め方、表・コード・補足ボックスの確定デザイン、Marp固有の罠、書き出し後の検査手順。「スライドのバランスを整えて」「色を変えて」「余白が変」「黒地のテーマで作って」と言われたら読む。
The English summary is being prepared. Showing the original description.
登壇スライドに載せる図・構成図・挿絵の作り方。情報量の絞り方、SVGの描き方、文字サイズの下限、挿絵の置き方、書き出し後の検査。「図を作って」「構成図を描いて」「図が見づらい」「挿絵を入れて」と言われたら読む。
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
AIが作る図の失敗は、ほぼすべて「いらない情報を足しすぎ」に集約される。スライドの版面は思っているより狭く、要素を足すより大きくするほうが効く。
図を主役にするか、文字を主役にするか、どちらかに決める。図が主役のスライドは、テキストを見出しと導入の1行までにして、図を版面の幅いっぱいに使う。文字が主役のスライドは、図を挿絵の大きさ(幅100〜330px)に留めて隅へ置く。両方を立てようとすると、図は縮み本文は詰まる。
仕組みの図は1スライドで完成させない。同じ図を3〜5スライドに割り、要素を1つずつ足していく。聞き手の認知負荷が下がり、話し手も説明の順序に迷わない。
箇条書きの項目どうしに階層や分岐があるなら、図にする。「AとBは全員が行い、CとDはどちらかを選ぶ」のような関係は、同じ深さの箇条書きでは対等な選択肢に見える。判定は、矢印か囲みを描きたくなるかどうか。図にすると、書き手自身の理解の誤りも見えやすくなる。箇条書きを図へ移したら、そのスライドの結論の箱は外す。図が主役になり、箱と競合する。
操作手順のスライドは、最初から「左に説明、右に実機のスクリーンショット」の2カラムで組む。文字だけの手順が続くと単調になる。スクリーンショットがまだ撮れていない段階でも、破線の枠と「何を撮るか」の1行を置き、撮影リストを残しておく。撮れたら枠を画像へ差し替える。
足す前に「これが無いと図が読めなくなるか」を問う。「あると親切」で足したものが、結果として図全体を小さくする。
図の中の文字は、書き出したPDFの実寸で16pt以上にする。会場の後ろの席から読める下限である。SVGのソースに font-size: 21px と書いてあっても、Marpで ![center w:820] と縮めて貼れば13ptになる。目安として、viewBoxの幅が1000のSVGを w:1000 で貼るなら、箱のラベルは19〜22pxにする。
文字と箱の縁のあいだは14px以上あける。
収まらないときの直す順番は、文言を短くする、箱を広げる、図の幅を上げる、font-sizeを上げる、の順である。長い文言を大きくしても箱に入らない。文言を削れば、同じ箱で13ptから17ptまで上げられる。
ソースの数字から「この幅なら収まるはず」と計算しない。実際の字幅はソースに書かれておらず、font-size × 文字数 × 0.6 のような見積もりは2割ほど外れる。縮小したページ画像を見て「収まっている」と判断するのも、同じくらい当てにならない。数pxのはみ出しは見えない。
描画してから getBBox() で測る。tools/check-svg-box-fit.mjs がこれを行う。
箱の中にアイコンを入れると、そのぶん文字が押し出される。飾りのアイコンなら外すのが正解で、フォントを1〜2px下げても解決しない。
SVGの <marker> は既定が markerUnits="strokeWidth" なので、矢尻の実寸は markerWidth × stroke-width になる。8 × 4 なら32pxで、42pxの線の両端に付けると軸が消えて矢尻だけが残る。
markerUnits="userSpaceOnUse" で18px前後に固定するstroke にグラデーションを指定すると、線が描画されない。線のbboxの片方の辺が0になり、objectBoundingBox のグラデーションが定義できないためである。線と marker の中は単色にする。斜めの線と曲線には使ってよいgradientUnits="userSpaceOnUse" にして、x1 と x2 に図全体の座標を入れる。既定のままだと箱ごとにグラデーションが完結して、同じ柄が繰り返されるmarker-end:url(#id) のid文字列まで書き換わって矢尻が消えることがある。置換したら矢印の先端まで目で確かめる<text> の fill にグラデーションを指定しない。PDFへ書き出すと文字の形が失われ、文字の外接矩形がそのまま塗られて色の塊になる。縮小画像では気づけないので、拡大して確かめる。図の中の文字は単色にし、グラデーションは面の塗りだけに使うviewBox で切る。viewBox="0 50 1000 320" のように中身の無い帯を落としてから幅を上げる作者は「いらすとや」の素材をよく使う。画像はこのリポジトリに同梱していないので、必要なものを都度サイトから取得する。
https://www.irasutoya.com/search?q=<語> で探す。見た目の語(ロボット)より用途の語(AI 会話)のほうが当たるcurl -sL -o "images/irasutoya-<内容>.png" "<直URL>" で保存する利用条件(点数の上限や禁止される使い方)は、いらすとやの「ご利用について」で各自確かめる。
素材をまとめて探すときは、検索結果のHTMLから一覧を抜くと速い。検索結果の各エントリは bp_thumbnail_resize("<画像URL>","<タイトル>") の形で埋め込まれていて、記事を開かずにタイトルと画像URLが取れる。URLの s72-c を s800 に替えると大きい画像になる。
curl -sL -A "Mozilla/5.0" --get --data-urlencode "q=会話" "https://www.irasutoya.com/search" -o page.html
rg -o 'bp_thumbnail_resize\("[^"]+","[^"]+"\)' page.html | head -8
手元に保存した素材が色落ちしていたり低解像度だったりしたら、着色や拡大でごまかさず、元の記事を探して取り直す。
過去に切り出した素材が、無彩色に変換されたまま残っていることがある。納品前に、デッキが使う画像の彩度を数え、色の無いものは原本を取り直して比べる。原本がもともとモノクロ(書類の山など)なら、そのまま使う。
python3 -W ignore -c "import re,sys;from PIL import Image
md=open(sys.argv[1],encoding='utf-8').read()
for u in sorted(set(re.findall(r'\./images/[^\")\s]+\.png',md))):
im=Image.open(u[2:]).convert('RGBA');im.thumbnail((300,300));px=[q for q in im.getdata() if q[3]>200]
r=sum(1 for a,b,c,d in px if max(a,b,c)-min(a,b,c)>25)/max(len(px),1)
r<0.02 and print(round(r,3),u)" deck.md # デッキのフォルダで実行。色の無い画像だけが出る
絵が本文の名詞そのものを描いているかで決める。「待つ」のスライドに待つ人、「馬車」の比喩に馬車、は通る。雰囲気合わせ(AIっぽい、仕事っぽい、OKっぽい)で選んだ絵は全部外す。合う絵が無いスライドには置かない。
選ぶ前に「このスライドの要点は何か」を1行で言い、その場面が描かれた絵を検索語にする(AIが資料を検品した振り返りなら「虫眼鏡で調べる人」)。手元の素材フォルダから選ぶのは、要点に合う絵がそこにあるときだけにする。OKサインやガッツポーズのように、どのページにも置ける汎用の絵を埋め草にしない。デッキをまたいで同じ絵に偏っていないかも数える。
rg -o --no-filename 'irasutoya-[^")\s/]+\.png' slides/ | sort | uniq -c | sort -rn | head
人物の格を本文の意味に合わせる。「優秀な部下」の喩えに、やんちゃな子どもの絵を置かない。
肯定的な絵(OKサイン、ガッツポーズ、笑顔)は、本文が肯定的な結論のときだけ置く。課題や不満を並べたスライドに置くと、トーンが逆になる。1枚を差し替えるときも、元の絵を選んだ理由ではなく、いまの本文を読み直してから探す。
事例、製品、リポジトリを紹介するスライドは、挿絵ではなく実物のスクリーンショットを使う。
rg -o 'irasutoya-[^."]+' deck.md | sort | uniq -c | sort -rn | head<img> にインラインの style 属性を書いても効かない。Marpのパーサーが属性を落とすためで、PDFを書き出して見るまで気づけない。大きさの違うクラスを用意する。
.ill { position: absolute; right: 118px; bottom: 200px; width: 200px; }
.ill.sm { width: 160px; bottom: 95px; }
.ill.md { width: 180px; bottom: 110px; }
bottom の値はスライドごとに、本文の下端からスライドの下端までの空きを測って決める。
DOMから画像のURLを抜いて直接ダウンロードするのを、最初の手にしない。レスポンシブなサイトは同じ図の縦積み版と横並び版を両方持っていることがあり、URLだけ拾うと縦積み版を掴む。スライドは16:9なので、必要なのはほぼ常に横並び版である。
tools/check-reuse-diff.py で流用元と突き合わせる機械検査と目視は、見ているものが違う。両方やる。
python3 tools/check-figure-text.py deck.pdf # 16pt未満の文字、箱の縁まで14px未満の文字
node tools/check-svg-box-fit.mjs images/*.svg # SVGを描画して文字と枠の余白を実測
機械検査は「存在する要素」を測るので、要素が丸ごと描かれなかった崩れは検出できない。図を触ったページは150dpi以上で1ページずつ焼いて見る。見るのは、文字と図形の重なり、矢印の軸、線の合流部、枠の角、文字が箱からはみ出していないか、である。
1つの図を指摘されたら、同じデッキの全図へ同じ検査を当ててから直す。指摘は1つでも、同じ条件に当てはまる図はたいてい複数ある。
報告には、通した検査の名前をそのまま並べる(check-figure-text.py OK、全ページ目視 OK)。「書き出しました」だけでは、通していない検査が見えなくなる。
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
黒地のMarpテーマ(minorun-dark)でスライドを組むときのデザインバランスと検査。余白の測り方、縦のバランス、配色の決め方、表・コード・補足ボックスの確定デザイン、Marp固有の罠、書き出し後の検査手順。「スライドのバランスを整えて」「色を変えて」「余白が変」「黒地のテーマで作って」と言われたら読む。
The English summary is being prepared. Showing the original description.
人前で話す登壇・講義スライドのストーリーの組み方。つかみ、中扉、段階的な開示、見出しの文体、締め方、尺の見積り。「登壇スライドを作って」「LTの資料」「講義資料の構成を考えて」と言われたら、書き始める前に読む。
The English summary is being prepared. Showing the original description.