![国际象棋符号不显示棋子字体](https://linux22.com/image/261730/%E5%9B%BD%E9%99%85%E8%B1%A1%E6%A3%8B%E7%AC%A6%E5%8F%B7%E4%B8%8D%E6%98%BE%E7%A4%BA%E6%A3%8B%E5%AD%90%E5%AD%97%E4%BD%93.png)
我是 LaTeX/ 的新手skak
。我用htlatex
它来生成一本小型电子书 html。
\documentclass{book}
\usepackage[ps,mover]{skak}
\title{test1\\Test}
\author{Asim}
\begin{document}
\parindent=0pt
\maketitle
\newgame
\mainline{1. d4 d5} \mainline{2. c4 Nf6 }
\end{document}
但结果符号显示为英文字母“N”,而不是小雕像符号。我做错了什么?
我已附加日志文件(当我运行时htlatex
)、结果.mobi
文件和我有 Figurine 字体的位置:
https://docs.google.com/folder/d/0B5UN6Nh9m6BjZmxPNjV5NHhGcU0/edit
如果有人能帮助我我将非常感激,因为我已经尽力了。
答案1
您需要提供文件SkakNew-FigurineBold.htf
。这是虚拟超文本字体,用于tex4ht
将字符从字体编码转换为xml
编码。
该文件看起来应该像这样:
SkakNew-FigurineBold 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
'A' '' 65
'♗' '1' 66
'C' '' 67
'D' '' 68
'E' '' 69
'F' '' 70
'G' '' 71
'H' '' 72
'I' '' 73
'J' '' 74
'♔' '1' 75
'L' '' 76
'M' '' 77
'♘' '1' 78
'O' '' 79
'P' '' 80
'♕' '1' 81
'♖' '1' 82
'S' '' 83
'T' '' 84
'U' '' 85
'V' '' 86
'W' '' 87
'X' '' 88
'Y' '' 89
'Z' '' 90
'[' '' 91
'“' '' 92
']' '' 93
'ˆ' '' 94
'˙' '' 95
'‘' '' 96
'a' '' 97
'b' '' 98
'c' '' 99
'd' '' 100
'e' '' 101
'f' '' 102
'g' '' 103
'h' '' 104
'i' '' 105
'j' '' 106
'k' '' 107
'l' '' 108
'm' '' 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-FigurineBold 32 121
对你来说重要的一行是
'♗' '1' 66
'♔' '1' 75
'♘' '1' 78
'♕' '1' 81
'♖' '1' 82
这些行表示字符 B、N、P、Q 和 R 被转换为xml
国际象棋字符的 unicode 表示实体。1
第二列中的数字表示这些字符将转换为图像。这在您的情况下是必要的,因为在电子书中您无法控制字体。特别是旧版本kindle
不支持国际象棋 unicode 字符,因此您应该将它们作为图像插入。您还应该为tex4ht
转换脚本创建自定义配置文件,因为默认情况下,图像适合分辨率较低的计算机屏幕,但e-ink
设备的分辨率约为 167 ppi。有关此内容的更多信息,请参阅这个答案。如果您想要的是字符而不是图像,只需删除1
这些行上的字符即可。
您还应该为 创建配置文件skak
,因为如果您尝试打印chessboard
而不是图像,您也将只获得一些字符。
文件skak.4ht
\NewConfigure{showboard}{2}
\let\oldshowboard\showboard
\Configure{showboard}{\Picture*{}}{\EndPicture}
\renewcommand\showboard{\a:showboard\oldshowboard\b:showboard}
一些示例文件skak-sample.tex
:
\documentclass{book}
\usepackage[ps,mover]{skak}
\begin{document}
\parindent=0pt
\newgame
\mainline{1. d4 d5} \mainline{2. c4 Nf6 }
\mainline{3.Ka1 Qa1 4.Ra1 Ba1 5.Na1 a1}
\showboard
\end{document}
现在htlatex skak-sample
您将获得: