LoginSignup
0
1

macでlualatexを使ってみた

Posted at

はじめに

研究者はやはりlatexだろう。最近macbookを買ったので、これにlatexをインストールすることにした。
latexエンジンは最近流行りらしいlualatexで行くことにした。
すぐにコンパイルが通るかと思いきやパスで色々苦労したので、備忘録として共有させていただく。

環境

  • MacBook M3 Pro (macOS Sonoma)
  • Texlive 2024 (mactexを使用)
  • Visual Studio Code
    • 拡張機能: LatexWorkshop
  • Terminal or Warp(どっちも本質は変わらないと思います、おそらく)

前提

LaTeXは知っているor使ったことがある前提で進めさせていただきます。もし知らない場合は他の記事を当たってください。
参考: TeX Wiki、その他入門用サイトや書籍

Homebrew、VSCodeはインストール済みとします。こちらもインストールされていない場合は他を参考にしてインストールしてください。特に難しいところはありません。

mactexのインストール

TeX WikiのmacOS向けの章を参考に行います。
Homebrewで以下のコマンドの通りインストールします。

shell
$ brew install --cask mactex-no-gui

僕はGUIツールがいらないので-no-guiオプションをつけました。
mactexをおすすめしない理由によると、GhostScriptがいろんな場所にインストールされる使用だったみたいです。最近はCaskを使えばそんなことはないようでしたが、調査が甘く危うく環境を汚すところでした。
また、通す必要があるパスもUnix系のTexLiveと少々異なるみたいです。

パス

Linuxと違い、zshではexportコマンドをシェルに打つだけでは恒久的に実行されないみたいです(シェルとかを再起動するとパスが通らなくなっている)。
なので、~/.zshrcに以下のことを書き込む必要があります。

.zshrc
export PATH=$PATH:/usr/local/texlive/2024/bin/universal-darwin
export PATH=$PATH:/Library/TeX/texbin

ここで引っ掛かっていたのですが、2行目のものも書いておく必要があります。
2行目のやつはUnix系やLinuxでは通さなくていいはずですが、mactexの場合は通す必要があるそうです。
実はmactexをおすすめしない理由に書いてありました。
そのあとはsourceしてあげればいいです。

shell
$ source .zshrc

これでecho $PATHを実行し、exportで追加したやつらが出力に含まれていればOKです。
platexlualatexを実行してやると動作すると思います。

VScodeの設定

LatexWorkshopはインストールされている前提です。
インストールは簡単なので割愛します。
setting.jsonを開いて、以下を追記します。

setting.json
{
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.view.pdf.invert": 0,
    "latex-workshop.latex.autoBuild.run": "onSave",
    "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": true,
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": ["-r", "%WORKSPACE_FOLDER%/.latexmkrc", "-cd", "%DOC_EXT%"]
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "lualatex",
            "tools": [
                "latexmk"
            ]
        }
    ],
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/Thumbs.db": true,
        "**/*.dvi": true,
        "**/*.aux": true,
        "**/*.fls": true,
        "**/*.atfi": true,
        "**/*.nav": true,
        "**/*.snm": true,
        "**/*.toc": true,
        "**/*.asv": true,
        "**/*.stderr": true,
        "**/*.stdout": true,
        "**/_minted-*/": true,
        "**/_markdown_*/": true,
        "**/pythontex-files-*/": true,
        "**/*.pytxcode": true,
        "**/*.markdown.in": true,
        "**/*.markdown.lua": true,
        "**/*.fdb_latexmk": true,
        "**/*.synctex.gz": true,
        "**/*.synctex(busy)": true,
        "**/__latexindent_temp.tex": true,
        "**/*.pyg": true,
        "**/*.log": true,
        "**/*.out": true,
        "**/*.bbl": true,
        "**/*.blg": true,
        "**/*.bcf": true,
        "**/*-blx.bib": true,
        "**/*.run.xml": true,
        "**/*.texmfcache": true,
        "**/svg-inkscape*": true
    },
}

これはこちらの記事をそのまま使わせていただきました。
一時ファイルをVSCodeからは隠し、実態としては残しておく考えにも賛同したためこのまま残してあります。

.latexmkrcの作成

これもこちらの記事をそのまま使わせていただいております。
latexで作業したいディレクトリ(vscodeで開くルートディレクトリ)に.latexmkrcファイルを作成してください。
テキストエディタでそれを開き、以下のコードをコピペしましょう。

.latexmkrc
#!/usr/bin/env perl

# http://mirrors.ctan.org/support/latexmk/latexmk.txt
$lualatex = 'lualatex --shell-escape --halt-on-error';
$lualatex_silent = 'lualatex --shell-escape --halt-on-error --interaction=batchmode';
$max_repeat = 10;
$pdf_mode = 4; # lualatexは4

テストファイルのコンパイル

以下のファイルを作成してvscode上で保存してください

test.tex
\documentclass{ltjsarticle}

\begin{document}
\section{はじめに}
Hello \LaTeX !
\end{document}

基本的に普通のlatexと変わらないですが、lualatexではltjsarticleを使う必要があります。
原ノ味フォントがデフォルトで使えるので日本語でも困らないと思います。ヒラギノ使いたい時はまたまたTex Wikiをみてください。

Well Done!

記事を書いていて思いましたが、普通にmactexをアンインストールして通常texliveをインストーラ形式で入れればよかったのではないか。

0
1
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
1