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

投稿

ラベル(Mac)が付いた投稿を表示しています

precompiled preambleを用意して,platexのタイプセットを高速化する

最近dynabook v713を使っていなかったので知人に譲り,これを元手にして,久々にwindowsのデスクトップPCを購入しました.所有しているMacbook Air (mid 2012)に比べてcpuの周波数が2倍,コア数も2倍になったけれど,platex+dvipdfmxによるタイプセットの速度は約60%速くなったくらいで,期待していたほどではありませんでした.TeXがシングルスレッドで動作するようなので,cpuのコア数は速度向上に寄与していないみたいです. そこでLaTeXのタイプセット速度を向上させる方法がないか検索をしてみたら, precompiled preambleを用意して,preambleの読み込み時間を短縮する. tikzのexternalライブラリを用いて,tikzの絵をいったんpdf化し,それを読み込むことでtikzのタイプセット時間を短縮する. という方法が見つかりました. ここでは前者を紹介します. 後者も試してみたのですが,可換図を描くライブラリであるtikz-cdのtikzcd環境と相性が悪いらしく,うまく行かなかったため断念しました.

Emacs.appから起動したEmacsでシェルの環境変数を引き継ぐ

Macを使い始めて最初に不便に感じたことの一つは,Emacs.appをGUIで起動したときに,PATHなどのシェルの環境変数が引き継がれないことでした. 最近はターミナルから起動するのが習慣づいているので余り気にならなくなりましたが,環境変数を引き継ぐことが出来るようなので設定してみました.参考にしたのはsyohexさんのブログ「Life is very short」の記事 Emacsでの環境変数の設定に exec-path-from-shellを使うようにした です. exec-path-from-shell.elというパッケージを用います. まずpackage.elを用いるか,もしくは こちら からexec-path-from-shell.elをダウンロードして,これをemacsが読み込める場所に置いておきます. 設定は次のようにしました. ;;;ターミナル以外から起動したときも,パスなどのシェル環境変数を引き継ぐ (when (memq window-system '(mac ns)) (require 'exec-path-from-shell) (exec-path-from-shell-initialize) (let ((envs '("BIBINPUTS" "TEXINPUTS" "INDEXSTYLE"))) (exec-path-from-shell-copy-envs envs)) ) ここでは,パス以外のシェル環境変数としてLaTeXで使うBIBINPUTSとTEXINPUTS, INDEXSTYLEの3つをenvsというリストにして,exec-path-from-shell-copy-envsという変数に設定しています.これでexec-path-from-shell-copy-envsに設定したシェルの環境変数も一緒に引き継いでくれるようになりました. あとはQuicsilverでEmacs.appにキーボードショートカットを割り当てて,ターミナルなしで起動出来るようにしました.最近外付けSSDにUbuntu 15.04をインストールしたのですが,UbuntuでもEmacsをGUI...

複数の文書で共通して使いたい文書の置き場所(LaTeX)

LaTeXでLebesgue積分のノートと複素解析のノート,Lie群のノートを作成しているのですが,実数関数についての微積分の内容をすべてのノートに共通させたいと以前から考えていました. サブフォルダに置いてある文章ならば,import.styを使って読み込むことも可能ですが,同水準のフォルダ間の文章の読み込みは望みの挙動をしてくれる解決策を知りませんでした. import.styを使うと,サブディレクトリ以外の他ディレクトリのファイルも読み込むことが可能なようです.しかし私が試した限りでは,警告やエラーが出ないものの,期待したファイルを読み込んでいない結果が得られました.またimport.styを使うと,YaTeX側で認識をしてくれないという問題があります(個人的にはこれが一番の問題). 仮に共有したい微積分のノートが「$HOME/notes/calculus」に置いてあるとします. \inputコマンドを使うのであれば,これは相対パスを理解してくれるようなので,\input{../calculus/integral}といった記述をしても問題なくタイプセットを行うことが可能です. しかし\includeコマンドを使おうと思うと,相対パス表記はLaTeX側で解釈してもらえないようで,エラーが出てしまいます.大規模の文章を扱うときには,\includeonlyコマンドを使って分割タイプセットを行いたいので,\inputしか使えないのは不満が残ります. 別の解決策として1つのPC(OS)しか使わないのであれば,共通させたい文書を入れるフォルダを作って,その他の各文書のフォルダにはシンボリックリンクを貼っておけば良さそうです. しかしこれにも問題点があって,私はLaTeXのノートをDropboxに保存して複数のPCで共有しているのですが,シンボリックリンクを使った方法だとDropbox上で実ファイルとして認識されてしまうようで,他のPCでは実ファイル化してしまい余計に扱いがややこしくなりました. 現在はMacやLinuxの環境では ~/.bashrcなどに変数TEXINPUTSを export TEXINPUTS=$HOME/notes/calculus:$TEXINPUTS と記述してTeX側から共有したいファイルの場所が見...

emacs内でTeX文書の作成からpdf閲覧まで行う

TeX WikiのEmacsに関する記述を見ていると,sheepheadさんのblog記事: Emacs上のPDFでisearch,occur,imenuとかなんでもしてしまうpdf-toolsの紹介 が紹介されていました.Emacs23を導入したときに,EmacsでPDFファイルを表示するDocViewを試したことがありましたが,使い勝手が悪かったためすぐに使わなくなりました. まずdoc-view-modeの基本的な操作法をまとめておきます. キー コマンド 機能 n 'doc-view-next-page 次のページ p 'doc-view-previous-page 前のページ C-n 'doc-view-next-line-or-next-page 1行下方へスクロール C-p 'doc-view-previous-line-or-previous-page 1行上方へスクロール SPACE 'doc-view-scroll-up-or-next-page 下方スクロールまたは次のページ DEL 'doc-view-scroll-down-or-previous-page 上方スクロールまたは前のページ k 'doc-view-kill-proc-and-buffer プロセスを終了しバッファを閉じる g 'revert-buffer バッファを閉じる + 'doc-view-enlarge 拡大 - 'doc-view-shrink 縮小 カーソルキー  - 上下左右方向へスクロール M-g M-g  'doc-view-goto-page 指定 したページへ 移動 M-> 'doc-view-first-page 最初 のページへ 移動 M-< 'doc-view-last-page 最後 のページへ 移動 上述の記事ではEmacsのdoc-view-modeの使い勝手を良くするEmacs拡張アプリであるpdf-toolsを紹介していたので,早速試してみました.環境はMac OS X MavericksでEmacs 24.4.50を使用しています. pdf-toolsを検索してみ...