大学のレポートをMarkdownで爆速で書く話

Markdownでレポートを書く話をしようと思ったのだ

BEAN

あなたはWord?LaTeX?それともPages?

皆さんは何でレポートを書かれますか?

一般的に最も多いのはWordだと思いますが, 理系だとLaTeX(TeX)な人も多いかもしれません.
Macを使ってる人だとPagesって言う手もありそうですがどうなんでしょ. 自分は使ったことがないですね.

で、大学って結構レポート書く機会が多いですよね.
レポート書くとき, 体裁を整えるの結構めんどくさくないですか.
自分はWordはそう言うのが凄くメンドくさいと感じます.
高機能ではありますが, フォントを選んだり, フォントサイズ指定したり, 画面上部のバーのなんとかのボタンを押してリスト表示したり…
その点, LaTeXはある程度決まったフォーマットでGUI操作少なくレポート書けます.
だがしかし, タグが長ったらしい…

\begin{document}
    \maketitle
    \section{hoge}
        \subsection{hogehoge}
        \begin{itemize}
            \item foo.
            \item fooo
            \item fuga
        \end{itemize}
\end{document}

ほげーーーーーーー!!!!
内容が無いとタグの方が文字数とってる説まであるよこれ.

というわけで, これなんとかならんのかね. と思ったのでなんとかしようという話です.

Markdownでレポートを爆速で書く

Markdown is 何

Markdownは知っていますか? MarkdownはHTMLを簡単に書くために出てきたマークアップ言語.
もっとも使われているのがわかりやすいのがGitHubのREADME.mdですかね.
他にはCMSのWordPressがMarkdownでページの内容を書けるようになっていますし, はてなブログもMarkdownで記述することが可能.
このブログもMarkdownで記述されています.(GitHubでこのページ部分を見るとMarkdownになっています)

Markdownがどういう記法なのかは

Qiita マークダウン記法 一覧表・チートシート

を見るとわかります.

かなり便利そうでしょ?

レポートの体裁への変換

Markdownはテキストファイルなのでそのまま印刷してもレポートの体裁にはなりません.

そこでpandocというものを使っていい感じの体裁でPDFに出力します.

ここからは環境によってやること変わってきます.
基本的に自分の環境のmacでの話になります. ちなみにエディタはVisual Studio Codeを使うことになっていますが, 拡張機能とか自前のスクリプトで他のエディタでもできるんじゃないでしょうか.

環境

  • MacBook Pro (Retina, 13-inch, Early 2015), macOS High Sierra 10.13.5
  • brewがインストールされている
  • Visual Studio Codeがインストールされている

brewが入っていない人はMacにHomebrewを導入する方法を参照してください. Visual Studio Codeはここからインストールしてださい.

手順

pandocのインストール

簡単です.
Terminal.appで

brew install pandoc

終わり.

Visual Studio Code 側の設定

vscode-pandoc という拡張機能をインストールします.

インストールが終われば, “cmd + ,“で User Settingsを出して, Pandoc Option Configuration のなかの "pandoc.pdfOptString" を以下のように編集します.

"pandoc.pdfOptString": "-N -t latex-smart --listings --pdf-engine=xelatex -V papersize=a4 -V ja=standerd -V documentclass=bxjsarticle -V classoption=pandoc -V classoption=jbase=11Q -V classoption=jafont=hiragino-pron"

このオプション類はpandocに渡すオプション類で,
Pandoc ユーザーズガイド 日本語版を見ればなんとなくわかるかと.

で、日本語環境ではLuaLaTeXが推奨されるのですが, PDFの生成がちょっと遅い. ので, XeLaTeXというものを使っています. XeLaTeXはもともとMac OS X用に提供されていたものですが, 今は大体の環境で使えるようです.

ここまでで環境構築は終了です.

レポートを書いてみよう

というわけで, 実際にレポート書いて見ましょや.

以下のMarkdownファイルを用意して…


---
title: レポートのタイトル
author: BEAN
fontsize: 11pt
header-includes:
- \lstset{numbers=left, frame=trlb, frameround=tttt, breaklines=true}
- \renewcommand{\lstlistingname}{Source Code}
---

# hoge

本文

## fuga

本文その2

今日のタスク

- 世界にこんにちは
- を標準出力へ.

\```{.Cpp caption="世界で最も有名なコード"} <-ここやるときはバックスラッシュ外してね
#include <iostream>

int main() {

    std::cout << "Hello, World !!" << std::endl;

    return 0;

}

\``` <-ここやるときはバックスラッシュ外してね

PIDの式とか
$u(t) = K_{p}e(t) + K_{i}\int_{0}^{t}e(\tau)d\tau + K_{d}\frac{de(t)}{dt}$^[ Wikipedia PID制御 より (https://ja.wikipedia.org/wiki/PID制御) ]

改ページしてみて

\newpage

## 図とか表とか

![私はサーバル!!](animal_serval.png){width=60mm}  
[いらすとや](https://www.irasutoya.com/2017/02/blog-post_455.html)から拝借したサーバル

| In         |     Conv     |     Out     |
|:-----------|:------------:|------------:|
| なか        |     RD       |           |
| さあさなあた |    ULDDDD    |   水素の音   |
| なたやさあ   |    -L--L     |    夏野菜    |
| ????       |    ????      |    ライオン  |

: 突然のクイズ!!\ 最下段を完成させろ


これをタイプセットすると…

レポート1ページ目


レポート2ページ目

になります.

Markdownは完全か?

全部Markdownで書いても良いんですが, やっぱりもともとHTMLの方面のものなので全部ってのはキツいと思います.

ので, 画像と表は普通にLaTeXの記法で書く方がいいかと.

表に関してはLaTeX Table Generator とかを使うとサクッと作れます.

Macを使う人へ

レポートを書く時, Split Viewで左側にMarkdownエディタ, 右側にPDFを表示してレポートを書いていきたいですよね.
ですが, Macの標準のPDF ViewerであるPreview.appはPDFを表示している間にそのPDFに更新があっても表示を自動で更新してくれません.

この問題はサードパーティのPDF ViewerであるSkimを導入することで解決できます.

Skim の設定

Skimをインストールしたら⌘+,でSkimの環境設定を開いて
“同期する"タブのファイルの変更をチェック
自動的にリロードのチェックボックスにチェックを入れます.
下のPDF-TeX 同期サポート:の欄は何か関係ありそうですが初期値のままでOKです.

VScode + Skimでこんな感じ

まとめ

これで爆速でレポート書けるでしょ? 少なくともタイピングしてる時間は短縮されます.

全く別の話ですが, 最近学校の課題で精神を病みそうになった時とあるコピペ改変の(間接的な)リプが飛んできてかなり精神が回復されました.

このコピペ面白すぎませんか? 心の救いになりましたありがとうございます.

音楽としては最近アイルランドのバンドの"The Script"にハマってたりします.
邦楽としては"Reol"の"サイサキ"をヘビロテしてます.

ではレポートが爆速で書けるようになったのでおわりー!!

参考文献

comments powered by Disqus