Markdownで大学のレポートを書きたいのでなんとかした

高級なものって使い慣れないです。WordとかWordとかWordとか、いちいち文字の大きさ設定するの非常に面倒くさいし数式入れるのも面倒だしもはや何もかも面倒です。

あと、たまにUbuntu触るのでもう心は完全に「Word使わずにレポートを書きたい!」になりました。

あと出来ればMarkdownでレポートを書きたいです。 めっちゃ書きやすいので。

んで、どうやらMarkdownファイルをPDFに変換するPandocというソフトを見つけました。

ですが、このPandoc,環境構築がめっっっっちゃしんどいので今回は備忘録を書こうかなと

でPandocのメリットは?

  • 数式の入力がめっちゃ簡単
  • Markdownで書くのでWordを起動しなくていい
  • 表番号や図番号や見出し番号を自動で振ってくれる
  • Gitで進捗管理が簡単に出来る
  • 画像とかを簡単に貼れる、調整できる
  • Markdown
  • ソースコードにハイライト付けたりできる

最強です。

どんな感じに書くのか見たい人はこちらへ

まだ Word で消耗してるの? 大学のレポートを Markdown で書こう

ちなみにデメリットも書いておきます

  • 環境構築が沼
  • 見出しのフォントの変え方がいまいち分からない
  • 環境構築が沼

あまりにも環境構築が沼です。もう二度とやりたくない。特にLaTeXのインストールが鬼門

つまづかないように書いていきます。

ちなみに環境構築はMacを想定しています。

brewでインストールしよう

$ brew install pandoc

超安牌です。

インストールしたら確認しましょう

$ pandoc --version
pandoc 2.5
Compiled with pandoc-types 1.17.5.4, texmath 0.11.1.2, skylighting 0.7.4
Default user data directory: /Users/reud/.pandoc
Copyright (C) 2006-2018 John MacFarlane
Web:  http://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.

PDFに変換するためにLuaTeXをインストール

あんまりLaTeX界は明るくないのですが、どうやら、TeXの色々なツールを一纏めにした、

Tex Liveというのがあるのでここからインストールしましょう

インストール出来たか確認もしておきましょう

$ lualatex -v
This is LuaTeX, Version 1.07.0 (TeX Live 2018)

Execute  'luatex --credits'  for credits and version details.

There is NO warranty. Redistribution of this software is covered by
the terms of the GNU General Public License, version 2 or (at your option)
any later version. For more information about these matters, see the file
named COPYING and the LuaTeX source.

LuaTeX is Copyright 2018 Taco Hoekwater and the LuaTeX Team.

フォントを入れよう

ここからIPAex明朝を入れましょう。

Tex側で読み込めればおk、もしかしたらインストールの必要もないかも・・・?

作業用ディレクトリを作ろう

レポートの変換作業を行うディレクトリを作ろう

今回は僕は実験のレポート作成にpandocを使っているのでzikkenという作業用ディレクトリを作って、そこで変換作業してるよ

作業用ディレクトリに色んな設定ファイルを入れよう

フォントの設定とか色々行うために色んなファイルを作業用ディレクトリに入れるよ

ブログのプラグイン上、一番下の行に謎の空行が入ってるけどそれは無視してね

header.tex

\setsansfont{IPAexMincho}

pandoc-crossref-config.yaml

figureTitle: "図 "
tableTitle: "表 "
listingTitle: "コード "
figPrefix: "図"
eqnPrefix: "式"
tblPrefix: "表"
lstPrefix: "コード."

pandoc-crossref

図番号とかの相互参照が出来るようになるために必要です。

環境構築の超鬼門です。

わざわざHaskellの環境構築が必要になるので・・・

$sudo apt install haskell-platform
$cabal install pandoc pandoc-crossref pandoc-siteproc
$export PATH='$PATH:/home/username/.cabal/bin'

ちなみに僕はcabalでインストールしたもののPATHがなぜか通らないので/home/username/.cabal/bin内のpandoc-crossredを作業用ディレクトリに直接ぶち込んでます(キレ気味)

PATHが通った方は勿論作業用ディレクトリに入れる必要はないです。

report-produce.sh

オレオレシェルスクリプトです。これは別に自分で作ってもいいです。

pandocでレポートを作る際、結構コマンドが長ったらしくなるのでスクリプトにした方が絶対いいです。

とりあえず今回は僕の作成したスクリプトを使う前提で話を進めていきます。

作成したら、

# chmod +x report-produce.sh

で実行権限を与えてあげましょう

実行してみる。

いい感じのMarkDownファイルを作って、作業用ディレクトリに入れて、作業用ディレクトリ内で

$ ./report-produce.sh {mdファイル名} {出力ファイル名(.pdfを忘れずに)}

でやるとうまくいけばレポートが完成しています。

やったね〜!

ちなみに文法とかはpandoc レポートとかで検索すれば良いのが出てくるのでそうしてください。

お疲れ様でした〜!!

追記

markdownファイルの冒頭に

---
documentclass: ltjsarticle
---

# 目的
ほげ〜

# 実験内容
        ・
        ・
        ・

こんな感じでdocumentclassの指定をしないとエラー吐くので気をつけてください。

Licensed under CC BY-NC-ND 4.0
Built with Hugo
テーマ StackJimmy によって設計されています。