みなさんおはようございます。Fourmsushiです。
Markdownでレポート書いてPandocで変換してるそこのお前!
LaTeX直書きで疲弊してるそこのお前!
Wordで特に不自由してないそこのお前!
Org modeをつかってみようぜ!!
Org modeって何だよスパゲッティか?
スパゲッティではない。
Org modeはEmacsの拡張のひとつで、文書作成からTODOリストから簡単な表計算までこなせるすごいやつです。
また、公式サイトにはこのように書かれています。
Org-mode は、ノートの保存、TODOリストの管理、プロジェクト計画、文書編集のためのモードです。
高速で効率的なプレーンテキストのシステムを使ってファイルを編集します。
適当に言ってしまえばMarkdownのようなやつということになります。
驚くべきことに、iCalendar、HTML、LaTeX、PDF、ODT、プレーンテキストなど多くの形式に変換する機能がデフォルトで実装されています。
実際にOrg modeを使ってさっと作ったPDFファイルがこちらです。
気になった?使ってみましょう!そこのVim使いもまだ帰るには早いぞ
環境を整える
良い暮らしは良い住処からはじまる。
エディタ
ここまで読んだ読者の多くは「Emacsかあ、、、」なんて思っているんじゃないでしょうか。
安心してください。まだ諦めるには早いですよ。
Vim使いのあなたには、Vimに近いキーバインドで使えるSpacemacsや、Vimの拡張としてvim-orgmodeがあります。
Visual Studio Code使いのあなたにはOrg Mode(VSCode拡張)があります。
Sublime Text使いのあなたにだってorgmodeがあります。
Atomのあなたも我々の仲間です。org-mode(Atom拡張)があります。
特にこだわりがない方や、新しいキーバインドを覚えるのに抵抗がない方にはSpacemacsをおすすめします。
というのも、Emacsの拡張でないOrg modeは出力などの機能において劣っている場合があるからです。
この記事の内容はSpacemacsを前提にしていますので、この先を読むつもりの方は各自インストールしてください。
ちょっとだけ設定
まずはorg-modeのためにレイヤーなるものを導入します。
SPC f e d
で設定ファイルを開き、以下のように ;; org
となっている部分をあんコメントしてください。
dotspacemacs-configuration-layers
'(
;; ----------------------------------------------------------------
;; Example of useful layers you may want to use right away.
;; Uncomment some layer names and press <SPC f e R> (Vim style) or
;; <M-m f e R> (Emacs style) to install them.
;; ----------------------------------------------------------------
helm
;; auto-completion
;; better-defaults
emacs-lisp
;; git
;; markdown
org
;; (shell :variables
;; shell-default-height 30
;; shell-default-position 'bottom)
;; spell-checking
;; syntax-checking
;; version-control
)
設定を変更したら ESC
で挿入モードをやめて SPC f e R
で再読込しましょう。
デフォルトの設定では日本語フォントが明朝体だったり中華フォントだったりするかもしれません。特にSpacemacs。
フォントを変更するには SPC f e d
で設定ファイルを開き、
dotspacemacs-default-font '("M+ 1mn"
:size 13
:weight normal
:width normal
:powerline-scale 1.1)
(defun dotspacemacs/user-config ()
"Configuration function for user code.
This function is called at the very end of Spacemacs initialization after
layers configuration.
This is the place where most of your configurations should be done. Unless it is
explicitly specified that a variable should be set before a package is loaded,
you should place your code here."
(set-fontset-font t 'unicode "M+ 1mn" nil 'prepend))
のような感じに該当部分を書き換えてください。(わたしはM+ 1mnを使っています。)
設定を変更したら ESC
で挿入モードをやめて SPC f e R
で再読込しましょう。
さらに、日本語環境に対応したLaTeXファイルを生成するように設定を変更する必要があります。
SPC SPC
のあとに customize-group
と入力し org-latex
と入力し設定画面を開きます。
Org Latex Packages Alist
に必要なLaTeXのパッケージを追加してください。
私は以下のようにパッケージを追加しました。また、わたしの環境ではgrffileがうまく動作しなかったため Org Latex Default Packages Alist
からgrffileを除外しました。
パッケージを追加し終わったら画面上方の Apply and Save
で設定を保存しましょう。
次はプリアンブルや処理系の設定に移ります。
先程のようにして customize-group
から org-export-latex
を開き、以下の2つを適切に設定します。
ほかにも気になる項目があったらここで設定しておきます。
Org Latex Classes
Org Latex Compiler
わたしはLuaLaTeXを使っているので、そのための設定を施しました。
Spacemacsでorgファイルを書く準備ができたので、さっそく書いていきましょう。
書く
書くぞ
早速ですが、なにかいい感じのフォルダに hoge.org
のようなファイルを作り、中に
#+TITLE: Org modeでレポートを書く
#+AUTHOR: Fourmsushi
#+OPTIONS: toc:nil
のように書き込みましょう。 M-TAB
で補完ができるみたいですが私の環境ではM-TABは他が使っているので試してません。ごめんね。
見出しを挿入するには M-RET h I
または * hoge
です。アスタリスクの数でサイズが変わります。アスタリスクの数を手打ちで変えるのは面倒ですか? M-LEFT
や M-RIGHT
を試してみましょう。
見出しを追加したら、つぎのように入力してOrg modeの文法を把握していきましょう。
# これはコメントなので表示されません。
**太字**
/italic/
_下線_
+きのこの山とたけのこの里、どっちでもよくね+
~inline code~
=monospaced=
- 箇条書き
- あ
1. a
2. b
- あ
横線
---
: I have a pen.
$\frac{1}{2} = 0.5$
\begin{align}
a &= b \\
&= c
\end{align}
それではPDFを生成して、出力を確かめましょう。
PDFをを出力するには C-c C-e l p
と入力してください。
PDFが出力されたら、画像のように出力されているか確認してみましょう。
もっと書く
書かねば
さて、Org modeがMarkdownと同じくらいには便利だとわかってもらえたでしょうか。
まだまだ紹介することはありますよ。
表
表を書きましょう。
なにかをわかりやすく表示するのに、表を使うのはよくあることです。
Org modeなら簡単に表を書けるんです。
|名前|性別|年齢|
このように入力して、 TAB
を押してみましょう!
一瞬で簡単な表が作れました。
一つ項目を入力するたびに TAB
を押せば、すばやく内容を入力していくことができます。
名前 | 性別 | 年齢 |
Fourmsushi | M | 19 |
Hoge | F | 419 |
K | M | 1 |
CSVから表を作ることも簡単にできます。
CSVをコピーアンドペーストして、選択したあとに C-c |
を入力してみてください。
CSVが表に変換されます。
キャプションをつけたいのであれば以下のように入力しましょう。
#+CAPTION: メンバーのプロフィール
#+NAME: tb:profiles
#+ATTR_LaTeX:
| 名前 | 性別 | 年齢 |
| Fourmsushi | M | 19 |
| Hoge | F | 419 |
| K | M | 1 |
名前 | 性別 | 年齢 |
Fourmsushi | M | 19 |
Hoge | F | 419 |
K | M | 1 |
画像やリンク
画像やリンクを挿入する方法も簡単です。
まずはリンクですが、 C-c C-l
で挿入することができます。
画像などのローカルファイルは C-u C-c C-l
です。
こちらも表と同様キャプションをつけることができます。
また、画像は Description
を埋めると表示されなくなるので注意しましょう。
コードブロック
プログラマの方は、ソースコードを貼り付けたくなることがあると思います。
C-c C-,
で src を選択すれば好きな言語のコードブロックを生成出来ます。
#+begin_src bash
#+end_src
例えばこのようにすればbashのシンタックスハイライトが効きます。
このコードブロックにも様々な機能がありますが、 C-c '
で編集モードに入れること、 C-c C-c
で実行できることは知っておくといいかもしれません。
書くことが無くなった
書くことが無くなったのでまとめに入ります。
- Org modeはいいぞ
- 高機能でMarkdownみたいに書けるシンタックス
- 多用な出力形式
この記事では以上のようなことを説明しました(薄くない、、、?)
この記事ではレポートを書くためのOrg modeの使い方について説明しましたが、他にもTODOリストや表計算、GitHubのREADMEなどにもつかうことが出来ます。
興味を持った方はぜひ試してみてください。