スキップしてメイン コンテンツに移動

物理学のためのTeX・プログラミング環境 for Windows (2017年4月版)

自分用メモとして, 2017年4月27日時点での手元のPC環境を記録しておきます. この環境を整えてからひと月も経っていないので, 今後いろいろと変更する可能性がありますが.

主としてTeXによる文書作成, たまにC言語/Fortran 90によるちょっとした数値計算を想定しています. 要するに, Bash on Windows万歳! という記事です.



PC環境

デスクトップ, ノートともにWindows 10 Creators Updateで, Bash on Windows (以下BoW) を使用しています. 従って事実上のUbuntu 16.04が動いています. BoWのインストールについてはこちらの記事がわかりやすいです (Anniversary Updateなので若干古いですが).


Windows側のアプリ

テキストエディタとしてAtom, PDFビューワーとしてsumatraPDF, グラフ作成にはgnuplot 5.0を使用しています. AtomおよびBoWのフォントはRictyです.


Ubuntu側のアプリ

gccおよびgfortranといったコンパイラは


sudo apt install build-essential --gfortran 
により導入できます. BoW上ではEmacs 24を使っています (1回生の頃に使い方を教わったのがこっちだったので…)

sudo apt install emacs
TeX環境はTeX Live 2017 pretestをフルインストールしました. aptから手に入るTeX環境一式は古いので却下.


運用体制

作業ディレクトリは例えばWeak Lensingについて扱う場合には

C:/Users/"name"/Documents/Cosmology/WeakLensing/
で, BoW側からは

/mnt/c/Users/"name"/Documents/Cosmology/WeakLensing/
として参照できます. ただ, 打つのが面倒なので/home/"name"/にC:/Users/"name"/Documents/Cosmology/へのシンボリックリンクを生成しています. 基本的にコーディングはWindows側のAtomで行い, それをBoWでタイプセット/コンパイルしています.

TeXは主にLuaLaTeX 1.0を利用していますが, いまのところ何ら問題には遭遇していないです. 流石にupLaTeXのがタイプセットが早いくらいでしょうか.

数値計算をする場合, BoWでgnuplotが動かないためgnuplotはWindows側で起動しておく必要があること, および数値計算結果に含まれる改行コードがLFになることに注意が必要でしょうか.

コメント

このブログの人気の投稿

matplotlib.histのnormedが変

以下の内容はPython 3.5.2 + matplotlib 1.5.1およびPython 3.6.2 + matplotlib 2.0.2で検証した. 作業日は2017年10月22日, 前者はUbuntu 16.04 on Win10 (WSL), 後者はDebian 8.9 (Anaconda). 規格化したいのにできない なにか数値の列 data があったとして, そのヒストグラムをmatplotlibでプロットしたいとする. 普通に plt.hist( data ) とすると, これは縦軸が各bin内に入るデータ点が何個あるかを表すことになる. これをデータ総数 len(data) で規格化したプロットにしようと思って plt.hist( data, normed=True ) または normed=1 とかやっちゃうと, 思った通りのアウトプットにならずに頭を傾げることになる. 例えば: import numpy as np import matplotlib.pyplot as plt data = np.random.normal(0,0.1,1000) weights = np.ones(len(data))/len(data) plt.hist( data, weights=weights ) plt.show() アウトプットは で, 縦軸が1を超えるとか, 意味がわからない. 原因 matplotlibのドキュメント を見ても何も書いてない. これは numpyのドキュメント に答えが書いてあるからで, 要するに normed オプションは事実上 density オプションと等しく, これは縦軸を確率分布関数と思って規格化するオプションである, と. 従って, normed=True オプションを指定すると, binの 面積 が1に規格化されることになる. いま欲しいものは値の 総和 が1に規格化されたアウトプットなのだから, binの幅が1でない限り, 欲しい結果は得られない. 対策 代わりに weights オプションを指定すればこの問題は解決できる. これは data の1つの値の重みを指定するパラメー

UbuntuのPDF編集ツールの使い方まとめ

PDFtkやpoppler-utilsに含まれるツールを使ってPDFを編集するコマンドのまとめです. 0. インストール sudo apt install pdftk sudo apt install poppler-utils UbuntuあるいはBash on Windowsならaptコマンドで一発. 1. PDFの文書情報の表示 pdfinfo (ファイル名) 2. PDFの分割と結合 pdftk (入力ファイル) cat (ページの指定) output (出力ファイル) ページ数の指定は1-12 14-endみたいな形で書けばよい. 入力ファイルを複数指定してページ数の指定を省略すればPDFの結合ができる. 3. PDFをJPEG/PNGに変換 pdftoppm [オプション] (入力ファイル名) (出力ファイル名の接頭辞) JPEGが欲しい場合-jpegを, PNGが欲しい場合-pngをオプションに指定する. デフォルトの解像度はDPI150で粗すぎるのでオプションで-r 300ないし-r 600を指定すべき. 白黒画像にしたい場合は-monoないし-grayを指定 (個人的には-grayのが好み). 複数ページのPDFを変換すると, 出力ファイルは (出力ファイル名の接頭辞)-1.jpg (出力ファイル名の接頭辞)-2.jpg みたいな形で生成される. 4. PDFからテキストを抽出 pdftotext (入力ファイル名) (出力ファイル名) 出力ファイルの文字コードはUTF-8, 改行コードはLF. 出力ファイル名は省略可能. 5. PDFから画像を抽出 pdfimages [オプション] (入力ファイル名) (出力ファイル名の接頭辞) オプションについて: -pngでPNG, -jでJPEG, -tiffでTIFF形式で出力される (オプションなしだとPPM形式) 6. PDFを回転 pdftk (入力ファイル名) cat 1-end(向き) output (出力ファイル名) 向きとしてはleft, right, downまたはnorth, east, west, southが使用可能. ※向きを指定する前にスペースを入れるとエラーになる. 関連ページ

源ノ明朝/源ノ角ゴシックをLuaLaTeXで使用する (Windows)

源ノ明朝 (Source Han Serif), 源ノ角ゴシック (Source Han Sans) はAdobeとGoogleが作成したCJKフォントで, オープンソースフォントとして公開されています (ライセンスはSIL Open Source License 1.1). 以下では, LuaTeXエンジンでこのフォントを (日本語で) 使用する方法を説明します. あるいは, otfファイルがダウンロードできれば, どのようなフォントにも適用可能です (PDFにフォント埋め込みすることに関してライセンスに注意が必要ですが). Windows10を前提としますが, 他の環境 (Linux/Mac) でもほぼ同じ方法で導入できるんじゃないでしょうか. 使用したのはTeX Live 2016 (LuaTeX-0.95) です.