![如何减少推理规则的规模?](https://linux22.com/image/441166/%E5%A6%82%E4%BD%95%E5%87%8F%E5%B0%91%E6%8E%A8%E7%90%86%E8%A7%84%E5%88%99%E7%9A%84%E8%A7%84%E6%A8%A1%EF%BC%9F.png)
我正在使用包mathpartir
和环境mathpar
。在环境中,我使用命令\inferrule
写下一些推理规则。问题是这些规则太大了,我的文档中有太多规则,所以我很难将它们放进去。我尝试了一些降低字体大小的方法,但没有成功。我也不确定尝试缩放图形是否是个好主意,因为我希望规则本身更小,这样它们才能更好地适应图形。
我的代码的最小示例如下:
\documentclass[11pt]{article}
\usepackage{mathpartir}
\begin{document}
\begin{figure}[h]
\begin{mathpar}
\inferrule*[left=Rule-X] { x = 1 }
{ x = 10 }
\inferrule*[left=Rule-Y] { y = 1 }
{ y = 10 }
\end{mathpar}
\end{figure}
\end{document}
谢谢你!
答案1
您可以全局设置标签的样式:
\documentclass[11pt]{article}
\usepackage{mathpartir}
\makeatletter
\define@key {mprset}{style}[1]{\def\TirNameStyle{#1}}
\makeatother
\mprset{style={\scriptsize\scshape}}
\begin{document}
\begin{mathpar}
\inferrule*[left=Rule-X] { x = 1 }
{ x = 10 }
\inferrule*[left=Rule-Y] { y = 1 }
{ y = 10 }
\end{mathpar}
\end{document}
您可以使用leftstyle
或rightstyle
分别设置左标签或右标签。
\makeatletter
和之间的代码是必需的,因为包中有一个有趣的错误。和键\makeatother
不需要更改。 在原始代码中,我们发现leftstyle
rightstyle
\define@key {mprset}{style}[1]{\def\TirNameStyle{#1}def}
def
当键被设置时它将被排版。
如果您的目的是以缩小的尺寸打印整个内容:
\documentclass[11pt]{article}
\usepackage{mathpartir}
\makeatletter
\define@key {mprset}{style}[1]{\def\TirNameStyle{#1}}
\makeatother
\AtBeginEnvironment{mathpar}{\scriptsize}
\mprset{style={\scriptsize\scshape}}
\begin{document}
\begin{mathpar}
\inferrule*[left=Rule-X] { x = 1 }
{ x = 10 }
\inferrule*[left=Rule-Y] { y = 1 }
{ y = 10 }
\end{mathpar}
\end{document}
您还可以选择性地将尺寸应用于环境,但这需要使用不同的名称。
\documentclass[11pt]{article}
\usepackage{mathpartir}
\makeatletter
\define@key {mprset}{style}[1]{\def\TirNameStyle{#1}}
\makeatother
\newenvironment{mymathpar}[1][]
{%
\AtBeginEnvironment{mathpar}{\scriptsize}%
\mprset{style={#1\scshape}}%
\mathpar
}
{\endmathpar}
\begin{document}
\begin{mymathpar}
\inferrule*[left=Rule-X] { x = 1 }
{ x = 10 }
\inferrule*[left=Rule-Y] { y = 1 }
{ y = 10 }
\end{mymathpar}
\begin{mymathpar}[\scriptsize]
\inferrule*[left=Rule-X] { x = 1 }
{ x = 10 }
\inferrule*[left=Rule-Y] { y = 1 }
{ y = 10 }
\end{mymathpar}
\end{document}
答案2
@andrew-swann 在评论中指出,可以通过在环境中指定字体大小来缩小字体mathpar
,如下所示:
\documentclass[11pt]{article}
\usepackage{mathpartir}
\begin{document}
\begin{figure}[h]
\begin{mathpar}\tiny
\inferrule*[leftstyle={\tiny \sc},left=Rule-X] { x = 1 }
{ x = 10 }
\inferrule*[leftstyle={\tiny \sc},left=Rule-Y] { y = 1 }
{ y = 10 }
\end{mathpar}
\end{figure}
\end{document}
请注意,在标签中我还选择了字体大小和\sc
字体样式。在定义标签之前定义样式很重要,因为按相反的顺序则不起作用。