0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

課題の記述をwordからlatexにしたら効率上がった(かもしれない)話

Posted at

大学の課題を書くのにwordからlatexに変えたら、良い感じになったので備忘録がてら書いてみました。
PCはMac OS(M2)を使用しています。

LaTeX

MacTexのインストール

homebrewからMacTexのGUIアプリケーションを除いたものをインストールしました。

$ brew install --cask mactex-no-gui 

pdfTeXというものを使っているみたいですね。

❯ latex -v
pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2024)
...

.latexmkrcの設定

どこかは忘れてしまいましたが、参考にした記事の内容をまるまるコピペして使っています。
参考元を忘れてしまったのでここは省略します...

VSCode

拡張機能のLaTeX Workshopをインストールします。

スクリーンショット 2024-05-26 23.43.54.png

この拡張機能の設定をすることで、保存すると自動でビルドしてくれたり、不要なファイルを削除してくれたりしています。

以下はVSCodeの設定の一部です。こちらも色々記事をみて参考にしました。

settings.json
{

  ...

  "latex-workshop.latex.tools": [
    {
      "name": "latexmk",
      "command": "latexmk",
      "args": ["-silent", "-outdir=%OUTDIR%", "%DOC%"]
    }
  ],
  "latex-workshop.latex.recipes": [
    {
      "name": "latexmk (tex to PDF)",
      "tools": ["latexmk"]
    }
  ],
  "latex-workshop.view.pdf.viewer": "tab",
  "latex-workshop.latex.clean.subfolder.enabled": true,
  "latex-workshop.latex.autoClean.run": "onBuilt",
  "latex-workshop.latex.clean.fileTypes": [
    "*.aux",
    "*.bbl",
    "*.blg",
    "*.idx",
    "*.ind",
    "*.lof",
    "*.lot",
    "*.out",
    "*.toc",
    "*.acn",
    "*.acr",
    "*.alg",
    "*.glg",
    "*.glo",
    "*.gls",
    "*.ist",
    "*.fls",
    "*.log",
    "*.fdb_latexmk",
    "*.snm",
    "*.nav",
    "*.dvi",
    "*.synctex.gz"
  ],
  "latex-workshop.latex.outDir": "out"

  ...
  
}

Makefile

LaTeX環境とは別にファイルの作成も手軽にしたかったので、Makefileを作成することにしました。
自分で思いついたかのように書いてますが、友人がそうしてたのを真似た感じです笑

突然ですが、以下は私の授業の課題を管理しているディレクトリです。

.
├── template    // LaTeXのテンプレートを置くところ
├── 1-psp-0
│   ├── Compile
│   │   ├── Compile.tex
│   │   └── out
│   │       └── Compile.pdf
│   ├── DesignStatement
│   │   ├── DesignStatement.tex
│   │   └── out
│   │       └── DesignStatement.pdf
│   ├── RequirementsStatement
│   │   ├── RequirementsStatement.tex
│   │   ├── figure1.png
│   │   ├── figure2.png
│   │   └── out
│   │       └── RequirementsStatement.pdf
│   ├── TestResults
│   │   ├── TestResults.tex
│   │   ├── figure1.png
│   │   ├── figure2.png
│   │   ├── figure3.png
│   │   ├── figure4.png
│   │   └── out
│   │       └── TestResults.pdf
│   ├── document
│   │   └── ...
│   ├── repo
│   │   └── ...
│   └── submission
│   │   └── ...
├── 2-stds
│   ├── ...
...

色々ありますが、こんな感じの構成になっています

.
└── [各課題のディレクトリ]
     ├── [ファイル名]
     │   ├── [ファイル名].tex
     │   └── out
     │       └── [ファイル名].pdf
     ├── document    // 課題の資料を置くところ
     │   └── ...
     ├── repo        // ソースコードを置くところ
     │   └── ...
     └── submission  // 最終的に提出するものを置くところ(複数回あるので)
          └── ...

上記のうち[ファイル名]ディレクトリ[ファイル名].texをMakefileで生成してもらう感じです。
Makefileと、コマンドは次のようにします。

TEMPLATE=./template/template.tex

$(DIR)/$(NAME)/$(NAME).tex: $(TEMPLATE)
	mkdir -p $(DIR)/$(NAME)
	cp $(TEMPLATE) $@
$ make DIR=[課題のディレクトリ] NAME=[ファイル名]

これを実行すると、指定した課題のディレクトリ内にtexファイルを含むディレクトリが生成されます。
またこのtexファイルをVSCodeで編集して保存すると、texファイルのディレクトリ内に/outという名前で勝手に出力してくれるるわけです。
すっごく手軽になりました!嬉しい!

余談ですがMakefileなんて授業でしか作成したことなかったので、たった数行ですがたくさん調べました。まだまだだなあ

GitHubで共有

元々WordからLaTeXに乗り換えた理由は、研究室のパソコン(Windows)でも作業がしたかったためです。
Wordをクラウドで共有すれば良いかと思いましたが、やっぱり毎回ダウンロードしたりアップロードしたりがめんどくさいと思ったこと && 良い機会だしLaTeX触れるようになりたいなあと思ったことがきっかけでした。

gitignore

上記では省きましたが、各ディレクトリで.DS_Storeが生まれること、.dvisynctex.gzがなぜか削除されない状態なので、それらを無視するようにしています。

また、documentディレクトリは資料(wordファイル)を含むため、submissionディレクトリは提出物の管理はする必要がないという理由で、gitignoreに追加しています。

これでtexファイルの共有も簡単になりとっても嬉しいです。

今後の展望

現在はVSCodeの拡張機能を使って自動ビルド等をしていますが、頑張れば.latexmkrcでできるようになると(これまた友人から)聞いたので、やってみたいです。
最近ちまちまとterminalだったりNeoVimを整備したりしてるので、そちらでできるようになればかっこいいかな...と思ってます。
卒論までにlatexビギナーの山(?)は登りたいです。

ここまでご覧いただきありがとうございました🙌

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?