如何减少推理规则的规模?

如何减少推理规则的规模?

我正在使用包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}

在此处输入图片描述

您可以使用leftstylerightstyle分别设置左标签或右标签。

\makeatletter和之间的代码是必需的,因为包中有一个有趣的错误。和键\makeatother不需要更改。 在原始代码中,我们发现leftstylerightstyle

\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字体样式。在定义标签之前定义样式很重要,因为按相反的顺序则不起作用。

相关内容