スポンサーサイト



H. C. M. December, 1873

HCM1873_12.jpg
 Suiho の感覚で入力してしまい、左側のスペースの入力を省略してしまうのだった。
FEN を表示して措こうと考えたが、castling などの情報も入れないとならないので面倒だ。ところで、 Problem VI は FEN で表記すると、どうなるのだろうか

H. C. M. October, 1873

1 年分を纏めると、時間がかかるので、 1月分ずつ、コツコツと、、。1年分溜まったら、PDF にするか。
HCM198310.jpg
さて、今回の Problem II 、私はすぐ解った。以前にどこかで見たことがあったのかもしれぬ。

LaTeX で Chess Problem の図を作る 続続

前にやったみた時は、A4 横に4つ並べてみたが、如何にも窮屈。どうせ画面でみるだけならページ数は気にせずゆったりとした方がいいかなーと思った。
\begin{multicols*}{3}
ということにすると、最終ページの配分が気にならなくなるので、これを使おうか。それとも、、
まあ、FIDE ALBUM の図を入力して試してみる。
20220326.jpg20220326_2.jpg

FIDE ALBUM は図数が多いので、配置はもう少し練ってみよう。それと、キリル文字をどうしようか、出典まで入力するか、Solutions はどうしようか、などなど。
こちらは、選りすぐりのものなので、なかなか解けないのも悩みのタネだ。

LaTeX で The Huddersfield College Magazine 続続続

Solution のソースは、以下のように簡単にできる。図を間違えようも無い。

\resumechessgame[id=pro1]
\Diagram
\mainline{1. Nc6} and mates in two moves.

\resumechessgame[id=pro2]
\Diagram
\mainline{1. Qf5+ Kh8 2.Ng6+ Kh7 3.Nf8+ Kh8 4.Qh7+ Nxh7 5.Ng6\mate} 

HCM1_7.jpgHCM1_8.jpg

今回の \Diagram のマクロは以下の通り。保存したデータの取り出し方が一寸面倒だが、マクロにしてしまえばいいことだ。

\newcommand{\Diagram}{%
\begin{center}
\begin{tabular}{c}
\textbf{\xskakgetgame{diagramlabel}}\\
\xskakgetgame{composer}\\
\xskakgetgame{date}\\
\chessboard
\\
\xskakgetgame{stipulation} \hfill \ 
\end{tabular}
\end{center}
}%

diagramlabel が長いと、stipulation が、盤面の幅より左に行ってしまうが、御愛嬌ということにしておこうか。
PDF は、そのうちに、 Home page にアップします。(追記: 2022-03-26 HCMvol.1 を up) 


LaTeX で The Huddersfield College Magazine 続続

最後には、旅行記が載っていて、新聞などに載っている Problem の紹介がある。OCR の不調なところもあって、手入力したところが多いので誤植がかなりありそうだ。
HCM1_4.jpg
駒の配置は

White.---K at KKt7; R at KB8; B at KB5; Kt at K6 ; Pawns at KKt6 and QB5.
Black.---K at K2; B's at QR4 and 5; Kt's at KR7 and QB3; Pawns at Q4, QB2, and QKt5.

といった具合に記述されていて、図面は無い。ソースは

\newchessgame[id=proGWH,
diagramlabel={Glasgow Weekly Herald},
composer={J. Pierce},
date={1973},
stipulation={\#4},
setwhite={kg7,rf8,bf5,ne6,pg6,pc5},
addblack={ke7,ba5,ba4,Nh2,nc6,pd5,pc7,pb4}]
\chessboard

のように、setwhite と addblack で指定出来るのだった。
HCM1_5.jpgHCM1_6.jpg
game の記事は省略していたが、この記事だけは入れてみた。図面は原図には無かったが、指手を入れれば表示するのは簡単だ。

LaTeX で The Huddersfield College Magazine 続

Solution は次の号に載っているのだが、遅れることもある。図は載っていなくて手順のみ。どう編集するか、迷ったが、後部にまとめることとした。そして、図も再掲した方がいいと考えた。出題号でのデータを保存しておくには id を使えば簡単にできる。そして、保存するデータ名も定義できる。
HCM1_2.jpg
データの定義は、
\xskaknewpgninfo{diagramlabel}
\xskaknewpgninfo{composer}
\xskaknewpgninfo[\#3]{stipulation}
といった具合。出題部分のソースは以下の通りである。データの重複がみられるが、まあ、試行錯誤の名残である。

\section{February, 1873} % p93/pdf104-p96/pdf107 HCM 1873-02
\subsubsection*{PROBLEM V}
By Mr. \textsc{P.T. Duffy}, London.

\newchessgame[id=pro5,
diagramlabel={PROBLEM V},
composer={P. T. Duffy},
date={February, 1873},
stipulation={\#3},
setfen=8/3K1p1r/8/2bk3r/3NR2p/4P3/2Q5/8]
\chessboard

White to move and mate in three moves.
HCM1_3.jpg

LaTeX で The Huddersfield College Magazine

LaTeX で chess の図を表示する事などを研究していたが、何か、まとまったものを作ってみようと思った。で、 google book で見つけたのが  The Huddersfield College Magazine。1872年10月から1873年9月に発行されたものが Volume 1 となっている。
チェス専門のものでは無いので、載っているものは、私には丁度いい位か。
図だけでは淋しいので、文章も入れてみた。作りはじめると、図面や手順の入力ミスが多発。特に図面がなく配置だけ記してあるものは散々だった。1ケ月分を作って、製版具合などをみたりしていたのだが、スカスカな所が出てきたりで、なかなか思うようににはならなかった。つくづく、風さんの本の配置のスゴサを実感するのだった。
当初は A4サイズで 二段組ということで進めていたが、途中で3段組にした。multicol のせいか、
\section* や \footnote が表示されないということも起こった。どんな時に発生するかは特定はできなかった。
HCM1_1.jpg  

LaTeX で Chess Problem の図を作る 続

diagram という package で、chess problem の図を作ろうと少しやってみた。
『Seven is the Limit Miniature Chess Problems Niharendu Sikda 1989 という本。詰将棋にも、同じような題名の有名な本がある。 
20220316_A.jpg
で、10図入力してみたところで、投了。ドイツ仕様で、駒を入力するのが、思いのほか大変だった。こんな駒数なのに、、。

ま、慣れた xskak に戻り、19世紀の雑誌から入力してみる。
20220316_B.jpg
この位の駒数でも、入力にストレスは無い。FEN を詰将棋用にアレンジしたのが suiho 形式だから、当たり前なのだが。ちょっと、マクロを書いてコンパクトに書けるようにしたソースの主要部分は以下の通りだ。
\Diagram{W. GRIMSHAW}{2b1B1K1/1p1p4/1P6/5R2/2p1N1R1/8/2Pp1pNB/3n1k2}{\#3}
\Diagram{C. CALLANDER}{8/2Nb4/1Kp3p1/Q5P1/3k1Np1/3Bp1R1/nR1pp3/b1rr2q1}{\#4}
\Diagram{J. PERCE, M.A.}{8/3p4/2p1p3/3k4/3BN3/2P3K1/3PQ3/7N}{\#3}
\Diagram{W. COATES}{3K4/4Pp2/1pR5/1Prkr1P1/4pb2/5b2/NP2P1RN/2n1Q3}{\#4}
\Diagram{A. CYRIL PEARSON}{5N2/2p2Pp1/2P2kB1/1N1p4/1B1K4/7P/8/8}{\#3}
\Diagram{J. W. ABBOTT}{rN2n3/5R2/pN2pp1P/n3k3/P2p1pQP/5B2/1BP3K1/qr4b1}{\#4}
\Diagram{C.W. \textsc{of Sunbury}}{7Q/8/8/4p1K1/5pp1/6k1/2N2qPN/3B2b1}{\#4}
\Diagram{H. E. KIDSON}{8/4N2B/8/1p6/bRn2k1B/1p5P/1Q2PP2/n1K1N3}{\#5}

ちなみに、書いたマクロは以下の通り。tabular 環境を使い、揃えている。

\newcounter{DIAcounter}
\setcounter{DIAcounter}{0}
\newcommand{\Diagram}[3]{%begin of \Diagram
\stepcounter{DIAcounter}
\begin{tabular}{c}
\textbf{No. \theDIAcounter}\\
#1\\
\chessboard[setfen=#2]\\
#3 \hfill \
\end{tabular}
}%end of \Diagram

LaTeX で Chess Problem の図を作る

さて、しばらくxskak での chess の表示を研究していたが、余の中には、より特化したものがある。

それは、 Chess Problem の図面を簡便に表示するものだ。

20220313B.jpg

このような図が、以下のような簡単なソースで表示できるのだった!。diagram は TeX Live! などには、インストール済だ。

\documentclass{book} 
\usepackage{diagram}

\begin{document}

\small

\diagnum[F]{1233}
\begin{diagram}
\author{Kapros, Jorge}
\source{Problem Paradise} \year{2021}\issue{Issue 96}
\pieces{wDUc8a5, wLa7, wKb7, wSUa6, sKd5, sTe3, sLg3, sDUh2e1}
\stip{H\#2 2 Sols Grasshoppers 2+2 Nightriders 1+0 }
\Co{+}
\end{diagram}

\end{document}

駒の記号は KQRBNP では無く KDTLSB という ドイツ仕様だ。変更する方法もあるらしいので、試したがポーンの変更が上手くいってない。まだ研究し始めたばかりなのでよく解らない。

LaTeX で Chess の駒を使う

xskak(skak)は内部ではchessboard という package を使っているのだったが、chessboard は更に chessfss というpackage を使っているようだった。
3週間位かかって、ようやく 3 層目のダンジョンまで潜ったのだった。chessfss はフォントがインストールされていれば、使わなくても済むようだが、LaTeX のフォントのホントに「深い沼がある。理解するのは、諦めた。
xskak、chessboard、chessfss で定義されている駒のフォントは 2 種類あって、文章内で使うもの(figurine font)と、盤面用のもの(board font)。

20220309a.jpg

board font は真四角で、 \Huge \Large などの影響を受けないで、大きさは一定。

左の盤面は figurine font を使ったもの。データ的には K Q B  N R P を使っているのと同じだ。白駒しか定義されていない。

右の盤面は board fontを使ったもの。大きさを変えるには

\setboardfontsize{5mm}

という命令を使う。データは 黒地黒駒 黒地白駒 白地黒駒 白地地白駒 の別とその他に黑地無駒 白地無駒 がそれぞれ、英字 に割り当てられている。  

ソースは将棋世界の図面擬を作った時のモノの使い回し。プレアンブルの頭は、、

%% Typeset LuaLaTeX 文字コード UTF-8 ltjsarticle で日本語
\documentclass{ltjsarticle} 
\usepackage{chessfss}
\usepackage{tikz}

とシンプル。 ソースの主要部分は 

\Huge  \BlackKingOnWhite \BlackEmptySquare \king 王 \queen 后 \bishop 僧 \knight 騎 \rook 城

\Large \BlackQueenOnWhite \BlackEmptySquare \king 王 \queen 后 \bishop 僧 \knight 騎 \rook 城 

\large \WhiteQueenOnWhite \BlackEmptySquare \king 王 \queen 后 \bishop 僧 \knight 騎 \rook 城 

\normalsize \WhiteKingOnWhite \BlackEmptySquare \king 王 \queen 后 \bishop 僧 \knight 騎 \rook 城 

\setboardfontsize{5mm}
\begin{図面}
\後手{1}{1}{香}
\後手{2}{1}{\knight}
\後手{3}{1}{銀}
\後手{4}{1}{金}
\後手{5}{1}{\king}
\後手{6}{1}{\queen}
\後手{2}{2}{\bishop}
\後手{8}{2}{\rook}
\後手{5}{3}{\pawn}
\先手{1}{9}{香}
\先手{2}{9}{\knight}
\先手{3}{9}{銀}
\先手{4}{9}{金}
\先手{5}{9}{\king}
\先手{6}{9}{\queen}
\先手{8}{8}{\bishop}
\先手{2}{8}{\rook}
\先手{5}{7}{\pawn}
\持駒Chess{\pawn}
\end{図面}
\begin{図面}
\後手{1}{1}{香}
\後手{2}{1}{\BlackKnightOnWhite}
\後手{3}{1}{銀}
\後手{4}{1}{金}
\後手{5}{1}{\BlackKingOnWhite}
\後手{6}{1}{\BlackQueenOnWhite}
\後手{2}{2}{\BlackBishopOnWhite}
\後手{8}{2}{\BlackRookOnWhite}
\後手{5}{3}{\BlackPawnOnWhite}
\先手{1}{9}{香}
\先手{2}{9}{\WhiteKnightOnWhite}
\先手{3}{9}{銀}
\先手{4}{9}{金}
\先手{5}{9}{\WhiteKingOnWhite}
\先手{6}{9}{\WhiteQueenOnWhite}
\先手{8}{8}{\WhiteBishopOnWhite}
\先手{2}{8}{\WhiteRookOnWhite}
\先手{5}{7}{\WhitePawnOnWhite}
\持駒Chess{\WhitePawnOnWhite}
\end{図面}

LaTeX で Chess の図面

さて、LaTeX で Chess の図面を作ることの基本的な事は出来たのだが、それからがムズイ。
下の画像は 'Pawn Endings' Yuri Averbakh, I.Maizelis (1974) Batsford である。
図中に記号があり、また部分図なのだった。手順は昔懐かしいタイプである、こちらで覚えた所為か今の座標タイプはまだ馴染めていなかったりする。それはさておき…
PawnEndings003.jpg
何回かトライしても図中の記号が出ないのだった。マニュアルを数回読んだところで、 xskak(skak)は内部ではchessboard という package を使っているのが解った。ということは、手順解析までしなければ chessboard だけでも、図面が表示出来るのだった。ということで、 chessboard のマニュアルも数回読んだけども、進展はなかった。
困ったときは Net 検索。情報も少ないし殆どが英語でよく解らん。載っているソースを copy して使ってみても思わしくないので、諦めかけたときにふと…

\documentclass[9pt,a4j,english,twocolumn]{jsbook}

として、pLaTeX を使っていたのだが、LuaLaTeX を使ってみた。jsbook.sty との相性が悪いみたいなので、違ったスタイル ltjsarticle.sty を使ってみたら、うまく行ったのだった。プレアンブルの最初の部分は

\documentclass[9pt]{ltjsarticle}
\usepackage[margin=2cm]{geometry}
\usepackage{chessboard}

という、スッキリしたものになった。 いろいろ package を読み込んでいたのがウソみたいだった。ファイルは Shift-Jis ではなく UTF-8 でセーブする。(英語だけだったら、バイナリーでも同じファイル内容になるようだ。)0307_B.jpg
図面表示部分のソースは、以下の通り。

\setchessboard{%
showmover=false,
label=false,
marginwidth=0.5em,
pgfstyle=bottomlefttopborder,
markregion=a1-d8
}

\raisebox{16em}{1 +/=}%
\chessboard[
setfen=2k5/8/1KP5,
printarea=a1-d8,
pgfstyle=cross,
shortenstart=0.7ex,
shortenend=0.7ex,
markfields={b7,d7}
]
\raisebox{16em}{2}%
\chessboard[
setfen=2k5/8/2K5/2P5,
printarea=a1-d8,
pgfstyle=cross,
shortenstart=0.7ex,
shortenend=0.7ex,
markfields={b7,d7}
]

いろいろと面白い事も出来るようになったが、まだまだ奥が深いのだった。PDF は ホームにアップした