
Я использую пакет 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}