2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JuliaAdvent Calendar 2024

Day 3

DocstringAsImage.jl の紹介

Posted at

本日は

の Series $N=3$ の記事です.

自作パッケージ DocstringAsImage.jl の紹介です.


何ができるの?

  1. iTerm2 のように Sixel Graphics に対応しているターミナルを用意します
  2. 次に Julia の REPL を開いて次のようにします
julia> using DocstringAsImage; @imgdoc exp

この手順を踏むことで次のような結果を得ます.

image.png

ででーん.ヘルプモードで見るような @doc exp で呼び出した結果に比べて読みやすいものができました.@doc exp の結果は下記のとおりです.

image.png

サンプルコードの部分は読みやすいかもしれませんが

Compute the matrix exponential of A, defined by

の直後にある数式は読みやすくなったと思います.理系の大学生,大学院生であれば TeX の記法は慣れているので直接ソースコードを読めるように目が訓練されていると思います.

内部で行っていること

大雑把にいえば下記のようなコマンドを実行しています.Julia の Docstring はマークダウンで書くことができます.それを適切に前処理をし sample.qmd という形でファイルにダンプします.そのあとは Quarto を使って Typst ファイル sample.typ に変換します.最後に sample.typ をコンパイルして結果を png ファイルとして生成します.

# 擬似コードです
$ quarto render sample.qmd --to typst 
$ ls
sample.typ sample.qmd ...
$ quarto typst compile sample.typ sample_{n}.png

生成された png ファイルを読み込んで Sixel.jl パッケージを使って画像を Sixel Graphics フォーマットとしてエンコードします.それを表示することで画像をターミナルに表示することができています.


本当はやりたかったこと

Typst のコンパイルで得られた PDF を作成しそれを読み込むアプローチを考えていました.PDF を画像として表示する,しかもページャー付きの便利な Rust ライブラリがあります.

最初はこれを使っていましたが,BinaryBuilder でビルドができなかったので諦めました.

DocstringAsImage.jl を公式パッケージにするにあたって tdf_jll を作らないと利便性が損なわれるからです.幸い,Quarto は quarto_jll パッケージで利用できるようになっているので Quarto, Quarto と紐づいている Typst を使って色々することができるようになりました.

Sixel Graphics は Windows Terminal でも使えるようになるらしいので多くのプラットフォームで使えるようになるはずです.

使えるようになったらWindowsユーザもぜひ試してください.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?