我应该事先解释一下,我使用 XeLaTeX,因此我可以使用各种字体和 Unicode 支持。
现在,我经常使用“投票箱”(U+2610)和“带支票的投票箱”(U+2611)来进行出勤协议。
现在,我想添加另一个类似的字符,但在投票箱内添加一个小“e”或“E”。这就是我计划用于“excused”的字符。我更愿意将“BALLOT BOX”字符与较小的“E”混合,而不是构建新的形状作为 SVG 或其他东西,这样在更改为其他字体时就不会有问题了。
答案1
好吧,也许你可能只使用\fbox
,然后你可以改变间距和字体大小:
\documentclass{article}
\usepackage{relsize}
\begin{document}
A\raisebox{0.1em}{\smaller\fboxsep0.1em\fbox{E}}B
\end{document}
您不需要 Unicode 字体。
当然,你可以混合这两个符号:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial Unicode MS}
\usepackage{relsize}
\begin{document}
A\ooalign{\symbol{"2610}\cr\hfil\smaller[2]\raisebox{0.1em}{E}\hfil\cr}B\symbol{"2611}
\end{document}
答案2
以下示例定义了\ballot
一个参数,该参数被水平和垂直居中地放入空投票箱中。如有必要,内容会缩小以适合投票箱。
\documentclass[12pt]{article}
\usepackage{graphics}
\usepackage{fontspec}
\newdimen\BallotDimen
\newsavebox\BallotBoxEmpty
\newsavebox\BallotBoxChar
\newcommand*{\ballot}[1]{%
\begingroup
\setlength{\fboxrule}{0pt}%
\sbox\BallotBoxEmpty{^^^^2610}%
\setlength{\fboxsep}{.175\wd\BallotBoxEmpty}%
\BallotDimen=\dimexpr\wd\BallotBoxEmpty-2\fboxsep\relax
\sbox\BallotBoxChar{#1}%
\ifdim\wd\BallotBoxChar>\BallotDimen
\sbox\BallotBoxChar{\resizebox{\BallotDimen}{!}{\usebox\BallotBoxChar}}%
\fi
\ifdim\dp\BallotBoxChar>0pt %
\sbox\BallotBoxChar{\raisebox{\dp\BallotBoxChar}{\usebox\BallotBoxChar}}%
\fi
\ifdim\ht\BallotBoxChar>\BallotDimen
\sbox\BallotBoxChar{\resizebox{!}{\BallotDimen}{\usebox\BallotBoxChar}}%
\fi
\ooalign{%
\usebox\BallotBoxEmpty\cr
\hfil
\raisebox{.5\dimexpr\ht\BallotBoxEmpty-\ht\BallotBoxChar}%
{\usebox\BallotBoxChar}%
\hfil
}%
\endgroup
}
\begin{document}
\fontspec{FreeSerif.otf}
^^^^2610^^^^2611^^^^2612\ballot{E}\ballot{e}\ballot{g}
\end{document}