我正在使用包sgame
来格式化标准格式的游戏。游戏通常在 内格式化,figure
但我想在 中使用它们equation
。我在标点符号的垂直间距方面遇到问题。
这是我使用的代码:
\documentclass{article}
\usepackage{color}
\usepackage{sgame}
\gamemathtrue
\begin{document}
\begin{equation}
\begin{game}{3}{2}
& F & O \\
F & 2, 2 & 0, 1 \\
O & 0, 0 & 1, 3 \\
P & 0, 0 & 1, 3
\end{game}
.
\end{equation}
\end{document}
结果如下:
我喜欢方程式编号的对齐方式,但不喜欢句号的对齐方式。我希望句号与表格最后一行的文本对齐。距离是0.3\baselineskip
底部水平线,但不是与基线的固定距离。
这就是我所追求的:
答案1
\documentclass{article}
\usepackage{color}
\usepackage{sgame}
\gamemathtrue
\begin{document}
\begin{equation}
\begin{game}{3}{2}
& F & O \\
F & 2, 2 & 0, 1 \\
O & 0, 0 & 1, 3 \\
P & 0, 0 & 1, 3\rlap{\quad.}
\end{game}
\end{equation}
\end{document}
答案2
事实证明,基线并非0.3\baselineskip
来自游戏底部。该sgame
包重新实现了数组结构,但有两个主要区别:
文本在单元格中居中,而不是以基线为 30%
数组周围的规则可能会与文本发生冲突,它们似乎处于一种覆盖状态
\gamestretch
以下解决方案处理这两个差异,并在改变和的值时起作用arrayrulewidth
。
\documentclass{article}
\usepackage{calc}
\usepackage{color}
\usepackage{sgamevar}
\newcommand{\punctuategame}[2]{%
\setbox0 = \hbox{#1}% box containing the whole game
\setbox1=\hbox{I}% box used to determined the height of text in a cell
\newlength{\vdisp}% vertical displacement of punctuation
\setlength{\vdisp}{-\dp0 - \arrayrulewidth + \gamestretch \baselineskip / 2 - \ht1 / 2}%
\newlength{\hdisp}% horizontal displacement of punctuation
\setlength{\hdisp}{0.5\arrayrulewidth}%
\mbox{#1}% placing the game
\raisebox{\vdisp}{\hspace{\hdisp}\mbox{#2}}}% placing punctuation
\begin{document}
\begin{equation}
\punctuategame{
\begin{game}{3}{2}
\> F \> O \\
F \> 2, 2 \> 0, 1 \\
O \> 0, 0 \> 1, 3 \\
P \> 0, 0 \> 1, 3
\end{game}
}{.}
\end{equation}
\end{document}