![内联国际象棋符号](https://linux22.com/image/426469/%E5%86%85%E8%81%94%E5%9B%BD%E9%99%85%E8%B1%A1%E6%A3%8B%E7%AC%A6%E5%8F%B7.png)
我想将国际象棋符号内嵌到我的文档中。我知道,使用skak
,我可以使用 等命令生成美观的内嵌符号\symking
。但是,这些符号只有白色,我需要白色和黑色棋子。该skak
软件包还提供了像\WhiteKingOnWhite
和 这样的命令\BlackKingOnWhite
,它们看起来不错,但是太大了。我找不到调整它们大小的方法(我尝试使用内置命令\small
以及smaller
和 这样的软件包relzise
)。我还考虑使用像 这样的命令\Pisymbol{fselch}{x}
,其中x
是一个整数,来自我发现的一个名为 的软件包bartel-chess-fonts
,但它似乎不包含在 TeXLive 中,而且我不想费心安装其他软件包。最后,我尝试了\char"xxxx
,其中xxxx
是所需棋子对应的 unicode 说明符,但是我收到了错误! Bad character code (9812)
(不确定这是否相关,但 9812 是白王的 HTML 代码,我是在收到错误时尝试使用的棋子 unicode 表示形式)。我还能尝试什么?
可接受的答案可能包括下列之一:
- 调整符号大小的方法
skak
如下\ColorPieceOnWhite
, - 另一个包的建议包含在 TeXLive 中它可以给我内联棋子,
- 错误的解决方案
! Bad character code (9812)
,
或者其他可以给我我想要的结果的东西。
最小工作示例:
\documentclass{article}
\usepackage{skak}
\begin{document}
This king \WhiteKingOnWhite is way too big.
This king {\small\WhiteKingOnWhite} won't resize.
This king \symking is only available in white.
%This unicode king $\char"2654$ throws an error when uncommented.
\end{document}
答案1
答案2
我不确定这是否回答了你的问题,但使用 XeTeX 或 LuaTeX 包括国际象棋符号(范围 U+2654-U+265F)就像复制粘贴它们一样简单。显然你需要一种具有适当支持的字体(我选择了 DejaVu Sans):
\documentclass{standalone}
\usepackage{fontspec}
\newfontfamily{\chessfont}{DejaVu Sans}
\begin{document}
{%
\chessfont%
\char"265A %♚
\char"265B %♛
\char"265C %♜
\char"265D %♝
\char"265E %♞
\char"265F %♟︎
}
\end{document}
答案3
我只知道一种为 pdflatex 准备的字体提供了黑色小雕像,那就是 Berlin。但由于许可原因,texlive 中没有它,只有 ctan(在 enpassant 包中)和 miktex 中有。
您可以使用以下方式更改板面字体的大小\setboardfontsize
:
\documentclass{article}
\usepackage{chessfss}
\begin{document}
{\setfigfontfamily{berlin}
\figfont KQRBNP \fontshape{bl}\selectfont KQRBNP}
\bigskip
\BlackKingOnWhite \setboardfontsize{10pt} \BlackKingOnWhite
\end{document}
另外,您可以创建各种小雕像的图片(例如,使用 lualatex、standalone 和具有符号的开放类型字体之一),然后将它们与伪造的字体编码一起使用:
\documentclass{article}
\usepackage{chessfss,graphicx}
\makeatletter
\DeclareFontEncoding{LSFI}{}{}
\DeclareFontFamily{LSFI}{skaknew}{}
\DeclareFontSubstitution{LSFI}{skaknew}{m}{n}
\DeclareFontShape{LSFI}{skaknew}{m}{n}{<-> SkakNew-Figurine}{}
\DeclareTextCommand\cfss@symrook {LSFI}{\includegraphics[height=1em,page=1]{example-image-duck}}{}
\DeclareTextCommand\cfss@symknight {LSFI}{\includegraphics[height=1em,page=2]{example-image-duck}}
\DeclareTextCommand\cfss@symbishop {LSFI}{\includegraphics[height=1em,page=3]{example-image-duck}}
\DeclareTextCommand\cfss@symqueen {LSFI}{\includegraphics[height=1em,page=4]{example-image-duck}}
\DeclareTextCommand\cfss@symking {LSFI}{\includegraphics[height=1em,page=5]{example-image-duck}}
\DeclareTextCommand\cfss@sympawn {LSFI}{\includegraphics[height=1em,page=6]{example-image-duck}}
\newcommand\LSFIchess{\def\cfss@figfontencoding{LSFI}}
\makeatother
\usepackage[T1]{fontenc}
\begin{document}
{\LSFIchess\symking\symqueen\symrook\symbishop\symknight\sympawn}
\symqueen \symking\symqueen\symrook\symbishop\symknight\sympawn
\LARGE
{\LSFIchess\symking\symqueen\symrook\symbishop\symknight\sympawn}
\symqueen \symking\symqueen\symrook\symbishop\symknight\sympawn
\end{document}
答案4
还有skaknew
提供黑色部分的字体。它包含在 TeX Live/on CTAN 中。字体切换后,这些部分被编码为拉丁字母。白色部分为大写,相应的黑色部分为相同字母的小写。
标准位置略高于基线(因为棋子是要放在棋盘上的),如果需要的话,你可以用\raisebox
包装将其降低graphicx
。
例子:
\documentclass{article}
\usepackage[skaknew]{skak}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\font\skndia=SkakNew-DiagramT
\begin{document}
Above the baseline: \bgroup\skndia K\egroup\ and \bgroup\skndia k\egroup
All black pieces: \bgroup\skndia bknpqr\egroup
A bit lower: \raisebox{-2pt}{\bgroup\skndia K\egroup} and \raisebox{-2pt}{\bgroup\skndia k\egroup}
All black pieces: \raisebox{-2pt}{\bgroup\skndia bknpqr\egroup}
\end{document}