6
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?

ElixirAdvent Calendar 2024

Day 18

【TIPS】Kino.Text で等幅フォント(文字が同じ幅になるフォント)を使う

Last updated at Posted at 2024-12-08

はじめに

Advent of Code のパズルを解いているとき、よく出てくるのが以下のような文字列による地図です

......
.#..#.
..XX..
.#..#.
......

Elixir でこれを普通に文字列として読み込んで Livebook に表示すると、以下のようになります

"......\n.#..#.\n..XX..\n.#..#.\n......\n"

これでは人間が地図として認識するのが難しいです

どうにかできないものでしょうか

使用例のノートブックはこちら

通常の Kino.Text による表示

Kino.Text を使って文字列を表示すると、以下のような表示になります

スクリーンショット 2024-12-08 23.08.19.png

改行はされましたが、文字の幅が統一されていないため、列が崩れて表示されてしまいます

terminal: true による等幅フォント表示

Kino.Text の第 2 引数に terminal: true を渡すと、以下のように表示されます

スクリーンショット 2024-12-08 23.12.09.png

ブラウザの開発者モードで出力箇所を見てみると、エディター内と同じ、以下のクラスが適用されていることが分かります

.font-editor {
    font-family: JetBrains Mono, Droid Sans Mono, "monospace";
    font-variant-ligatures: none;
    font-size: 14px;
}

この Monomonospace等幅フォント(とうはばフォント)を表しており、これによって文字の幅が揃えられています

痒いところに手が届く機能ですね

まとめ

やはり Livebook は何にでも応えてくれますね

いざとなれば機能を追加すればよいし、、、

6
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
6
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?