feature image

2025年4月23日 | ブログ記事

Typst でレポートを書こう!

はじめに

こんにちは、24Bの @jupiter_68 です!
初めましての人がほとんどなので一言で自己紹介をすると、普段はアルゴ班をメインに活動しているボドゲ好きです。

共著いただいているのは、25Bの @Suima くんです。(新入生にも関わらず、などに非常に詳しく、積極的に参加してくれた優秀な後輩です)

大学が始まり半月ほどが経過しましたが、皆さんはいかがお過ごしでしょうか。人によっては既に講義でレポートを書かされる経験をしたと思いますが、レポートを書く際に、皆さんはどのようなツールを使用しているでしょうか。
この質問に対して、大多数の人はwordを思い浮かべると思います。人によってはを使っている人とかもいるかもしれません。
(この時点でを書いてみたいという人は、https://trap.jp/post/2509/ で詳しく説明されているので、是非読んでみてください。)

ですが、世の中には、word や よりもレポートを綺麗に、そして素早く書けるツールというのも存在しています。
今回はそんなTypstのお話です。

Typstって何?

そもそも、Typstなんて言葉初めて聞いた...という人は非常に多いと思います。

一言で説明するなら、Typstは学術用途のために 2023年 に新たに生まれた、文書を作るためのツールです。
特徴としては、wordでは書けないような論文形式の文書を、比較的短い文章量で書くことができると言ったものがあります。
(というより、wordは数学の式を正しく表せないので、レポート・論文には非常に不向きです)
実際に、Typstで書かれた文書の例を挙げます。(ちなみに @Suima くんが作ってくれました。本当に感謝です!!!)

Typstの利点, との比較

Typstには、長年使われてきたを差し置いて、使うべきと言わせるだけのメリットが大きく2つ存在します。

1つ目は、より直感的・簡潔に書くことができるということです。

「直感的・簡潔に」と言われても、ピンとこないので、同じような内容をTypstとの両方で書いたものを比較してみます。
(@Suimaくんが、作成してくれました! ありがとう!!!)

\documentclass{jlreq}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{latexsym, mathtools}
\usepackage{ascmac}
\usepackage{fancybox}
\usepackage[dvipdfmx]{graphicx,xcolor}
\usepackage{tikz,chemfig}
\usepackage{physics2}
\usepackage{bxtexlogo,cmathbb}
\newcommand{\defiff}{\xLeftrightarrow{\mathrm{def}}}
\begin{document}
\section*{これが\textrm{\LaTeX} ,\, もっとも優秀です.}
\subsection*{Alph\, aka \, Suima}
\section{まえがき}
\LaTeX は数学者D.\, Knuth氏によって作成された文書作成ソフトウェア\TeX に
マクロ\footnote{ユーザーなどが新規に設定した命令のこと}処理系を加えたもので
L.\, Lamport氏によって制作されました.
因みに元々の\TeX はASCII文字しか使えなかったので,\, 日本語に対応しているような拡張は何種類かありますが,\,
特に有名なのは日本アスキーによって開発が開始された\pTeX でしょう.
いささか構文に癖がありますが,\, きれいな組版を得られることが特徴です.
\section{\textrm{\LaTeX} による数式表現}
体$K = (S,\, +,\, \times)$に対して$K$の元$a,\,b,\,c,\,d$を用いて
\begin{equation*}
A =
\begin{pmatrix}
    a & b\\
    c & d
\end{pmatrix}
\end{equation*}
のように表される$A$$K$上の正方二次行列という.
$K$上の正方二次行列全体を$M_2(K)$と書くことがある.\footnote{一般に$n$次正方行列の全体を$M_n(K)$と表す.}ほへぇ.そして,\, $A,B\in M_2(K)$について積$AB$を次のように定める.
$A = 
\begin{pmatrix}
    x_{11} & x_{12}\\
    x_{21} & x_{22}
\end{pmatrix}
,
\begin{pmatrix}
    y_{11} & y_{12}\\
    y_{21} & y_{22}
\end{pmatrix}
$
としたとき

$AB = 
\begin{pmatrix}
    x_{11}y_{11} + x_{12}y_{21} & x_{11}y_{12} + x_{12}y_{22}\\
    x_{21}y_{11} + x_{22}y_{21} & x_{21}y_{12} + x_{22}y_{22}
\end{pmatrix}
$

である.

これは,\, 行列$A,\,B$をベクトルのベクトルと見做すと理解しやすい.

すなわち,\, $A = 
\begin{pmatrix}
    \mathbf{v}\\
    \mathbf{w}
\end{pmatrix}
,\,
B =
\begin{pmatrix}
    \mathbf{x} & \mathbf{y}
\end{pmatrix}
$
と表したときに\footnote{$\mathbf{v},\mathbf{w},\,\mathbf{x},\,\mathbf{y}$$K$上の2次元ベクトル.}
$AB$は次のように理解することができる

$AB =
\begin{pmatrix}
    \mathbf{vx} & \mathbf{vy}\\
    \mathbf{wx} & \mathbf{wy}
\end{pmatrix}
$

とてもいい話.\footnote{但し並べたベクトルは内積とする}\footnote{双対ベクトル空間の内積との自然な射影とかなんとかが裏話としてあるらしい.\, 難しいなぁ}
\end{document}

Typst (再掲)

#set text(font: "Noto Serif")
#heading(level : 1)[これがTypst, もっとも完璧です]
#heading(level : 2)[Alph aka Suima]
Typstは(LaTeXに比べて)非常にシンプルなコードできれいな組版をすることができます.

改行などの性質はLaTeXによく似ていますが, コマンドなどは非常に簡単です.

実際のところ, MarkDownLaTeXのあいのこのような記法, といった印象です.

#heading(level : 1)[Typstによる数式表現]$K = (S,+,times)$に対して$K$の$a,b,c,d$を用いて

$A = mat(a, b;c,d)$

のように表される$A$を$K$上の正方二次行列という.

$K$上の正方二次行列の全体を$M_2(K)$と書くことがある#footnote[一般に, 正方n次行列の全体を$M_n(K)$と表す.]
ほへぇ.

そして, $A, B in M_2(K) $について 積$A B$を次のように定める

$A = mat(x_11,x_12;x_21,x_22),B=mat(y_11,y_12;y_21,y_22)$したとき

$A B = mat(x_11 y_11 + x_12 y_21,x_11 y_12 + x_12 y_22; x_21 y_11 + x_22 y_21,
x_21 y_12 + x_22 y_22)$

である.

これは, 行列$A$,$B$をベクトルのベクトルと見做すと理解しやすい.

すなわち, $A = mat(bb(v);bb(w))$, $B = mat(bb(x),bb(y))$と表したときに#footnote[$bb(v), bb(w), bb(x), bb(y)$は$K$上の2次元ベクトル.]$A B$は次のように理解することができる

$A B = mat(bb(v)bb(x),bb(v)bb(y);bb(w)bb(x),bb(w)bb(y))$と解釈することができる#footnote[ベクトルを並べたときは内積とする.]

とてもいい話.#footnote[双対ベクトル空間の内積との自然な射影とかなんとかが裏話としてあるらしい. 難しいなぁ.]

上記の2つの文書を比較していただけると、まず分量が違います。

の方は、 78行, 2720 Byte
Typstの方は、 35行, 1699 Byte

と言ったように、行数だけなら半分以下に、文字数に関しても 60% 程度で書くことができます。
これは、実装量 = 作業時間に直結するため、時間に余裕を持たない任意の大学生にとって大きなメリットになると思います。
また、には、冗長で覚えにくい複雑なコマンドが数多く存在し、初学者がレポートを書くにあたって大きな障害となる傾向にありますが、 Typstは、の中でも難しいコマンドを簡潔で直感的に理解のしやすいものに変えているため、書くときの精神的コストが少ない傾向にあります。

上記の例だと、

A = 
\begin{pmatrix}
    \mathbf{v}\\
    \mathbf{w}
\end{pmatrix}

Typst

A = mat(x_11,x_12;x_21,x_22)

と言ったような形です。

2つ目は、TeXより簡単に始められる点です。

Typstを始める方法については、この下で詳細に説明をしていますが、Typstは に比べて事前準備が簡単かつ少ないです。
PCの使い方に慣れていない人にとって環境構築という操作は、
「よくわからない呪文を唱えては、なぜかバグらせてしまい、結果として心が折れてしまう」
といった挫折の大きな要因となっていますが、Typstはに比べて、この謎の呪文を唱える量が少なく済むので、準備が簡単な上にもし失敗しても原因を予測しやすいという大きなメリットがあります。

Typst の導入方法

Typstを使うためには、大きく分けて次の2つの方法があります。

  1. オンラインエディタを用いる方法
  2. 自分のPC内に、Typst執筆環境を用意する方法

オンラインエディタを用いる方法

  1. Typstの公式サイトにアクセスします。

  1. Sign Up から、各種情報を入力して、会員登録を行います。

  1. 完了です。新しいページを作成したら、Typstを書くことのできる環境が用意されています。

    チュートリアルも用意されているので、最初は受けておくことをお勧めします。

この方法は、ブラウザさえ用意すれば数分でTypstを書く環境を用意でき、環境構築という難しい作業を行うことがないという点で、PCの扱いなどに自信がない方や、Typstがどんな感じなのか試しに触ってみたい人にお勧めです。
また、このオンラインエディタは、公式が出したものということもあり、Typstに特化した編集(補完など)やプレビュー機能が入っており、特に設定せずともある程度快適に執筆できます。

しかしその一方で、Typstが管理するサーバの状態によっては、動作が重い・うまくアクセスできないケースがある他、使用できるストレージやファイル数に制限があるというデメリットも存在します。

そこでもう一方の方法として、ローカル上にTypstを書くための環境を作るという方法があります。

PC内で環境構築を行う方法

今回、この記事ではVisual Studio Code (これ以降、VSCodeと呼ぶ) 上で、環境構築を行う方法を記載します。

VSCode以外の環境下でTypstを執筆したい方は、申し訳ありませんが、ご自身でお調べください

VSCode, homebrew(Mac), winget(windows) はすでに入ってるものとして、説明を行います。
これらのインストールで躓いているのでしたら、私はオンラインエディタの使用をお勧めします。

MacOS の場合

1. ターミナルから、Typstをインストール

ターミナルに移動し、

$ brew install typst

と打つと、typstのインストールが行われます。

2. VSCodeで、拡張機能「Tinymist Typst」を追加

VSCodeの拡張機能ボタンから検索し、インストール

これで完了です!

WindowsOS の場合

1. Windowsターミナルから、Typstをインストール

ターミナル上で、

winget install --id Typst.Typst

と打つと、typstのインストールが行われます。

2. VSCodeで、拡張機能「Tinymist Typst」を追加

VSCodeの拡張機能ボタンから検索し、インストール

これで完了です!

これで、環境構築は基本的に終わりですが、いくつか追加で伝えておく情報があります。

明朝体
#set text(font: "Noto Serif CJK JP")

ゴシック体
#set text(font: "Noto Sans CJK JP")

終わりに

これまで、長々とTypstについて語ってきた私ですが、実を言うと私がTypstを始めたのは1週間ほど前だったりします。

そして、この記事を見た人の大半は、Typstという存在を今日初めて知ったことでしょう。

そんな知名度の低いTypstですが、性能に関しては、長年に渡り論文執筆にて活躍しているにも勝るほど素晴らしいものを持っているので、

wordでレポートを書くのに悪戦苦闘していたり、TeXの独特な記法・環境構築によってレポートを作るのに苦戦している
そんな人にこそ、このTypstを是非一度試して、そしてこの書き心地の良さを実感してもらいたいと思います。

最後に改めて、ご協力いただいた@Suimaくんに感謝を。

明日の担当は、@w4ma さんです。お楽しみに!

jupiter_68 icon
この記事を書いた人
jupiter_68

Suima icon
この記事を書いた人
Suima

LaTeXぺちぺち

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2025年4月25日
1週間でゲームを作った #Charon
Komichi icon Komichi
2025年4月6日
グラフィック班の活動紹介 2025
madara16877 icon madara16877
2025年4月15日
新歓コンピ楽曲解説!!!
vPhos icon vPhos
2025年4月16日
大岡山キャンパス 節約飯 n選
enari_K icon enari_K
2025年3月31日
NORMAL END「俺たちの戦いはこれからだ!」
otima icon otima
2025年3月24日
なぜ我々はゆずを買ってしまうのか
Naru820 icon Naru820
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記