LoginSignup
25
26

More than 1 year has passed since last update.

【WSLでも確認済み】Ubuntu18.04/20.04でのLaTeX環境構築 (TeXLive2019/2020/2021)

Last updated at Posted at 2019-12-11

環境構築基本

apt install で入るTeXLiveは1,2年分くらい古かったりするので注意が必要.以下,Ubuntu18.04,TeXLive2019で成功.
(2020/4追記: TeXLive2020で成功)
(2021/4追記: TeXLive2021で成功)

(2020/4 追記)また、Windows Subsydtem for Linux 2 (WSL2)でもTexLive 2020の導入ができることを確認しています。

参考ページ: http://www.tug.org/texlive/doc/texlive-ja/texlive-ja.pdf#c

1: http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz からダウンロード.
2: 展開してインストール

# インターネット・インストーラのダウンロード
$ 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-20YYMMDD
$ sudo ./install-tl

3: 途中でどうやってインストールするか聞かれるが,そのままでも大丈夫。

======================> TeX Live installation procedure <=====================

======>   Letters/digits in <angle brackets> indicate   <=======
======>   menu items for actions or customizations      <=======

 Detected platform: GNU/Linux on x86_64

 <B> set binary platforms: 1 out of 16

 <S> set installation scheme: scheme-full

 <C> set installation collections:
     40 collections out of 41, disk space required: 6955 MB

 <D> set directories:
   TEXDIR (the main TeX directory):
     /usr/local/texlive/2020
   TEXMFLOCAL (directory for site-wide local files):
     /usr/local/texlive/texmf-local
   TEXMFSYSVAR (directory for variable and automatically generated data):
     /usr/local/texlive/2020/texmf-var
   TEXMFSYSCONFIG (directory for local config):
     /usr/local/texlive/2020/texmf-config
   TEXMFVAR (personal directory for variable and automatically generated data):
     ~/.texlive2020/texmf-var
   TEXMFCONFIG (personal directory for local config):
     ~/.texlive2020/texmf-config
   TEXMFHOME (directory for user-specific files):
     ~/texmf

 <O> options:
   [ ] use letter size instead of A4 by default
   [X] allow execution of restricted list of programs via \write18
   [X] create all format files
   [X] install macro/font doc tree
   [X] install macro/font source tree
   [ ] create symlinks to standard directories

 <V> set up for portable installation

Actions:
 <I> start installation to hard disk
 <P> save installation profile to 'texlive.profile' and exit
 <H> help
 <Q> quit

Enter command: I

4: 数十分待機
5: こんなことを言われるのでパスを通す.

Welcome to TeX Live!

See /usr/local/texlive/2019/index.html for links to documentation.
The TeX Live web site (https://tug.org/texlive/) contains any updates and
corrections. TeX Live is a joint project of the TeX user groups around the
world; please consider supporting it by joining the group best for you. The
list of groups is available on the web at https://tug.org/usergroups.html.

Add /usr/local/texlive/2020/texmf-dist/doc/man to MANPATH.
Add /usr/local/texlive/2020/texmf-dist/doc/info to INFOPATH.
Most importantly, add /usr/local/texlive/2020/bin/x86_64-linux
to your PATH for current and future sessions.
Logfile: /usr/local/texlive/2020/install-tl.log

年(2020)は入ったバージョンにより異なります.

6: パスを通す
手っ取り早いのは ~/.bashrc に下記を追記。

~/.bashrc
export PATH="$PATH:/usr/local/texlive/2020/bin/x86_64-linux"
export MANPATH="$MANPATH:/usr/local/texlive/2020/texmf-dist/doc/man"
export INFOPATH="$INFOPATH:/usr/local/texlive/2020/texmf-dist/doc/info"

最低限はこれでOK.コマンドでやるなら

$ echo 'export PATH="$PATH:/usr/local/texlive/2021/bin/x86_64-linux"' >> ~/.bashrc
$ echo 'export MANPATH="$MANPATH:/usr/local/texlive/2021/texmf-dist/doc/man"' >> ~/.bashrc
$ echo 'export INFOPATH="$INFOPATH:/usr/local/texlive/2021/texmf-dist/doc/info"' >> ~/.bashrc

source ~/.bashrc は忘れないで下さい.このとき,.bashrcなどに書き,スーパーユーザーが認識できない状態にしてしまうと,この先 mktexlsrなどができなくなるので,sudo mktexlsrの注意事項などの処理が必要になる.

emath導入(したいなら)

フォント導入

TexLive2020以降、デフォルトのフォントが原ノ味フォントになっていて結構きれいです。このままでもいいとは思います。

Ubuntu18.04ではNotoSansCJK-Regular.ttc: "Noto Sans CJK JP" "Regular"などといったNoto系のフォントがデフォルトで入っていてデフォルトのフォントになっている.pxchfonで簡単に埋め込むことができ,源ノ明朝、源ノ角ゴシックとほぼ同じらしいので,これを使ってみる.

  1. /usr/share/fonts/ にフォントがある./usr/share/fonts/opentype/noto/ の中にNoto系のものが入っている.
  2. /usr/local/texlive/texmf-local/fonts/ がTeXのフォント置き場.ここにシンボリックリンクを張りたい
  3. NotoSansCJK-*は /usr/local/texlive/texmf-local/fonts/opentype/google/notosanscjk/ ,NotoSerifCJKは /usr/local/texlive/texmf-local/fonts/opentype/google/notoserifcjk/ にないといけない(pxchfonの関係)
  4. シンボリックリンクを張ったら,mktexlsr で更新(下記).

やったこと

ここでの処理は ~/.bashrc にパスを書いたときの処理.ちゃんと環境変数にすれば,最初の2行と sudo mktexlsr でOK.

sudo ln -s /usr/share/fonts/opentype/noto/NotoSansCJK-* /usr/local/texlive/texmf-local/fonts/opentype/google/notosanscjk/
sudo ln -s /usr/share/fonts/opentype/noto/NotoSerifCJK-* /usr/local/texlive/texmf-local/fonts/opentype/google/notoserifcjk/
sudo su
source .bashrc
mktexlsr

WSL2を用いていてWindows側のフォントを用いたい場合

例えば游明朝・游ゴシックなら

sudo mkdir /usr/local/texlive/texmf-local/fonts/truetype/windows/YuWin
sudo ln -s /mnt/c/Windows/Fonts/yumin* /usr/local/texlive/texmf-local/fonts/truetype/windows/YuWin/
sudo ln -s /mnt/c/Windows/Fonts/YuGoth* /usr/local/texlive/texmf-local/fonts/truetype/windows/YuWin/

sudo su
source .bashrc
mktexlsr

ここまでできれば

\documentclass[dvipdfmx, class=jsarticle]{standalone}
\usepackage{graphicx}
\usepackage{emath}
\usepackage[deluxe]{otf}
\usepackage[noto-otc]{pxchfon}

が動く.

sudo mktexlsrの注意事項

  1. 適当に入れ,パスを.bashercに書いてexportする感じにすると,あくまでユーザーの中にある
  2. TeXLiveは普通 /usr 以下に入れるが,ということは sudo が必要

このとき,sudoしても~/.bashrcはユーザーのものであってスーパーユーザーのものではないのでパスが読み込まれない.(sudoが読めるように環境変数にしてもいいが…)このときは

sudo su
source .bashrc
mktexlsr

のような手順を踏む必要があることを覚えておかないといけない.

一番単純なコンパイルのためのシェルスクリプト?

pdfplatex.sh
filepath=$1
base=`basename ${filepath}`
dir=`dirname ${filepath}`
filename=${base%.*}

platex -shell-escape --synctex=1 -jobname=${dir}/${filename} ${filepath}
dvipdfmx -o ${dir}/${filename}.pdf ${dir}/${filename}
ls ${dir}/${filename}* | grep -v -e ${dir}/${filename}.tex -e ${dir}/${filename}.pdf | xargs rm

.texファイルを引数に指定すると,texからpdfを生成(bibtexなどは考えていない).また,中間ファイルを全て削除している.

実行時には

sh pdfplatex.sh /path/to/target_file.tex

で実行できます。

Ubuntuでのapt利用時のTeXLiveアンインストール方法

質問

TeXLive2019利用時?にstandaloneクラス利用で,

\documentclass[dvipdfmx,tikz]{standalone}

ではなく,

\documentclass{standalone}
\usepackage{tikz}

とするとなぜか同じサイズの空白ページが1ページ出力されてしまいます.バグ修正の方法をご存じの方がいらっしゃいましたらコメント等で教えていただけると幸いです.

答え

@Yarakashi_Kikohshi 様よりコメントをいただき、解決しましたので載せておきます。 \documentclass[tikz]{standalone}

\documentclass[multi=tikzpicture,varwidth=false,dvipdfmx]{standalone}
\usepackage{tikz}

と同義のためこうなるとのことでした。dvipdfmx以外のオプションについては以下のことをしているようです。

  • multi=tikzpicture でそれぞれのtikzpicture環境を独立したページになるように処理
  • varwidth=false でstandaloneパッケージの横幅の制約を解除

standaloneパッケージのマニュアルのtikzオプション部にたしかに説明がありました。ありがとうございました。

25
26
9

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
25
26