CygwinにTeXlive 2013公式パッケージを導入する

last update: 2013/11/22


CygwinにはTeX環境として、TeXliveのCygwin版が提供されており、それで基本的にことが足ります。
しかし、私はUbuntuなどでもOSのパッケージシステムとは別にTeXliveを管理しています。


そこで、敢えて公式のパッケージを導入しようと思います。

ダウンロードとインストール

# ミラーサーバーを選んでダウンロードします。
# ミラーサーバー一覧はtexwikiのtexliveの項にあります。
$ wget http://ftp.riken.go.jp/pub/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz

# アーカイブを展開します。
$ tar xvf install-tl-unx.tar.gz

# 展開したディレクトリに移動します。
# 末尾の数字は違うかもしれません。
$ cd install-tl-20131118/

# インストールコマンドを実行します。
$ ./install-tl --repository http://ring.airnet.ne.jp/pub/text/CTAN/systems/texlive/tlnet/
##### インストール設定が表示されます。
======================> TeX Live installation procedure <=====================

======>   Letters/digits in <angle brackets> indicate   <=======
======>   menu items for commands or options            <=======

 Detected platform: Intel x86 with Cygwin

 <B> binary platforms: 1 out of 21

 <S> set installation scheme (scheme-full)

 <C> customizing installation collections
     44 collections out of 45, disk space required: 3423 MB

 <D> directories:
   TEXDIR (the main TeX directory):
     /usr/local/texlive/2013
   TEXMFLOCAL (directory for site-wide local files):
     /usr/local/texlive/texmf-local
   TEXMFSYSVAR (directory for variable and automatically generated data):
     /usr/local/texlive/2013/texmf-var
   TEXMFSYSCONFIG (directory for local config):
     /usr/local/texlive/2013/texmf-config
   TEXMFVAR (personal directory for variable and automatically generated data):
     ~/.texlive2013/texmf-var
   TEXMFCONFIG (personal directory for local config):
     ~/.texlive2013/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

 <V> set up for portable installation

Actions:
 <I> start installation to hard disk
 <H> help
 <Q> quit

Enter command: 
##### 規定値のままで十分だったので、「I」を入力してインストールを開始します。
##
## 出力中略
##
##### 最後に以下のように出力されていることを確認して一段落です。
 Welcome to TeX Live!
Logfile: /usr/local/texlive/2013/install-tl.log

##### 更新ツール「tlmgr」にパスを通します。
$ /usr/local/texlive/2013/bin/i386-cygwin/tlmgr path add

これでおしまい。

ポイント

  • LINUX系のインストール手順をまねるのが基本。
  • su系は一切いらない。
  • 全部初期設定でも大丈夫。

追加設定

texwikiを参考に、extractbbなどの設定を行います。

pmetapostの追加

pmetapostなどを追加します。

$ tlmgr update --self --all
$ tlmgr repository add http://www.tug.org/~preining/tlptexlive/ tlptexlive
$ tlmgr pinning add tlptexlive "*"
$ tlmgr install pmetapost
$ tlmgr update --all

extractbbの設定 (:2013/11/22)

extractbbを設定しないと、Windowsでも簡単に作れるpng画像が表示できません。
以下に示す手順は少々鈍くさいですので、スマートで等価な方法でやってもらってかまいません。

##### texmf.cnfを作成します。
# まずTEXMFLOCALを確認します。
$ kpsewhich -var-value TEXMFLOCAL
/usr/local/texlive/2013/../texmf-local
# そのディレクトリに移動します。
$ cd /usr/local/texlive/texmf-local
# web2cというディレクトリを作成します。
$ mkdir web2c
# texmf.cnfを新規作成します。
$ touch texmf.cnf


そして、以下のように記入します(texwikiからの引用です)。

shell_escape_commands = \
bibtex,bibtex8,bibtexu,pbibtex,upbibtex,biber,\
kpsewhich,\
makeindex,mendex,texindy,\
mpost,pmpost,upmpost,\
repstopdf,epspdf,extractbb


さて、一通り終わったら次のコマンドを実行します。

mktexlsr

何か設定を弄ったときには

設定を弄ったときには、(実際はファイルが作られたり削除された場合のみで十分なのですが)次のコマンドを実行します。

$ mktexlsr
# Make tex "ls -R" という意味です。
# ファイルのありかを示すファイルを再構成します。

Cygwinにインストールしたソフトウェアを、Win側のcmd.exeから適当に使う

タイトルの通りです。やることは少ない。そして適当。

一時利用

一時利用するだけなら、以下のコマンドで動きます。

# Cygwinのインストールされた場所のバイナリにパスを通す。
C:\> set PATH=c:\cygwin\bin;%PATH%
# 日本語メッセージを表示させる。
C:\> set LANG=ja_JP.UTF-8

常用にあたって

普通に使っていくなら、上記のコマンドに相当することをユーザー環境変数に書き加えればよいでしょう。

しかし、ここで思うことがあります。

  • いつもCygwinのコマンドを使いたいわけではない。
  • 基本的にWindowsのコマンドを優先させ、Cygwinのコマンドを使いたいときだけそっちを優先させたい。

私の個人的な望みですけどね。

これを解決する、また拡張性のある方法はこれ。

  • パスの通っている場所、もしくはユーザーディレクトリのある場所にパスを通し、そこにバッチファイルを置く。
  • Cygwinにあるコマンドが必要なときにはこれを起動する。

作るファイルでは、先ほどのコマンドを指定すれば大丈夫です。

問題点

わかりきっている問題点や改善した方がうれしい点は以下の通りです。

  • cygwinのbinディレクトリにあるもので、拡張子「.exe」がついていないものは起動できない。
  • シェルではないので、aliasが使えない。
  • あくまでWindows環境なので、良くも悪くも環境変数がWindowsのもの。

ということなので「perldoc」とかは使えません。「gcc」や「git」、「ls」、「vim」とかは使えます。

TeXlive 2012から2013へアップデート(年をまたいで更新)する on Windows 7 (1:調査編)

お久しぶりでございます。今回は技術的な文章です。

現状

さて、TeXの環境としてWindowsではTeXliveを用いていますが、導入したのは昨年の話。つまり、2012年版なわけです。
最近友人とファイルのやりとりをしていて気がついたのですが、~.logに記述されているTeXのバージョンが違う。もちろん導入時期が違うせいですが、私のほうが古いので、更新をすることにしました。

C:\> tlmgr update --self --all
tlmgr.pl: The TeX Live versions supported by the repository
  (2013--2013)
do not include the version of the local installation
  (2012).
## 訳1:リポジトリのサポートしているTeXのバージョンは(2013--2013)です。
## 訳2:ローカルにインストールされているバージョン(2012)はサポートに含まれていません。

はぁ。左様でございますか。

tlmgrでどうにもできないようなので、検索しました。

調査

上手い検索ワードが見つからないせいなのか、なかなかこのアップデートの記事が出てきません。
とりあえず見つけたのが次のページです。

TeX Live 2013 のインストール
http://www.fugenji.org/~thomas/texlive-guide/install.html

Debianでの記事ですが、Windowsにも共通していそうな部分を要約するとこうです。

  • 年をまたいだ更新は、殆ど「新規インストール」と同じ。
  • 2012年のパッケージは、texlive関連ディレクトリの2012フォルダ内に全て収まっている。
  • 2013年のものをインストールすると同様に収まる。
  • つまり2012ディレクトリ内を弄らずに、2013をインストールできる。
  • 万が一2013が動かなくても、環境変数PATHを書き換えることで対処できる。

なるほど。ちなみに環境変数については、

set | grep 2012
set path # grepがないとき

で確認できます。Windowsはgrepじゃなかったはずですけど。

とにかく、

  • texlive2013の新規インストール
  • (必要なら)環境変数の編集

やることはこれだけみたいです。

これは推測ですが、texmf-localは共用です。つまり自分であとから追加したパッケージ等は2013でそのまま使えるはずです。ちゃんとTeXliveの流儀に従っていればということですけど。

次回予告?

次回はちゃんとインストールを実行します。

texwikiのWindowsの項目にどうやらCUIインストールの解説がなくなったようなので、そのあたり補完できればと思っています。むしろGUIでやったことがないだけですけどね。

覚え書き。

いくつかソースをクローズドに管理する方法を見つけたのでそれを書き留めておく。
でも基本はGit。

GitLab

自分でサーバーを立てて、そこにGitHub立てるイメージみたい。GitHubのオープンソースクローンらしいね。そういうのもありなのかもしれない。

DropBox + Git

基本は単純にGitするだけ。違いはGitで管理するディレクトリを置く場所。DropBoxに同期されるディレクトリを選んで、そこにリポジトリを作る。
これ、GitHubが提供しているWindows向けのGUIソフトで管理できないかな? このソフトの使い方がいまいちよくわかってないのが悪いんだけど。

手動管理

明らかに手間。だけど誰でもできるよ。失敗率が高すぎておすすめする気はないよ。
手法はきっといくらでもあるけど、それを敢えて選ぶ理由がないと思うの。


課題(というか、宿題)

これももしかしてgit管理できるのでは? とか考えたけど、でも普通に使えばいいね。はい。
大規模とかで使いそうだったら、DropBoxに入るためのUbuntuでも作ろうかな?