为了练习,我尝试模仿我在一篇论文中找到的图形。它看起来像这样:
现在,我所拥有的是这样的:
我想我成功地使用表格将两个块放在了右上角。第一列是名称,第二列是变量名称,第三列是 ::==,最后一列是案例。
但是,我不知道该怎么做其他的事情。
- 如何添加“一致性”、“表达式类型”等标题?
- 如何添加与标题在同一行但右对齐的小框?
- 如何让一致性行上的公式看起来不全都混杂在一起?
- 我怎样才能让我的表格不溢出边距呢?
这是我当前的 Latex 代码:
\newcommand{\LABELS}{
\begin{tabular}{l l c l}
Blame labels & $\ell$ \\
Base types & $B$ & $::=$ & \<int> $|$ \<bool> \\
Types & $T$ & $::=$ & $B$ $|$ $T -> T$ $|$ $\star$
\end{tabular}
}
\newcommand{\VALUES}{
\begin{tabular}{l l c l}
Constants
& $k$ & $::=$
& \<true> $|$ \<false> $|$ 0 $|$ $\dots$ \\
Expressions
& $e$ & ::=
& $k$ $|$ $x$ $|$ $\lambda x:T.e$ $|$ $(e\;e)^\ell$ \\
\end{tabular}
}
\newcommand{\RULES}{
\inference*{ \\ }{ \star \sim T }
\inference*{ \\ }{ T \sim \star }
\inference*{ A \sim B \\ }{ $\ldots$ }
}
\begin{figure}[H]
\begin{tabular}{l l}
\LABELS & \VALUES \\
\RULES
\end{tabular}
\end{figure}
宏\inference
和\<...>
宏来自semantic
包。无论如何,我真正想弄清楚的是整体布局 - 公式本身并不那么重要。