Euwe, KramerのMiddleGameの本

MacBook AirにChessX (チェスのデータベース・ソフト) をインストールした。Max Euwe, Hans KramerのMiddleGame (中盤戦の教科書) を引っ張り出して,第1巻の最初のゲームを再生させてみた。Alekhine 対 Junge (1942年,モスクワ)。

テーマは,ビショップなのだが,様々なタクティクス的要素が素敵すぎる。作戦・戦略(Strategy)の本なのだが,具体的な戦術(Tactics)抜きには語れないということか。

ChessXはデータベースソフトではあるが,チェス・エンジンを組み込めるので,分析も出来て便利。Stochfishの最新版をインストールし,分析させながら本文を読み,なるほどねえ・・・。これは良い組み合わせだ。

Twitter Digest 2016-09-13

  • アカバネのロゴ(フォント)が妙にカッコイイのが面白い。レトロっぽいけど当時のではないよなあ。 07:45:08, 2016-09-13
  • スジ(SJI)規格って(苦笑) 07:46:36, 2016-09-13
  • 今日の弁当 2016/09/13 (Tue) 珍しく肉。薄切りとタマネギ炒めてタレ絡めて終了。 #flickstackr https://t.co/HtuM8qJCoJ 09:48:20, 2016-09-13
  • Numbers (古いver. 2の方) で度数分布表できた!FREQUENCY関数の値である配列をINDEX関数で参照する。配列番号のために1列用意するのがポイントだった。 18:04:33, 2016-09-13

Twitter Digest 2016-09-09

  • 録画しておいた 植物男子ベランダーを観た。最終回ではあるが,いつも通りの緩い展開で安心。原作者さん登場したし,これで大団円か。
    てなちんぷな展開はプライドが許さへんのだ。ということで,シーズン4期待してます。
    #ベランダー #nhk_verandar #植物男子ベランダー 11:48:31, 2016-09-09
  • RT @barca_kazu: ほんの少しでも誰かの生活の一部になれたことが嬉しいです。3年間ありがとうございました。https://t.co/KKwvOVZJ5b https://t.co/nbHKcP2B8t 12:06:19, 2016-09-09

Sublime Text 3でLaTeXToolsに変更を加えて日本語pLaTeX文書の組版(Windows版)

いろいろやってみたが、一番ポピュラーなLaTeXToolsを使う方法をメモするのを忘れていた。

LaTeXToolsに変更を加えるには、Packages/User にLaTeXTools.sublime-settings という自分用の設定ファイルを作る。これは、Sublime Text 3からLaTeXToolsの設定メニューに入ると作成用のメニューがあるので、それを選ぶと自動的に作られる。変更はこちらに行い、本体はいじらない。変更箇所としては、TeXLiveをインストールした場所の指定、TeXのdistroとしてMikTeXじゃなくてTeXLiveを選んでいること、そして、日本語LaTeXを使うために、command に変更を加える。

まずは、TeXLiveの場所、PDFのPreviewerとしてSumatraPDFを設定、などなど。

// ------------------------------------------------------------------
// Platform settings: adapt as needed for your machine
// ------------------------------------------------------------------

	"osx": 	{
		// Path used when invoking tex & friends; MUST include $PATH
		"texpath" : "$PATH:/Library/TeX/texbin:/usr/texbin:/usr/local/bin:/opt/local/bin"
		// Path to PDF viewer, if needed
		// TODO think about it. Also, maybe configure it here!
	},


	"windows": {
		// Path used when invoking tex & friends; "" is fine for MiKTeX
		// For TeXlive 2011 (or other years) use
		// "texpath" : "C:\\texlive\\2011\\bin\\win32;$PATH",
		"texpath" : "C:\\texlive\\2016\\bin\\win32;$PATH",
		// TeX distro: "miktex" or "texlive"
		"distro" : "texlive",
		// Command to invoke Sumatra. If blank, "SumatraPDF.exe" is used (it has to be on your PATH)
		"sumatra": "",
		// Command to invoke Sublime Text. Used if the keep_focus toggle is true.
		// If blank, "subl.exe" or "sublime_text.exe" will be used.
		"sublime_executable": "",
		// how long (in seconds) to wait after the jump_to_pdf command completes
		// before switching focus back to Sublime Text. This may need to be
		// adjusted depending on your machine and configuration.
		"keep_focus_delay": 0.5
	},

	"linux" : {
		// Path used when invoking tex & friends; MUST include $PATH
		"texpath" : "$PATH:/usr/texbin",
		// Command to invoke Python. Useful if you have Python installed in a
		// non-standard location or want to use a particular version of python.
		// Both Python2 and Python3 are supported, but must have the DBus bindings
		// installed.
		"python": "",
		// The name of the ST2 or ST3 executable. On Ubuntu, both subl and sublime-text are
		// available for ST2; adjust as needed for other platforms, and for ST3
		"sublime": "sublime-text",
		// How long to wait after evince or okular has launched before sending a sync message
		// in seconds, floating point; choose 2.0 or 3.0 on a slower machine, 0.5 on a fast one
		// Note: only tweak this if sync after launching the PDF viewer does not seem to work,
		// or if the PDF viewer opens instantly and you don't want to wait.
		// Default: 1.5 (works on my MBP4,1...)
		"sync_wait": 1.5,
		// Command to invoke Sublime Text. Used if the keep_focus toggle is true.
		// If blank, "subl" or "sublime_text" will be used.
		"sublime_executable": "",
		// how long (in ms) to wait after the jump_to_pdf command completes
		// before switching focus back to Sublime Text. This may need to be
		// adjusted depending on your machine and configuration.
		"keep_focus_delay": 0.5
	},

次に、builder settings のところに、latexmk を呼び出すときに使う command を定義する。これで完了。

	// OPTION: "builder_settings"
	// Specify builder-dependent settings and preferences
	// Possible values: see README or documentation provided with
	// third-party build engine.
	// Builder setting can be general or OS-dependent

	"builder_settings" : {

		// General settings:
		// See README or third-party documentation
		"command" : ["latexmk", "-cd",
			"-e", "$latex = 'platex %O -no-guess-input-enc -kanji=utf8 -interaction=nonstopmode -synctex=1 %S'",
			"-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
			"-e", "$bibtex = 'pbibtex %O %B'",
			"-e", "$makeindex = 'pmendex %O -o %D %S'",
			"-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
			"-f", "-norc", "-gg", "-pdfdvi"],

		// (built-ins): true shows the log of each command in the output panel
		"display_log" : false,

		// Platform-specific settings:
		"osx" : {
			// See README or third-party documentation
		},

		"windows" : {
			// See README or third-party documentation
		},

		"linux" : {
			// See README or third-party documentation
		}
	},

Ubuntu 16.04LTSにSublime Text 3をインストール

Macで愛用しているSublime Text 3をWindowsに続いて、Ubuntuにもインストールした。Ubuntuソフトウェアからは見つからなかったので、apt-getするか本家からダウンロードするか迷ったが、本家から、64bit版の sublime-text_build-3114_amd64.deb をダウンロードした。拡張子が .deb ということは、Debianのパッケージということだよね。右クリックして開くアプリを選ぶ。Ubuntu Softwareから開くと、確認の後、自動でインストールしてくれたようだ。

インストールしてくれたのは良いが、すべて自動のため、どこにあるのかわからない状態。ランチャーから検索はできるが、それじゃあね。ターミナルから which subl とすると、/usr/bin/subl と出た。これはシェルスクリプトで、中を読むと、

#!/bin/sh
exec /opt/sublime_text/sublime_text "$@"

つまり、本体は /opt/sublime_text/sublime_text であることが分かった。オフィシャルじゃないアプリは /opt/ 以下に置かれるのだろうか。ともあれ、場所が分かった。アイコンもついているので、そのままドラッグしてランチャーに放り込む。これで、ランチャーから起動することができる。

Sublime Text 3からlatexmk経由でpLaTeXのビルドとプレビュー(Windows版)

表題が長くなったが、内容はこの通り。Windows上でSublime Text 3というエディター(文書編集プログラム)を使い、その中からTeXLive収録のlatexmkというPerlスクリプトを呼び出して、日本語LaTeX(今回はplatex)文書をPDFに組版し、SumatraPDFで結果をプレビューする、というもの。

latexmkには .latexmkrc という環境設定ファイルがあり、それを$HOMEに置いておけば、自動で読みに行くらしいのだが、今回はそれは使わずに、直接にコマンドラインからオプションを渡す方法を試みた。ちなみに前回行ったのは、Sublime Text 3から直接にplatex, dvipdfmx, SumatraPDFを呼び出す単純なもの。latexmkは、bibtexの処理、必要な回数だけのlatex処理など、いろいろ自動でやってくれるらしい。実は、個人的にはあんまり必要としていないんだが、そっち方面は。さらに言えば、Sublime Text 3からlatexmkを起動させるにはLaTeXToolsというプラグインを用いるのが便利で、その使い方がよく紹介されているのだが、そのままでは日本語LaTeXには対応していないので、修正が必要。それもやってみたのだが、別にLaTeXToolsに依存しなくてもできるはずだ、と始めたのが今回の作業。

前置きが長くなった。一番の難関は、latexmkに”-e”オプションでPerlスクリプトを正しく渡すにはどうするか、ということ。ダラー$とか引用符とか、二重引用符とかバックスラッシュとか、どのステップでどういう文字列になって、最終的にどの形でlatexmkに渡されることになるのか、そこが分からなくて、エラー続きだった。結局、つぎのようにすれば上手くいった。

{
	"cmd" : [
		"latexmk", "-cd",
		"-e", "\\$latex = 'platex %O -no-guess-input-enc -kanji=utf8 -interaction=nonstopmode -synctex=1 %S'",
		"-e", "\\$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
		"-e", "\\$bibtex = 'pbibtex %O %B'",
		"-e", "\\$makeindex = 'pmendex %O -o %D %S'",
		"-e", "\\$dvipdf = 'dvipdfmx %O -o %D %S'",
		//"-e", "\\$pdfmode = 3",
		"-e", "\\$pdf_previewer = 'SumatraPDF -reuse-instance %O %S'",
		"-f", "-norc", "-gg", "-pdfdvi", "-pv",
		"$file"
	]
}

ポイントは $latex などのダラー付きの変数に対して、バックスラッシュ(\)を2重に付けるということ。これが分からなくて苦労した。

Sublime Text 3での自前LaTeXビルド(Windows版)

Sublime Text 3にはLaTeXtoolsという強力なパッケージがあるのだが、そのままでは日本語版のplatexでの組版ができない。そこで、いろいろ修正を加えることになるのだが、自分の場合、複雑な処理は必要とせず、単に platex, dvipdfmx, preview すればよいから、もっとシンプルなビルド・システムでよいのだ。むしろ、場合によってはplatexの部分をuplatexに変えたりすることもあるから、その時に応じて適当に選べるようになっていて欲しい。残念ながら、LaTeXtoolsはそうはなっていないようだ。

ということで、あちこち検索しながら試行錯誤。Windowsの場合は、次のようにすれば上手く行った。なお前提として、パスは通してある。また、将来的には Linux, Mac OSX を含めて一つのファイルにしたいので、OS別の処理のため、”windows” : {…} と括ってある。

Tool, buildsystem, new-buildsystemと進むと、untitled.sublime-build なるファイルが作られ、開かれる。そこで、次のように書いて、適当な名前で保存する。今回は、my_platex2pdf.sublime-build とした。

{	
	"windows" : {
		"shell": true,
		"cmd" : [
			"platex", "$file", "-interaction=nonstopmode" ,"&",
			"dvipdfmx", "$file_base_name.dvi", "&",
			"SumatraPDF", "-reuse-instance", "$file_base_name.pdf"
		]
	}
}

Windowsの場合、空白を含むコマンドはダメらしく、上のように、文字列を並べるようにする。それから、複数のコマンド、つまり、platex, dvipdfmx, SumatraPDF を順に起動させるのだが、それらは、”&” で区切るとよいようだ。最後に、これで嵌ったのだが、”shell”: true というのを付けないと、platex のみで、残りが実行されない。どういう訳か分からないが。

Windowsの修復

しばらくほったらかしにしておいたWindows7を再開させようとすると,あれ?画面が真っ黒。マウスのカーソルだけは動くが,あとは反応なし。画面だけ死んでるわけでもなさそうだし。ううむ。

強制的に再起動させたが,ログインはできるものの,「ようこそ」表示のあと,やはり画面が真っ黒になり,マウスのカーソルのみ表示されるという状態。これは経験がない。困った。

あれこれ検索した結果,とりあえずファイルのバックアップだけは取ることにした。強制終了させて,Ubuntuを起動(^^;)。デュアルブートがこんなときに役立つなんて。USBのHDDを接続し,Windowsのファイルシステムにアクセスし,バックアップを取る。およそ200GBほど。50分くらいかかった。転送速度は80MB/sec くらいだったが,これってUSB3.0なんだろうか。うちのMacより速いなあ。

さて本題。セーフモードで起動。幸いにセーフモードだと起動できた。ネットの情報だと,セーフモードでもダメという記載があったので心配していた。スタートメニューからアクセサリー,システムツール,システムの復元と進む。最初は2日前の2016/08/18に戻したのだが,真っ黒画面のまま。再起動させて,再びセーフモードで起動し,今度は2016/08/08まで戻した。ログイン後,少しの間,画面が黒くなったので,ダメか〜と落胆したが,10秒くらい経って,いつもの画面になった。とりあえず安堵。

しかし,Windowsってどうしてこうなんだろう。