これはメモ書きです。
レポートはPDFで提出することが多い。そういうときに使える言語やツール、またはそれらを組み合わせた技術をまとめてみる。
リスト
言語、ツール、それらを束ねた組み合わせを示し、以降は組み合わせの良しあしなどを書く。
言語
- Markdown
- LaTeX
- Typst
ツール
- Pandoc
- Word
- pLaTeX, UpLaTeX, LuaTeX, XeTeX, pdftex
それらの組み合わせ
- LaTeX + Compiler
- Markdown + LaTeX + Pandoc
- Markdown + VScodeの拡張機能: Markdown PDF
- Typst
Markdown + LaTeX + Pandoc
本文はMarkdownで書いて、Pandocの内部でtexファイルに変換、最終的にPDFとして出力する方法。
---
title: いい感じのタイトル
author: Qiita太郎
---
## ヘッダー
オイラーの公式はインラインで書くと $\exp{i\theta} = \cos{\theta} + i \sin{\theta}$ であり、ブロックで書くと
$$
\exp{i\theta} = \cos{\theta} + i \sin{\theta}
$$
このように書いて、
$ pandoc --pdf-engine=lualatex -V documentclass=ltjsarticle -o output.pdf main.pdf
と実行すれば、以下のようなpdfが手に入る。
下記のような簡単なMakefileを用意するだけでmake
コマンドで全部pdfを生成できて便利。
MD=$(shell ls **/*.md)
PDF=$(MD:.md=.pdf)
all: $(PDF)
%.pdf: %.md
pandoc --pdf-engine=lualatex -V documentclass=ltjsarticle -o $@ $<
clean:
rm **/*.pdf
この方法は、Markdownで気楽に書けるのが大変よい。一方で少しだけレイアウトや見た目を変更したいというだけでも、専用のpandocのfilterを作成したりしないといけなかったりして、地獄を見る。レポートのレイアウトや見た目にそこまでシビアではない課題をこなすときに重宝する。
pdfへの変換にはLaTeXのツールセットに依存しているため、ローカルにTexの環境を用意してあげないといけないのが面倒。
LaTeX + Compiler
見た目やレイアウトに要件がある場合には、そのままLaTeXを使うのがよさげ。
日本語を使わなくていいなら、pdftexがコマンド一発でbibliographyまで処理してくれるので楽。日本語を使わないといけないなら、LuaLaTeXがコマンド一発で同じくbibliographyまで処理してくれるので楽。
慣れていないと不必要なpackageを\usepackage
してビルドが通らなかったり、不親切なエラーメッセージに悩ませられたりする。
Typst
Typstはおそらく最近でてきた、レポートなどが書けるツール。
- CLIを実行すると専用GUIエディターが起動する。
- Rustで書かれていて、シングルバイナリ(!!!!!!)
Rustの文字列はUTF-8だからか、特に設定しなくても日本語の入出力に対応している。
ドキュメントがすっきりまとまっているので、今から「レポートを書くためにWordから別のものに乗り換えたい」という人にはおすすめしようかなと考えている。
Word
嫌われがちだけど、機能を適切に使いこなせば大変優秀なツール。Gitとの親和性は最悪なので、データ解析やグラフのプロットと同じリポジトリで論文を書くというスタイルは難しい。Word本体の機能に共同編集、同時編集の機能があるようなので、そういった機能を利用したほうがよさそう。