2016

Euwe, KramerのMiddleGameの本

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

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

[ctpgn id=20160918a, layout=left]
[Event “EuKra0101”]
[Site “Crakow”]
[Date “1942.??.??”]
[Round “?”]
[White “Alekhine Alexander”]
[Black “Junge Klaus”]
[Result “1-0”]
[ECO “C86”]
[PlyCount “55”]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Qe2 b5 7. Bb3 O-O 8. c3
d5 9. d3 dxe4 10. dxe4 Bg4 11. h3 Bh5 12. Bg5 Ne8 13. Bxe7 Bxf3 14. Qxf3 Nxe7
15. Rd1 Nd6 16. Nd2 c6 17. Nf1 Qc7 18. a4 Rad8 19. Ng3 Nec8 20. axb5 axb5 21.
Nf5 $1 Nb6 ( 21… Nxf5 22. exf5 $1 { White would be threatening to split open
Black’s Kingside by f6, a threat which Black could not parry, as the Bishop
pins his f-pawn.} )22. Qe3 Nxf5 ( 22… Nbc4 23. Bxc4 Nxf5 24. exf5 bxc4 25.
f6 gxf6 26. Qg3+ Kh8 27. Qh4 Qe7 28. Qxc4 Qe6 29. Qxe6 fxe6 30. Rxd8 Rxd8 31.
Ra6 Rd6 32. g3 Rd1+ 33. Kg2 { 0.92} )23. exf5 c5 24. f6 $1 gxf6 25. Qh6 f5 26.
Bxf7+ $3 Qxf7 ( 26… Rxf7 27. Qg5+ Rg7 28. Rxd8+ Kf7 29. Qxf5+ Ke7 30. Ra7
Qxa7 31. Qf8+ Ke6 32. Rd6# )27. Rxd8 Na4 ( 27… Rxd8 28. Qg5+ )28. b3 $1 1-0
[/ctpgn]

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 のみで、残りが実行されない。どういう訳か分からないが。