Org模式:描述棋局并自动生成棋盘图像

eng*_*erX 5 emacs elisp chess org-mode fen

我写关于国际象棋的文章。我经常需要使用名为 FEN 的标准格式来描述国际象棋位置,并希望它自动转换为 png 图像,并且当我将 org 文档导出为 LaTeX 或 html 时,图像将被内联。我认为这是可以做到的,因为 ditaa 的工作原理似乎类似。

例如,使用 FEN 字符串“8/pppr1kpp/8/8/8/5P2/PPP1RKPP/8 w - - 0 1”作为输入,我创建一个名为 chessboard.tex 的 tex 文件:

\documentclass[border={0 0 3 0}, convert={density=150}]{standalone}
\usepackage{xskak}
\usepackage{chessboard}
\usepackage{chessfss}
\usepackage{fontspec}
\begin{document}

\setchessboard{normalboard, showmover=true, moverstyle=triangle, label=false}
\setboardfontfamily{merida}

\fenboard{8/pppr1kpp/8/8/8/5P2/PPP1RKPP/8 w - - 0 1} \chessboard

\end{document}
Run Code Online (Sandbox Code Playgroud)

使用 shell 命令 $> xelatex --shell-escape chessboard.tex 会生成以下 png 图像(由于使用了独立包)。 在此输入图像描述

我怎样才能自动化这个过程,这样我就可以放入一个像这样的组织文件

#+BEGIN_SRC chessfen
8/pppr1kpp/8/8/8/5P2/PPP1RKPP/8 w - - 0 1
#+END_SRC
Run Code Online (Sandbox Code Playgroud)

上述过程是否自动化?

rvf*_*068 2

像这样的东西吗?

#+title: Chess
#+startup: inlineimages
#+property: header-args:latex+ :imagemagick yes :iminoptions -density 300 -resize 400
#+property: header-args:latex+ :headers '("\\usepackage{chessboard}\\usepackage{xskak}\\usepackage{chessfss}") :border 1pt

* Chess

#+begin_src latex :file chess.png :results raw
\setchessboard{normalboard, showmover=true, moverstyle=triangle, label=false}
\fenboard{8/pppr1kpp/8/8/8/5P2/PPP1RKPP/8 w - - 0 1} \chessboard 
#+end_src
Run Code Online (Sandbox Code Playgroud)