レポート用LaTeX周りメモ

4 min read読了の目安(約4300字

私が普段大学のレポートを書くために使っているあれこれをメモしておく。

  • 課題のたびに、少しずつブクマしてきたやつのまとめ。
  • レポート環境を構築できている人は読まなくていいかも。
  • 改善案歓迎
  • 後日気が向いたときに、細かいところ書きたい。

レポートを書く手段について

理系学生なら、レポートはLaTeX一強なので、嫌でも使わざるをえない。
一応LaTeXを使う理由を述べておく。
LaTeXはスクリプト的なものを書いて、コンパイルしてPDFに変換する。

そのため

  • キーボードで完結するので楽。
  • 文を書くフェーズと、見た目を整えるフェーズを分離できる。
  • 図表の番号を振るのが楽。
  • 数式を書くといえばLaTeXみたいなとこある。
  • Gitで管理できる。

また、LaTeX形式でスライドを作成できるBeamerなるものがある。

他のレポートを書く方法も紹介しておく

  • MicrosoftWord, Googleドキュメント
    • みなさんご存知のやつ。Wordはまじで操作性悪かった記憶ある
    • 一応これでもLaTeXみたいに数式が書けるらしい。
  • マークダウン
    • VSCodeを使うなら、Markdown Preview Enhancedを使えば数式が使えるようになる。
  • SATySFi
    • LaTeXの可読性の低さやエラーの不親切さを改善するべく開発されているやつ。
    • まだ、ユーザーが多くなくて敷居が高い。
    • SATySFiに関すること

LaTeX周りの入門サイト

Texに入門したい人は以下のサイトで始めるのがオススメ。

VSCodeでLaTeXが書きたい(環境周り)

  • ここの手順をする
    • ここの手順ではpLaTeXとかいうのが使えるようになる。
    • 他にもLuaLaTeXとか色々あるらしい。

ざっくりいうと

  • VSCodeとTeX Liveを入れる
  • .latexmkrcを書く
  • VSCodeにLaTeX Workshop入れる
  • VSCodeのsettings.jsonにもろもろ書く

環境構築したくない人向け

ブラウザ上でログインすればすぐにLaTeXが使えるようになるやつ。

数式

amsmathの数式環境をよく使う。場合分けのある数式とかを書く場合に、便利。

ソースコードを入れる

listingsを使う。

listingsだけだと、日本語コメントに対応していない。TeXLiveだと標準で、\usepackage{listings, jvlisting}するだけで対応できる。
なんか、私の環境だとjvlistingが効かないので、jlistingを下記のリンクからダウンロードする。
本当はちゃんとした場所に配置すべきなんだけど、report.texと同じ場所にぶちこんでおけば読み込んでくれる。

https://osdn.net/projects/mytexpert/downloads/26068/jlisting.sty.bz2/

また、複数の言語のソースコードを載せる際に、言語に応じてスタイルを変更したいときは\lstdefinestyle{hogehoge}{}で個別にスタイルを定義できる。

表を入れる

図を入れる

画像は、png形式かpdfで入れるのが無難。
また、tikzを使うことで、関数のグラフや状態遷移図を描くこともできる。
SVG画像も入れれるけどクソめんどくさい。

データをグラフ化する

gnuplotを使う。CUIで操作するグラフ描画ソフト。データからグラフを出力するスクリプトを書いたり、グラフの曲線を多項式で近似したりできる。

latex内で図を描く

TikZを使えば、LaTeX内で直接図をスクリプトで描ける。
各種関数のグラフ、図形、状態遷移図とかのグラフが描ける。
3次元グラフも描ける。
ノードの数が増えてくると、位置の指定がだるくなる。

Graphvizでデータ構造のグラフや状態遷移図を描く

二部グラフとか、プログラムで使ってるやつを出力して、それを出来るだけかんたんに図に変えたい。

GUIで簡単な状態遷移図が描きたい

リンクを貼る方法

hyperrefとpxjahyperを使えば、自動で\ref{}\cite{}にリンクが付く。
URLが貼りたいときは\url{http://hogehoge.com}とか書く。

\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}

参考文献の書き方

参考文献リストの参照 - cite

レポートの書き方周り