ほとんど先駆者様 【WSLでも確認済み】Ubuntu18.04/20.04でのLaTeX環境構築 (TeXLive2019/2020/2021) をなぞっただけだが、備忘録として残しておく。
きっかけ
mahjong
パッケージを使おうとしたら使えない。
2021年くらいに CTAN に追加されて TeX Live にもとっくに収録された筈なのだが、何故か見つからない。仕方ないからtlmgr
から入れようとしたらそもそも動かない。パスの問題かなーとか変なパッケージを入れようとした時に conflict しちゃったのかなーとか思いつつ少しいじってみるが、どうにもおかしい。
すると TeX Live のパッケージ更新が3年半くらい前で止まっていた。
$ dpkg -s texlive-full Package: texlive-full Status: install ok installed Priority: optional Section: tex Installed-Size: 70 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Architecture: all Multi-Arch: foreign Source: texlive-base Version: 2019.20200218-1 ...... ...
Ubuntu の repo は軒並みパッケージが古いのだが、TeX Live くらいは新しいのを使いたい。
TeX Live の入れ替え
もうapt
には任せておけないので思い切って全部消しちゃう。
$ sudo apt purge texlive-* $ sudo apt autoremove
とはいえ丸投げする先がapt
からインストーラに変わっただけである。適当なディレクトリを作ってwget
でダウンロードする。もちろん cURL 教徒の皆さんはcurl
を使えばよい。
$ wget http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz
$ tar xzf install-tl-unx.tar.gz
$ cd install-tl-20230923
$ sudo ./install-tl
するとウィザードが立ち上がって「止めるなら今のうちだぞ?」と聞いてくる。LaTeX が使えないと困るのでI
で続行。
毎度のことだが TeX Live はクソ重いのでダウンロードにすごぶる時間がかかる。以前家の回線がゴミカスだった頃は、インストーラを走らせてから晩ご飯を食べて風呂に入ってもまだ終わらず、寝て起きて作業を再開するなどしていた。
---------------------------------------------------------------------- The following environment variables contain the string "tex" (case-independent). If you're doing anything but adding personal directories to the system paths, they may well cause trouble somewhere while running TeX. If you encounter problems, try unsetting them. Please ignore spurious matches unrelated to TeX. (To omit this check, set the environment variable TEXLIVE_INSTALL_ENV_NOCHECK.) TEXLIVE_INSTALL_NO_DISKCHECK=1 ---------------------------------------------------------------------- TeX Liveへようこそ! ドキュメントの一覧は/usr/local/texlive/2023/index.htmlをご覧ください。TeX Liveのウェブサイト(https://tug.org/texlive/)にはすべてのアップデートとコレクションの情報が掲載されています。TeX Liveは全世界のTeXユーザ会有志による合同プロジェクトです。TeX Liveプロジェクトをサポートしていただける場合お好きなTeXユーザ会に入会することをご検討ください。TeXユーザ会の一覧はhttps://tug.org/usergroups.htmlでご確認いただけます。 Add /usr/local/texlive/2023/texmf-dist/doc/man to MANPATH. Add /usr/local/texlive/2023/texmf-dist/doc/info to INFOPATH. Most importantly, add /usr/local/texlive/2023/bin/x86_64-linux to your PATH for current and future sessions. Logfile: /usr/local/texlive/2023/install-tl.log
今回は30分くらいで終わった。天と地の差だ……
pathを通せと言われているので素直に従う。
# .bashrc の末尾に追加 export PATH="$PATH:/usr/local/texlive/2023/bin/x86_64-linux" export MANPATH="$MANPATH:/usr/local/texlive/2023/texmf-dist/doc/man" export INFOPATH="$INFOPATH:/usr/local/texlive/2023/texmf-dist/doc/info"
$ source ~/.bashrc
今回はパスを~/.bashrc
からexport
するようにしたが、これだと当然 root からは見れない。つまりsudo
など管理者権限で TeX Live 周りのコマンドを実行したい時にパスが通っていないと言われて困る(後述)。
全員が読むファイル(/etc/bash.bashrc
とか)に書いてもいいかもしれないけど、なるべく触りたくないので僕はやってません。
パッケージの手動追加
おいおい LuaLaTeX に乗り換えたいなとは思っているのだが、とりあえず現環境で使ってる upLaTeX が正常に動くか確認したい。
普段のテンプレートをコンパイルしてみる。
! LaTeX Error: File `gnuplot-lua-tikz.sty' not found.
そういえば、いくつかのパッケージは自前で放り込んでいたのだった。gnuplot-lua-tikz
は gnuplot が LaTeX で出してくれたグラフを処理するためのパッケージである。実験レポート作成時にはいつも助けられる。
gnuplot が.sty
ファイルを吐いてくれるので使う。場所と権限によっては管理者で実行する必要がある。
$ cd /usr/local/texlive/texmf-local/tex/latex/local/ $ sudo mkdir gnuplot [sudo] password for jj1lis: $ cd gnuplot/ $ sudo gnuplot G N U P L O T Version 5.2 patchlevel 8 last modified 2019-12-01 Copyright (C) 1986-1993, 1998, 2004, 2007-2019 Thomas Williams, Colin Kelley and many others gnuplot home: http://www.gnuplot.info faq, bugs, etc: type "help FAQ" immediate help: type "help" (plot window: hit 'h') Terminal type is now 'qt' gnuplot> set term tikz createstyle Terminal type is now 'tikz' Options are 'latex nopreamble color nostandalone nogparrows notikzarrows nogppoints picenvironment nooriginreset bitmap rgbimage noclip notightboundingbox noexternalimages ' gnuplot> q $ ls gnuplot-lua-tikz-common.tex gnuplot-lua-tikz.sty gnuplot-lua-tikz.tex t-gnuplot-lua-tikz.tex
こうやって見ると gnuplot も普通に古い。
とにかく、4つのファイルが吐き出されていることが分かる。あとはmktexlsr
で ls-R ファイルを更新すればよいのだが……
$ sudo mktexlsr
sudo: mktexlsr: command not found
そんなもんは知らんと言われてしまう。先述の通り自ユーザ以外ではパスを通していないので、全員が参照する場所でexport
しないのであれば一々通す必要がある。
$ sudo su # source /home/jj1lis/.bashrc # mktexlsr mktexlsr: Updating /usr/local/texlive/2023/texmf-config/ls-R... mktexlsr: Updating /usr/local/texlive/2023/texmf-dist/ls-R... mktexlsr: Updating /usr/local/texlive/2023/texmf-var/ls-R... mktexlsr: Updating /usr/local/texlive/texmf-local/ls-R... mktexlsr: Done.
su
は精神衛生上よくないので、これはこれで問題があるかもしれない。
あと面倒臭がって~/.bashrc
を全部読むと事故る可能性があるので、多分ちゃんとパスだけ通したほうがよい。
その他、jlisting
とか必要なものを移しているうちに動くようになった。
何かいい感じになった
そういえば、元はといえば mahjong
を使いたいんだった。できるかな?
\documentclass[uplatex,a4paper,dvipdfmx]{jsarticle} \usepackage{mahjong} \title{\texttt{mahjong.sty}テスト} \author{型推栄} \begin{document} \maketitle これは国士無双です:\mahjong{19m19p19s1234567z-1s} \end{document}
— 型推栄 (@_jj1lis_uec) 2023年9月23日