内联国际象棋符号

内联国际象棋符号

我想将国际象棋符号内嵌到我的文档中。我知道,使用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 表示形式)。我还能尝试什么?

可接受的答案可能包括下列之一:

  1. 调整符号大小的方法skak如下\ColorPieceOnWhite
  2. 另一个包的建议包含在 TeXLive 中它可以给我内联棋子,
  3. 错误的解决方案! 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

缩放大尺寸(以占据“Xg”的垂直空间)。

\documentclass{article}
\usepackage{skak,scalerel}
\begin{document}
\scalerel*{\WhiteKingOnWhite}{Xg} and \scalerel*{\BlackKingOnWhite}{Xg}
\end{document}

在此处输入图片描述

答案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}

在此处输入图片描述

相关内容