有谁知道如何让这些包一起工作。
最小示例(test.tex)。
\documentclass[12pt]{article}
\usepackage{xskak}
\begin{document}
\newchessgame[id=main]
\chessboard
\end{document}
tex4ebook 的配置文件是 sample.cfg
\Preamble{xhtml}
\CutAt{section}
\begin{document}
\EndPreamble
运行
tex4ebook -c sample test.tex
出现错误
(c:\miktex29\tex\latex\pgf\compatibility\pgfcomp-version-0-65.sty
! Undefined control sequence.
\pgfsys@svg@newline ->\Hnewline
l.190 \pgfusepathqfill}
有没有什么办法解决这一问题。
谢谢。
答案1
你得到的错误是已知问题。更有趣的问题是如何实际支持xskak
包。您可能希望支持至少两个功能:棋子字体和棋盘。
您可以使用以下字体定义文件获得对国际象棋图形的支持SkakNew.htf
:
SkakNew 32 121
'' '' 32
'!' '' 33
'”' '' 34
'#' '' 35
'$' '' 36
'%' '' 37
'&' '' 38
'’' '' 39
'(' '' 40
')' '' 41
'*' '' 42
'+' '' 43
',' '' 44
'-' '' 45
'.' '' 46
'/' '' 47
'0' '' 48
'1' '' 49
'2' '' 50
'3' '' 51
'4' '' 52
'5' '' 53
'6' '' 54
'7' '' 55
'8' '' 56
'9' '' 57
':' '' 58
';' '' 59
'¡' '' 60
'=' '' 61
'¿' '' 62
'?' '' 63
'@' '' 64
'→' '' 65
'♗' '' 66
'↑' '' 67
'⊙' '' 68
'△' '' 69
'□' '' 70
'⇗' '' 71
'⇔' '' 72
'⊞' '' 73
'╳' '' 74
'♔' '' 75
'⟂' '' 76
'≪' '' 77
'♘' '' 78
'≫' '' 79
'Ⅱ' '' 80
'♕' '' 81
'♖' '' 82
'>' '' 83
'⊕' '' 84
'○' '' 85
'⇆' '' 86
'W' '' 87
'×' '' 88
'Y' '' 89
'Z' '' 90
'[' '' 91
'“' '' 92
']' '' 93
'ˆ' '' 94
'˙' '' 95
'‘' '' 96
'⧉' '' 97
'⌓' '' 98
'±' '' 99
'⦂' '' 100
'∓' '' 101
'⩲' '' 102
'⩱' '' 103
'h' '' I can't find it, it is plus followed by minus
'i' '' minus followed by plus
'=' '' 106
'k' '' 107
'l' '' 108
'#' '' 109
'n' '' 110
'o' '' 111
'p' '' 112
'q' '' 113
'r' '' 114
's' '' 115
't' '' 116
'u' '' 117
'v' '' 118
'w' '' 119
'x' '' 120
'y' '' 121
SkakNew 32 121
稍微困难的是支持棋盘。tex4ht
可以使用命令将任何 LaTeX 代码转换为图片\Picture*{} ... \EndPicture
。我们只需要重新定义\chessboard
命令来合并它们,我尝试这样做没有成功。也许 Ulrike 会知道。
无论如何,作为一种解决方法,我们可以定义新的命令,比如说,当用编译文档时,\mychessfigure
它将调用\chessfigure
命令。\Picture
tex4ht
在文档序言中写明:
\newcommand\mychessboard[1][]{\chessboard[#1]}
并修改您的sample.cfg
:
\Preamble{xhtml}
\CutAt{section}
\begin{document}
\renewcommand\mychessboard[1][]{\HCode{<div class="chessboard">}\Picture*{}\chessboard[#1]\EndPicture\HCode{</div>}}
\EndPreamble
您需要在文档中将\chessboard
命令更改为:\mychessboard
\documentclass[12pt]{article}
\usepackage{xskak}
\newcommand\mychessboard[1][]{\chessboard[#1]}
\begin{document}
\newchessgame[id=main]
\mychessboard
\newchessgame
\mainline{1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6}
\xskakset{moveid=2w}
\mychessboard[setfen=\xskakget{nextfen}]\\[1ex]
Position after 2.\,\xskakget{lan}
\end{document}
正如我所说,这不是最好的解决方案,只是一种解决方法,这应该在chessboard
包 配置中进行处理chessboard.4ht
。
结果: