$30 off During Our Annual Pro Sale. View Details »

SATySFiを使用したMarkdownからLaTeXへのファイル変換について

puripuri2100
November 21, 2020

 SATySFiを使用したMarkdownからLaTeXへのファイル変換について

Online.tex 2020で発表したスライドです

puripuri2100

November 21, 2020
Tweet

More Decks by puripuri2100

Other Decks in Technology

Transcript

  1. SAT
    YSFIを使用した Markdown から L
    A
    TEX へのファイ
    ル変換について
    Online.tex 2020
    金子尚樹
    2020/11/21

    View Slide

  2. 自己紹介
    所属 開成学園開成高等学校
    学年 高校二年
    普段やってること SAT
    YSFIのパッケージ作成
    twitter @puripuri2100
    e-mail [email protected]
    1

    View Slide

  3. 今日話すこと
    • SAT
    YSFIの簡単な紹介
    • 今回、何をしたのか・動機
    • 実装方法
    • 使用について
    • 今後について
    2

    View Slide

  4. SAT
    YSFIとは
    エラーがわかりやすく使いやすい組版言語(を目指している)新
    しいマークアップ言語とその処理系
    3

    View Slide

  5. SAT
    YSFIとは
    エラーがわかりやすく使いやすい組版言語(を目指している)新
    しいマークアップ言語とその処理系
    • 欧文組版に必要なハイフネーション
    • 日本語組版にも対応
    • フォントを簡単に変更可能
    • 数式組版可能
    • グラフィック処理がある程度できる
    • 表現力の高いプログラミング層
    • エラーがわかりやすい(体感)
    3

    View Slide

  6. SAT
    YSFIとは
    エラーがわかりやすく使いやすい組版言語(を目指している)新
    しいマークアップ言語とその処理系
    • 欧文組版に必要なハイフネーション
    • 日本語組版にも対応
    • フォントを簡単に変更可能
    • 数式組版可能
    • グラフィック処理がある程度できる
    • 表現力の高いプログラミング層
    • エラーがわかりやすい(体感)
    • 専用の構文を書いた saty ファイルだけでなく、Markdown
    ファイルを処理することもできる
    3

    View Slide

  7. SAT
    YSFIとは
    エラーがわかりやすく使いやすい組版言語(を目指している)新
    しいマークアップ言語とその処理系
    • 欧文組版に必要なハイフネーション
    • 日本語組版にも対応
    • フォントを簡単に変更可能
    • 数式組版可能
    • グラフィック処理がある程度できる
    • 表現力の高いプログラミング層
    • エラーがわかりやすい(体感)
    • 専用の構文を書いた saty ファイルだけでなく、Markdown
    ファイルを処理することもできる
    • PDF だけではなくテキストファイルを出力することもできる
    3

    View Slide

  8. 今回したこと
    Markdwon ファイルを与えたらそれに対応する L
    A
    TEX ファイルを出
    力する SAT
    YSFIのライブラリを作りました
    https://github.com/puripuri2100/SATySFi-md2latex にあります
    4

    View Slide

  9. 作った動機
    既にテキストモードを使って saty ファイルから L
    A
    TEX ファイルを生
    成するライブラリを作っていたので、Markdown 入力と悪魔合体
    させてみたかったから
    5

    View Slide

  10. 何が嬉しいのか
    • Markdwon ファイルの中身を評価して型検査器から通常の
    SAT
    YSFIの処理に合流するので、ある程度安全性とエラーのわ
    かりやすさが担保されている
    • SAT
    YSFIのわかりやすい(個人の感想です)文法でパッケージ
    を書くことさえできれば、同じ Markdwon ファイルからどの
    ようなファイル形式でも出力することができる
    • 将来多種多様な形式のファイルを受け付けられるようになっ
    た時に資産を生かせる
    6

    View Slide

  11. 何が嬉しいのか
    • Markdwon ファイルの中身を評価して型検査器から通常の
    SAT
    YSFIの処理に合流するので、ある程度安全性とエラーのわ
    かりやすさが担保されている
    • SAT
    YSFIのわかりやすい(個人の感想です)文法でパッケージ
    を書くことさえできれば、同じ Markdwon ファイルからどの
    ようなファイル形式でも出力することができる
    • 将来多種多様な形式のファイルを受け付けられるようになっ
    た時に資産を生かせる
    • SAT
    YSFIの文字列操作プリミティブを用いてある程度安全に黒
    魔術を使うことができる
    6

    View Slide

  12. 実装方法
    md ファイルのタグに対応する SAT
    YSFIコマンドを記録した
    md2latex.satysfi-mdというファイルと、実際に出力する L
    A
    TEX ファ
    イルを作るためのクラスファイルである md2latex.satyh-latexファ
    イルを作成しました。
    7

    View Slide

  13. 実装方法
    md ファイルのタグに対応する SAT
    YSFIコマンドを記録した
    md2latex.satysfi-mdというファイルと、実際に出力する L
    A
    TEX ファ
    イルを作るためのクラスファイルである md2latex.satyh-latexファ
    イルを作成しました。
    code 系やリンク参照系は既存の code.satyh-latexや
    url.satyh-latexに投げ、他のものは頑張ってクラスファイル内で
    実装しました
    7

    View Slide

  14. 起動方法
    commonmark に則って書いて
    satysfi --markdown "md2latex/md2latex" --text-mode "tex,latex" <
    file name>.md -o .tex
    するだけ!
    8

    View Slide

  15. デモ
    9

    View Slide

  16. 今後について
    • スライド用クラスファイルを作ってみたい
    • 現状対応できている markdown 記法が pandoc 等と比べて少
    ない点を改善できるなら改善したい
    10

    View Slide