texdoc で使う PDF ビューアーを設定する

Table of Contents
  • ## 背景
  • ## 前提
  • ## 手順

texdoc でマニュアルを読むときに使用する PDF ビューアーをシステムデフォルトのものから別のものに変更する。

## 背景

TeX\TeXLaTeX\LaTeXを使って文書作成をしていたときに、PGF や beamer などパッケージのドキュメントを参照したくなるタイミングが何度かあった。 そうしたときには例えば texdoc pgf とコマンドを実行すれば当該のマニュアルを閲覧できるが、このときシステムデフォルトの PDF ビューアーが使用されるようである。 そのため私の手元の Mac ではプレビューアプリで開かれる。 しかし文書編集中の PDF ビューアーとしては普段 Skim を使っており、別々のビューアーが起動するのが煩わしく思えた。 そこでこの不満を解消するために、texdoc コマンドからマニュアルを開くときにも Skim を使用するよう設定できないかと考えた。

## 前提

texdoc のバージョンは 3.2.2 とする.

% texdoc -V
Texdoc 3.2.2 (2020-09-16)

Copyright 2008-2020 Manuel Pégourié-Gonnard, Takuto Asakura, the TeX Live Team.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.

## 手順

コマンド texdoc -h で表示されるヘルプの内容の中に、次の記述がある:

Actions:
  -h, --help        Print this help message.
  -V, --version     Print the version number.
  -f, --files       Print the list of configuration files used.
  --just-view FILE  Display FILE, given with full path (no searching).

コンフィグファイルがあるようなので、その内容を確認する。

% texdoc -f
/usr/local/texlive/2020/texmf-dist/scripts/texdoc/texdoclib.tlu 3.2.2
Configuration file(s):
    active      /usr/local/texlive/2020/texmf-dist/texdoc/texdoc.cnf
Recommended file(s) for personal settings:
    /Users/ykyki/Library/texmf/texdoc/texdoc.cnf

指定されている場所に texdoc.cnf ファイルを新規作成すればよさそうである.

その前に、既にアクティブになっているファイルの内容を確認してみたところ、次のような記述があった:

...

 22
 23 # General settings
 24 # ================
 25
 26 ## Viewers
 27
 28 # Defaults depend on what is available on your system, as well as your desktop
 29 # environment. Here are a few examples.
 30 #
 31 # %s is optional and stands for the filename.
 32 #
 33 # viewer_pdf = xpdf             # works
 34 # viewer_pdf = xpdf %s &        # works even better
 35
 36 # If you want to enable support for zipped documentation (see below),
 37 # you may want to adapt viewer_* so that it starts a subshell:
 38 #
 39 # viewer_pdf = (xpdf %s) &
 40 #
 41 # Otherwise, the & will have no effect since the viewing command is followed by

 ...

ここで viewer_pdf という値を指定すればよさそうである。 そこで実際に ~/Library/texmf/texdoc/texdoc.cnf ファイルを新規作成した後、次の一行を記入した:

viewer_pdf = open -a /Applications/Skim.app %s &

私は Skim を使いたかったためこのように設定した。

保存した後に試しに texdoc pgf を実行してみたところ、ちゃんと Skim で開かれた。 Skim にはタブ機能があるため、文章編集時に感じていた不満点も解消された。

また、texdoc -f を再度実行してみると、新規追加した設定ファイルが読み込まれていることが確認できた。


WSL+TeX Live環境を一から構築する

Table of Contents
  • ## 目標
  • ## 手順
  • ### WSL のインストール
  • ### WSL の初期設定
  • ### tmux のインストール
  • ### フォントの設定
  • ### vim の設定
  • ### TeX 環境構築
  • ## 参考

個人的な環境構築のログです。

WSL の環境を再構築することにした。これを機に、今まで Windows 上で構築していた TeX 環境も WSL 上に移動することにする。

## 目標

  • WSL をインストールするとデフォルトでは C ドライブ配下に置かれてしまうが、これを変更する。今回は D:\wsl\Ubuntu1804 に置く
  • tmux の環境も整える。コピペを簡単にできるように
  • Vim も最低限のコピペができるように程度には設定する

## 手順

### WSL のインストール

  • WSL は一度使っていたので、Windows 側の初期設定は省略
  • WSL を Microsoft Store からインストールしてそのまま使っていると、C ドライブ配下に WSL のファイルが溜まっていってしまう。筆者の PC の C ドライブの残量が心許なくなってきたので、これを別の場所に移動したい。そのためにはDDoSolitary/LxRunOfflineを使う
  • このレポジトリの説明にも書かれているように、Chocolatey や Scoop 経由あるいは直接バイナリファイルをダウンロードして lxrunoffline をインストールする
    • 自分は Chocolatey を使うのでchoco install lxrunoffline。PowerShell は管理者権限で立ち上げておく
    • インストールが完了したら PowerShell からlxrunoffline versionで動作確認。今回は v3.4.1 だった
    • lxrunofflineとオプションなし叩けば、サポートされているアクション一覧が見られる
  • 自分は Chocolatey を使うのでchoco install lxrunoffline。PowerShell は管理者権限で立ち上げておく
  • インストールが完了したら PowerShell からlxrunoffline versionで動作確認。今回は v3.4.1 だった
  • lxrunofflineとオプションなし叩けば、サポートされているアクション一覧が見られる
  • WSL のディストリビューションとして、今回は Ubuntu-18.04 を使う。これを Microsoft Store からインストールする
  • インストールが完了したら起動し、ユーザー名とパスワードを入力したら exit
  • PowerShell を管理者権限で立ち上げる
  • lxrunoffline listでインストールされたか確認。Ubuntu-18.04 があるかをチェック
    • アンインストールするときはlxrunoffline uninstall -n Ubuntu-18.04
    • wslconfig /listで WSL として認識されているかチェックする
    • 必要であればwslconfig /setdefault Ubuntu-18.04でデフォルトのボリュームに設定する。lxrunoffline set-default -n Ubuntu-18.04でもよい
  • アンインストールするときはlxrunoffline uninstall -n Ubuntu-18.04
  • wslconfig /listで WSL として認識されているかチェックする
  • 必要であればwslconfig /setdefault Ubuntu-18.04でデフォルトのボリュームに設定する。lxrunoffline set-default -n Ubuntu-18.04でもよい
  • インストールした Ubuntu-18.04 を移動する
    • lxrunoffline move -n Ubuntu-18.04 -d D:\wsl\Ubuntu1804
    • もし「WSL が起動中で移動できない」といった旨のエラーが出た場合には、wsl -t Ubuntu-18.04で止める
  • lxrunoffline move -n Ubuntu-18.04 -d D:\wsl\Ubuntu1804
  • もし「WSL が起動中で移動できない」といった旨のエラーが出た場合には、wsl -t Ubuntu-18.04で止める
  • lxrunoffline summary -n Ubuntu-18.04でディレクトリが変更されているか確認
  • WSL が起動するかチェックする。デフォルトに設定してあればwsl。そうでなければlxrunoffline run -n Ubuntu-18.04
  • 確認できたらexit。PowerShell も終了させる

### WSL の初期設定

  • WSL を起動する。Powershell から立ち上げるもよし。自分は Windows Terminal を使っている
  • sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list
  • sudo apt update
  • sudo apt upgrade
  • sudo apt install language-pack-ja
  • sudo dpkg-reconfigure tzdata
    • タイムゾーンを Asia->Tokyo に設定
    • dateで確認できる
  • タイムゾーンを Asia->Tokyo に設定
  • dateで確認できる
  • chmod や環境変数の設定
    • echo $PATHすると、Windows の環境変数まで引き継いでしまっていることが分かる。パスにスペースを含んでいたりして不具合の元になるので、これを修正したい
    • sudo vim /etc/wsl.conf
    • 次を記入して終了
      [automount]
      options = "metadata"
      
      [interop]
      appendWindowsPath = false
  • echo $PATHすると、Windows の環境変数まで引き継いでしまっていることが分かる。パスにスペースを含んでいたりして不具合の元になるので、これを修正したい
  • sudo vim /etc/wsl.conf
  • 次を記入して終了
    [automount]
    options = "metadata"
    
    [interop]
    appendWindowsPath = false
  • 保存したらexit
  • 環境変数の設定の変更を反映させるために、PowerShell からwsl -t Ubuntu-18.04で確実に終了させる
  • その後 WSL に再ログイン。echo $PATHで変わっているかチェック

### tmux のインストール

  • 画面分割したり、画面上の文字列をコピーしたりしたいので、tmux を使う
  • sudo apt install git automake bison build-essential pkg-config libevent-dev libncurses5-dev
  • 作業用ファイルを作って移動
    • mkdir ~/temp
    • cd ~/temp
  • mkdir ~/temp
  • cd ~/temp
  • git clone -b 3.1 https://github.com/tmux/tmux
  • cd tmux
  • sh autogen.sh
  • ./configure && make
  • sudo make install
  • tmux -Vで確認。今回は 3.1 をインストールした
  • インストールに使ったファイルを削除
    • cd ../
    • rm -rf ./tmux
  • cd ../
  • rm -rf ./tmux
  • tmux の設定
    • vim ~/.tmux.conf。次のように記述して保存(普段自分が使っている設定)
      set-option -g default-shell /bin/bash
      
      # tmuxを256色表示できるようにする
      set-option -g default-terminal screen-256color
      set -g terminal-overrides 'xterm:colors=256'
      
      # キーストロークのディレイを減らす
      set -sg escape-time 1
      
      # ウィンドウのインデックスを1から始める
      set -g base-index 1
      # ペインのインデックスを1から始める
      setw -g pane-base-index 1
      
      # 設定ファイルをリロードする
      bind r source-file ~/.tmux.conf \; display "Reloaded!"
      
      # prefixキーをC-qに変更
      set -g prefix C-w
      unbind C-b
      
      # ステータスバーをトップに配置する
      set-option -g status-position top
      
      # 左右のステータスバーの長さを決定する
      set-option -g status-left-length 90
      set-option -g status-right-length 90
      
      # #P => ペイン番号
      # 最左に表示
      set-option -g status-left '#H:[#P]'
      
      # Wi-Fi、バッテリー残量、現在時刻
      # 最右に表示
      set-option -g status-right '#(wifi) #(battery --tmux) [%Y-%m-%d(%a) %H:%M]'
      
      # ステータスバーを1秒毎に描画し直す
      set-option -g status-interval 1
      
      # センタライズ(主にウィンドウ番号など)
      set-option -g status-justify centre
      
      # vimのキーバインドでペインを移動する
      bind h select-pane -L
      bind j select-pane -D
      bind k select-pane -U
      bind l select-pane -R
      
      # vimのキーバインドでペインをリサイズする
      bind -r H resize-pane -L 5
      bind -r J resize-pane -D 5
      bind -r K resize-pane -U 5
      bind -r L resize-pane -R 5
      
      # \ でペインを縦分割する
      bind \\ split-window -h
      # - でペインを縦分割する
      bind - split-window -v
      
      # マウス操作を有効にする
      set-option -g mouse on
      # bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
      
      # コピーモードを設定する
      # コピーモードでvimキーバインドを使う
      setw -g mode-keys vi
      bind -T copy-mode-vi v send -X begin-selection
      bind -T copy-mode-vi V send -X select-line
      bind -T copy-mode-vi C-v send -X rectangle-toggle
      bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xsel -bi'
      bind -T copy-mode-vi Y send-keys -X copy-pipe 'xsel -bi'
      
      # ペインボーダーの色を設定する
      set -g pane-border-style fg="green"
      set -g pane-border-style bg="black"
      # アクティブなペインを目立たせる
      set -g pane-active-border-style fg="white"
      set -g pane-active-border-style bg="yellow"
    • クリップボードへのコピーをできるようにしていく。ついでに GUI を使うための設定をする
    • sudo apt install xsel
    • GUI のために X410 を使う。無料の VcXsrv でも大体同じ動作が再現できるはず
      • X410 を Windows 側で立ち上げておく。自分は自動起動の設定をしている
      • X410 の設定をしていく
      • echo '[ -z $DISPLAY ] && export DISPLAY=127.0.0.1:0.0' >> ~/.bashrc
      • source ~/.bashrc
      • echo $DISPLAYで確認
      • sudo apt install dbus-x11
      • sudo dbus-uuidgen --ensure
      • dbus-launch --exit-with-x11
    • X410 を Windows 側で立ち上げておく。自分は自動起動の設定をしている
    • X410 の設定をしていく
    • echo '[ -z $DISPLAY ] && export DISPLAY=127.0.0.1:0.0' >> ~/.bashrc
    • source ~/.bashrc
    • echo $DISPLAYで確認
    • sudo apt install dbus-x11
    • sudo dbus-uuidgen --ensure
    • dbus-launch --exit-with-x11
    • xeyes を使って、動作チェック
      • sudo apt install x11-apps
      • xeyesを起動して目を回せれば成功
    • sudo apt install x11-apps
    • xeyesを起動して目を回せれば成功
    • ここまでできれば、tmux でもコピーができるようになっている
      • もしできなければ X410 や WSL を再起動してみる
    • もしできなければ X410 や WSL を再起動してみる
  • vim ~/.tmux.conf。次のように記述して保存(普段自分が使っている設定)
    set-option -g default-shell /bin/bash
    
    # tmuxを256色表示できるようにする
    set-option -g default-terminal screen-256color
    set -g terminal-overrides 'xterm:colors=256'
    
    # キーストロークのディレイを減らす
    set -sg escape-time 1
    
    # ウィンドウのインデックスを1から始める
    set -g base-index 1
    # ペインのインデックスを1から始める
    setw -g pane-base-index 1
    
    # 設定ファイルをリロードする
    bind r source-file ~/.tmux.conf \; display "Reloaded!"
    
    # prefixキーをC-qに変更
    set -g prefix C-w
    unbind C-b
    
    # ステータスバーをトップに配置する
    set-option -g status-position top
    
    # 左右のステータスバーの長さを決定する
    set-option -g status-left-length 90
    set-option -g status-right-length 90
    
    # #P => ペイン番号
    # 最左に表示
    set-option -g status-left '#H:[#P]'
    
    # Wi-Fi、バッテリー残量、現在時刻
    # 最右に表示
    set-option -g status-right '#(wifi) #(battery --tmux) [%Y-%m-%d(%a) %H:%M]'
    
    # ステータスバーを1秒毎に描画し直す
    set-option -g status-interval 1
    
    # センタライズ(主にウィンドウ番号など)
    set-option -g status-justify centre
    
    # vimのキーバインドでペインを移動する
    bind h select-pane -L
    bind j select-pane -D
    bind k select-pane -U
    bind l select-pane -R
    
    # vimのキーバインドでペインをリサイズする
    bind -r H resize-pane -L 5
    bind -r J resize-pane -D 5
    bind -r K resize-pane -U 5
    bind -r L resize-pane -R 5
    
    # \ でペインを縦分割する
    bind \\ split-window -h
    # - でペインを縦分割する
    bind - split-window -v
    
    # マウス操作を有効にする
    set-option -g mouse on
    # bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
    
    # コピーモードを設定する
    # コピーモードでvimキーバインドを使う
    setw -g mode-keys vi
    bind -T copy-mode-vi v send -X begin-selection
    bind -T copy-mode-vi V send -X select-line
    bind -T copy-mode-vi C-v send -X rectangle-toggle
    bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xsel -bi'
    bind -T copy-mode-vi Y send-keys -X copy-pipe 'xsel -bi'
    
    # ペインボーダーの色を設定する
    set -g pane-border-style fg="green"
    set -g pane-border-style bg="black"
    # アクティブなペインを目立たせる
    set -g pane-active-border-style fg="white"
    set -g pane-active-border-style bg="yellow"
  • クリップボードへのコピーをできるようにしていく。ついでに GUI を使うための設定をする
  • sudo apt install xsel
  • GUI のために X410 を使う。無料の VcXsrv でも大体同じ動作が再現できるはず
    • X410 を Windows 側で立ち上げておく。自分は自動起動の設定をしている
    • X410 の設定をしていく
    • echo '[ -z $DISPLAY ] && export DISPLAY=127.0.0.1:0.0' >> ~/.bashrc
    • source ~/.bashrc
    • echo $DISPLAYで確認
    • sudo apt install dbus-x11
    • sudo dbus-uuidgen --ensure
    • dbus-launch --exit-with-x11
  • X410 を Windows 側で立ち上げておく。自分は自動起動の設定をしている
  • X410 の設定をしていく
  • echo '[ -z $DISPLAY ] && export DISPLAY=127.0.0.1:0.0' >> ~/.bashrc
  • source ~/.bashrc
  • echo $DISPLAYで確認
  • sudo apt install dbus-x11
  • sudo dbus-uuidgen --ensure
  • dbus-launch --exit-with-x11
  • xeyes を使って、動作チェック
    • sudo apt install x11-apps
    • xeyesを起動して目を回せれば成功
  • sudo apt install x11-apps
  • xeyesを起動して目を回せれば成功
  • ここまでできれば、tmux でもコピーができるようになっている
    • もしできなければ X410 や WSL を再起動してみる
  • もしできなければ X410 や WSL を再起動してみる

### フォントの設定

  • GUI で日本語が文字化けしてしまう。そこで Windows からフォントを持ってくる
    • GUI の表示テストとして自分は lxterminal を使った。これは次のようにしてインストール
      • sudo apt install lxterminal
    • sudo apt install lxterminal
    • lxterminal &で起動すると、ターミナルが開かれる。適当にディレクトリを移動してみて、日本語を含むファイル名がある場所などを覗いてみる。すると文字化けしている
  • GUI の表示テストとして自分は lxterminal を使った。これは次のようにしてインストール
    • sudo apt install lxterminal
  • sudo apt install lxterminal
  • lxterminal &で起動すると、ターミナルが開かれる。適当にディレクトリを移動してみて、日本語を含むファイル名がある場所などを覗いてみる。すると文字化けしている
  • sudo apt install fontconfig
  • sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows
  • sudo fc-cache -fv
  • この後、lxterminal で表示チェック

### vim の設定

  • 今回は取り敢えずクリップボードへのコピーができる程度に
  • sudo apt install vim-gtk
  • vim ~/.vimrcで次を入力して保存(これも普段の自分が使っている設定)
    " setting
    "文字コードをUFT-8に設定
    set fenc=utf-8
    " 入力中のコマンドをステータスに表示する
    set showcmd
    " バックアップファイルを作らない
    set nobackup
    " スワップファイルを作らない
    set noswapfile
    " 編集中のファイルが変更されたら自動で読み直す
    set autoread
    " バッファが編集中でもその他のファイルを開けるように
    set hidden
    " ヤンクしたときに自動的にクリップボードに送る
    if has('nvim')
        " xclipをインストールしているとする
        set clipboard+=unnamedplus
    else
        " vim-gtkでvimをインストールしているとする(xselも必要?)
        set clipboard=unnamedplus
    endif
    
    " 見た目系
    " 行番号を表示
    set number
    " 現在の行を強調表示
    " set cursorline
    " インデントはスマートインデント
    set smartindent
    " ビープ音を可視化
    set visualbell
    " 括弧入力時の対応する括弧を表示
    set showmatch
    " ステータスラインを常に表示
    set laststatus=2
    " 不可視文字を可視化
    set list listchars=tab:+-
    
    " 操作系
    " コマンドラインの補完
    set wildmode=list:longest
    " 行末の1文字先までカーソルを移動できるように
    set virtualedit=onemore
    " 折り返し時に表示行単位での移動できるようにする
    nnoremap j gj
    nnoremap k gk
    " ESC連打でハイライト解除
    nmap <Esc><Esc> :nohlsearch<CR><Esc>
    
    inoremap <silent> jj <ESC>
    
    " Tab系
    set tabstop=4
    set shiftwidth=0
    set softtabstop=4
    set smarttab
    
    " 検索系
    " 検索文字列が小文字の場合は大文字小文字を区別なく検索する set ignorecase
    " 検索文字列に大文字が含まれている場合は区別して検索する
    set smartcase
    " 検索文字列入力時に順次対象文字列にヒットさせる
    set incsearch
    " 検索時に最後まで行ったら最初に戻る
    set wrapscan
    " 検索語をハイライト表示
    set hlsearch
    
    " シンタックスハイライトの有効化
    syntax enable
  • これで Vim でヤンクしたときにクリップボードへコピーされる

### TeX 環境構築

  • 殆ど次のページの通りに進める。解説はそちらを参照
  • TeX Live を使おう ── 主に Linux ユーザのために ──
  • sudo の設定
    • vim ~/.bashrcして次を追記: alias sudo='sudo env PATH=$PATH'
    • source ~/.bashrc
    • aliasで追加されているか確認
  • vim ~/.bashrcして次を追記: alias sudo='sudo env PATH=$PATH'
  • source ~/.bashrc
  • aliasで追加されているか確認
  • cd ~/temp
  • wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
  • tar -zxvf install-tl-unx.tar.gz
  • cd install-tl-20200426/
    • ディレクトリの名前は適宜合わせる
  • ディレクトリの名前は適宜合わせる
  • sudo ./install-tl
    • 画面が表示されたら, Iと一文字入力してインストールを始める
    • 1 時間ぐらいかかった
  • 画面が表示されたら, Iと一文字入力してインストールを始める
  • 1 時間ぐらいかかった
  • whereis texlivetexlive: /usr/local/texliveと確認
  • 不要になったファイルを削除する
    • cd ~/temp
    • rm install-tl-unx.tar.gz
    • rm -rf install-tl-20200426/
  • cd ~/temp
  • rm install-tl-unx.tar.gz
  • rm -rf install-tl-20200426/
  • パスを設定する
    • vim ~/.profileで次を追記
          PATH="/usr/local/texlive/2020/bin/x86_64-linux:$PATH"
          MANPATH="/usr/local/texlive/2020/texmf/doc/man:$MANPATH"
    • source ~/.profile
    • echo $PATHで変更確認
  • vim ~/.profileで次を追記
        PATH="/usr/local/texlive/2020/bin/x86_64-linux:$PATH"
        MANPATH="/usr/local/texlive/2020/texmf/doc/man:$MANPATH"
  • source ~/.profile
  • echo $PATHで変更確認
  • texlive-dummy の設定
    • sudo apt install equivs
    • wget http://www.tug.org/texlive/files/debian-equivs-2020-ex.txt
    • 手順に沿ってequivs-buildをしたいが、fakerootまわりで実行が失敗する。次を実行して対処
      • sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp
    • sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp
    • equivs-build debian-equivs-2020-ex.txt
    • 前行で生成された.deb ファイルをインストールしようとするとパッケージ不足のエラーが出たので、追加しておく
      • sudo apt install freeglut3
    • sudo apt install freeglut3
    • sudo dpkg -i texlive-local_2020-1_all.deb
    • これでダミーの設定は終わり。不要になったファイルを削除しておく
      • rm debian-equivs-2020-ex.txt
      • rm texlive-local_2020-1_all.deb
    • rm debian-equivs-2020-ex.txt
    • rm texlive-local_2020-1_all.deb
  • sudo apt install equivs
  • wget http://www.tug.org/texlive/files/debian-equivs-2020-ex.txt
  • 手順に沿ってequivs-buildをしたいが、fakerootまわりで実行が失敗する。次を実行して対処
    • sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp
  • sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp
  • equivs-build debian-equivs-2020-ex.txt
  • 前行で生成された.deb ファイルをインストールしようとするとパッケージ不足のエラーが出たので、追加しておく
    • sudo apt install freeglut3
  • sudo apt install freeglut3
  • sudo dpkg -i texlive-local_2020-1_all.deb
  • これでダミーの設定は終わり。不要になったファイルを削除しておく
    • rm debian-equivs-2020-ex.txt
    • rm texlive-local_2020-1_all.deb
  • rm debian-equivs-2020-ex.txt
  • rm texlive-local_2020-1_all.deb
  • ガイドに沿ってファイルの確認をしてみる
    • sudo updatedb
    • locate beamer | grep texmf | less
  • sudo updatedb
  • locate beamer | grep texmf | less
  • tlmgr のアップデート
    • sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
    • sudo tlmgr update --self
    • sudo tlmgr update --listで確認
    • もしこのとき 'skipping forcibly removed package <package_name>' といったエラーが表示されていたとする. このときビルドが上手くいかないことがある。次のように対処
      • sudo tlmgr update --reinstall-forcibly-removed --all
      • 再び確認してエラーがなくなっていることを確認する
    • sudo tlmgr update --reinstall-forcibly-removed --all
    • 再び確認してエラーがなくなっていることを確認する
  • sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
  • sudo tlmgr update --self
  • sudo tlmgr update --listで確認
  • もしこのとき 'skipping forcibly removed package <package_name>' といったエラーが表示されていたとする. このときビルドが上手くいかないことがある。次のように対処
    • sudo tlmgr update --reinstall-forcibly-removed --all
    • 再び確認してエラーがなくなっていることを確認する
  • sudo tlmgr update --reinstall-forcibly-removed --all
  • 再び確認してエラーがなくなっていることを確認する
  • フォントの設定は後回しにして、.tex ファイルから PDF ファイルが生成できるのかテストしてみる
    • PDF ビューアーとして zathura を使ってみる。そのためにインストール
      • sudo apt install zathura
    • sudo apt install zathura
    • 適当にテスト用ファイルを作る
      • cd ~/temp
      • vim test.texして次を記入
        \documentclass[uplatex]{jsarticle}
        
        \begin{document}
            テスト用のファイルです.
            \begin{enumerate}
                \item $f \colon X \to Y$,
                \item $f (x) = \sin (x^2 + 1)$.
            \end{enumerate}
        \end{document}
    • cd ~/temp
    • vim test.texして次を記入
      \documentclass[uplatex]{jsarticle}
      
      \begin{document}
          テスト用のファイルです.
          \begin{enumerate}
              \item $f \colon X \to Y$,
              \item $f (x) = \sin (x^2 + 1)$.
          \end{enumerate}
      \end{document}
  • PDF ビューアーとして zathura を使ってみる。そのためにインストール
    • sudo apt install zathura
  • sudo apt install zathura
  • 適当にテスト用ファイルを作る
    • cd ~/temp
    • vim test.texして次を記入
      \documentclass[uplatex]{jsarticle}
      
      \begin{document}
          テスト用のファイルです.
          \begin{enumerate}
              \item $f \colon X \to Y$,
              \item $f (x) = \sin (x^2 + 1)$.
          \end{enumerate}
      \end{document}
  • cd ~/temp
  • vim test.texして次を記入
    \documentclass[uplatex]{jsarticle}
    
    \begin{document}
        テスト用のファイルです.
        \begin{enumerate}
            \item $f \colon X \to Y$,
            \item $f (x) = \sin (x^2 + 1)$.
        \end{enumerate}
    \end{document}
  • uplatex test.tex
  • dvipdfmx test.dvi
  • zathura test.pdf
    • zathura は Vim のキーバインドで操作ができる。j で下方スクロール、k で上方スクロール、q で終了など
  • zathura は Vim のキーバインドで操作ができる。j で下方スクロール、k で上方スクロール、q で終了など
  • これにて最小限のセッティングは完了!
  • vscode で作業したときには、Remote WSL から今回のディストリビューションに接続し、LaTeX Workshop をリモートインストールするなりして、ビルドする

## 参考


LaTeX Workshop で subflies まわりの挙動に変更があったので対応する

Table of Contents
  • ## 変更された機能について
  • ## 解決方法

vscode で TeX ファイルを編集するときに LaTeX Workshop というエクステンションを普段利用していました. この拡張機能の中で, subflies という TeX パッケージを含んだファイルをビルドするときの挙動が最近変更されていたようで, 初見でちょっと戸惑いました.

今までのような動作を復元するために設定調整をしたので, 備忘録としてその方法を残しておきます.

## 変更された機能について

例えば \documentclass[../main.tex]{subfiles} のような宣言を含んだサブファイルをビルドしようとすると, 'Subfiles package detected. Which file to build?' という文とともに 'Default root file' または 'Subfiles package root file' という選択肢が表示されます. 少し前まではこのような選択肢はありませんでした.

LaTeX-Workshop の 変更ログ を見ると, 2020 年 02 月 12 日付 8.7.2 の変更 のときにこのオプションが追加されたようです.

この選択肢は latex-workshop.latex.rootFile.doNotPrompt の値を変更することで表示の有無を切り替えることができます (詳細は Wiki の説明を参照).

上の方法だけで解決できればよかったのですが, 自分の環境だとこれだけでは足りませんでした.

というのも, サブファイルをビルドしたときに生成されるファイル (.aux や .pdf など) が ルートファイル (上の宣言では main.tex) があるディレクトリに出力されしまいました. サブファイルをビルドするときにはサブファイルがあるディレクトリに出力する, というのが今までの動作でしたが, これが変更されていたようです.

この変更については同じく Wiki に説明があります. そこに書かれているように $do_cd = 1; という設定を追加することで, 今まで通りの動作が復元できました.

## 解決方法

選択肢の有無を切り替えるには, 次の設定を vscode の設定 (setting.json など) に追記する:

"latex-workshop.latex.rootFile.doNotPrompt": true,

サブファイルのあるディレクトリにファイル出力するためには, 同じく vscode の設定に次のような感じで $do_cd = 1; の設定を追記する:

{
    "name": "latexmk",
    "command": "latexmk",
    "args": [
        "-e",
        "$latex=q/uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode -file-line-error %S/",
        "-e",
        "$dvipdf=q/dvipdfmx -g 1.5pt %O -o %D %S/",
        "-e",
        "$do_cd=1",
        "-norc",
        "-gg",
        "-pdfdvi",
        "%DOC%"
    ]
},

Brouwer の不動点定理 (発表資料)

Table of Contents
  • ## 経緯
  • ## PDF

## 経緯

次の PDF ファイルは, 2019 年 5 月にサークル内で行われた講演のために用意した資料です. ただし一部編集を加えてあります. 内容の大部分は配布当時のものと同じですが, 誤字の修正・筆者名の変更・リンクの追加など少々の変更が施されています.

聴講者の中に学部新入生が何人かいるだろうと想定して準備していたため, 高校数学と実数の完備性についての知識があれば読めることを目指して書いていました (おそらく).

講演の発表時間が 1 時間半だったこともあり, いま改めて読み直すと内容がちょっと早足に感じますね. とはいえ, 不動点定理の証明のアイデアは伝わるものになっていると思います.

## PDF


表示テスト用

Table of Contents

    ディスプレイ数式を表示:

    (0sinxxdx)2=k=0(2k)!22k(k!)212k+1=k=14k24k21=π2 % equations here \left( \int_0^\infty \frac{\sin x}{\sqrt{x}} dx \right)^2 = \sum_{k=0}^\infty \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1} = \prod_{k=1}^\infty \frac{4k^2}{4k^2 - 1} = \frac{\pi}{2}

    インライン数式 U0{x1,x2,x3,}=U_0 \cap \{x_1, x_2, x_3, \cdots\} = \emptyset , xn+yn=znx^n + y^n = z^n を表示する

    画像を230822_児玉永見セミナー45図を表示.

    別の段落.

    230910_可算性とk-空間の系統図

    別の段落.