我想使用骰子符号,例如在Andrew Swann 的回答,给定9 以内数字的骰子符号,在数学等式中。
例如,为了模拟投掷后的结果集,我想这样写:
$$ \Omega = \{1, 2, 3, 4, 5, 6\} $$
其中每个数字都由相应的骰子符号替换。
答案1
(2024 年 1 月 31 日:更新答案,提及fontawesome5
综合 LaTeX 符号列表中列出了另一个包 -- -- 。)
(2021 年 6 月 29 日:更新了答案,提到另外两个包 --ifsym
和utfsym
-- 提供了让用户画骰子的宏。)
根据当前版本(2024 年 1 月 3 日)全面的 LaTeX 符号列表,有 6 个包提供绘制骰子的宏:epsdice
、hhcount
、stix
、ifsym
、utfsym
和fontawesome5
。
前 5 个包允许用户绘制白底黑字的骰子符号;相反,该
fontawesome5
包提供了绘制黑底白字的骰子符号的宏。不幸的是,定制骰子包,它引入于@PeterRowlett 的回答,在《综合 LaTeX 符号列表》文档中没有提及。
这是一个使用该epsdice
包的示例。
\documentclass{article}
\usepackage{epsdice}
\begin{document}
\[
\Omega=\{ \epsdice{1}, \epsdice{2}, \epsdice{3},
\epsdice{4}, \epsdice{5}, \epsdice{6} \}
\]
\end{document}
附录回答了原帖作者的后续询问:为了将骰子符号在数学轴上对齐,您可以将它们包裹在\vcenter{\hbox{...}}
“包装器”中。
\documentclass{article}
\usepackage{epsdice}
\newcommand\vcdice[1]{\vcenter{\hbox{\epsdice{#1}}}}
\begin{document}
\[
\Omega=\{ \vcdice{1}, \vcdice{2}, \vcdice{3},
\vcdice{4}, \vcdice{5}, \vcdice{6}
\}
\]
\end{document}
第二附录:如果您可以自由使用 LuaLaTeX,则可以使用 Luafor
循环以编程方式生成所有 6 个骰子符号。如果只需要生成 6 个符号,此功能似乎不是什么大问题。当然,对于涉及对同一宏进行十几次或更多次调用的用例,它更为重要。
% !TEX program = lualatex
\documentclass{article}
\usepackage{epsdice}
\newcommand\vcdice[1]{\vcenter{\hbox{\epsdice{#1}}}}
\begin{document}
\[
\Omega = \{
\directlua{ for i=1,6 do
tex.sprint ( "\\vcdice{" .. i .. "}" )
if i<6 then tex.sprint "," end
end }
\}
\]
\end{document}
答案2
我最近写了一个骰子包定制骰子可以做到这一点。
绘制标准骰子的命令是\dice{n}
。在我看来,{...} 中的内容似乎位于线下,因为它与周围的文本对齐,并且 {...} 部分位于线下。在 customdice 包中,我提供了一个命令 \setdicebaseline{},可以从其默认值 0.02 增加以降低绘图。通过反复试验,我认为 0.2 看起来不错。如下所示。
\documentclass{article}
\usepackage{customdice}
\begin{document}
\[ \Omega = \{\dice{1},\dice{2},\dice{3},\dice{4},\dice{5},\dice{6}\} \]
\setdicebaseline{0.2}
\[ \Omega = \{\dice{1},\dice{2},\dice{3},\dice{4},\dice{5},\dice{6}\} \]
\end{document}
这会产生如下输出
包内有多种选项可以定制骰子面的大小和颜色。
\setdicebaseline{0.02}
如果您稍后想要\dice
在常规文本中使用内联文本,则需要这样做。
实际上,我可能更愿意通过在我调用的命令中编写一个小循环来减少生成方程所需的代码量\drawdice
,就像这样。
\documentclass{article}
\usepackage{customdice}
\newcounter{num_dice}
\newcommand{\drawdice}[1]{%
% count the items
\foreach \i in {#1}{%
\setcounter{num_dice}{\i}
}%
% draw a dice for each
\foreach \i in {#1}{%
\dice{\i}%
\ifnum\i<\value{num_dice}% include a comma if it's not the last one
,%
\fi%
}
}
\begin{document}
\setdicebaseline{0.2}
\[ \Omega = \{\drawdice{1,2,3,4,5,6}\} \]
\[ \Omega = \{\drawdice{1,3,5,6,8}\} \]
\[ \Omega = \{\drawdice{2,4,6}\} \]
\[ \Omega = \{\drawdice{6}\} \]
\end{document}
产生