表格内的 Prooftree 吗?

表格内的 Prooftree 吗?

1.问题
我正在尝试构建一个具有两列和一行的表格,使得:

  • 第一列由一个字母组成(垂直居中),其右侧是一张图片
  • 第二列由 bussproofs 包编写的证明组成
  • 每个单元格垂直和水平居中
  • 表格不超过文本宽度

我怎样才能实现我的愿望?

2.尝试
我的尝试如下:


\documentclass[a4paper]{article}

\usepackage{bussproofs}
\usepackage{tabularx}
\usepackage{graphicx}
\setlength{\textwidth}{17cm}
\hoffset -20mm \topmargin= -13mm

\begin{document}

\begin{tabularx}{\textwidth}{X|X}
$\alpha_{A,B,C}^{\otimes} =$

\includegraphics[scale=0.5]{example-image-a}& 

\AxiomC{\strut}
\RightLabel{(Ax)}
\UnaryInfC{$A \vdash A$}
\AxiomC{\strut}
\RightLabel{(Ax)}
\UnaryInfC{$B \vdash B$}
\AxiomC{\strut}
\RightLabel{(Ax)}
\UnaryInfC{$C \vdash C$}
\RightLabel{$(\otimes R)$}
\BinaryInfC{$B,C \vdash B \otimes C$}
\RightLabel{$(\otimes R)$}
\BinaryInfC{$A,B,C \vdash A \otimes (B \otimes C)$}
\RightLabel{$(\otimes L)$}
\UnaryInfC{$A\otimes B,C \vdash A \otimes (B \otimes C)$}
\RightLabel{$(\otimes L)$}
\UnaryInfC{$(A\otimes B) \otimes C \vdash A \otimes (B \otimes C)$}
\DisplayProof
\end{tabularx}
\end{document}

编译后的内容如下:

在此处输入图片描述

答案1

为了使图像相对于基线垂直居中,我建议使用adjustbox带有export选项的包。这会加载 graphicx,因此不需要单独加载,但会添加一个选项,valign用于将图像相对于文本的基线对齐。您可以使用m“中间”选项。

如果我理解正确的话,您想要将$\alpha_{A,B,C}^{\otimes} =$放在图像左侧的第一个单元格中,而不是图像上方?如果是这样,您不能在它和命令之间放置一个空行\includegraphics,因为这会被解释为段落分隔符。确保图像已缩放,以便它和起始行都适合在同一行。

bussproofs已经相对于基线垂直居中;为了在X列中获得水平居中,您可以定义一个新的列类型并将其\centering\arraybackslash添加到单元格中。

最后,我\noindent在 tabularx 之前添加了,因为它被缩进为新段落的开头,这导致它不太合适。这与使用 tabularx 并将宽度设置为 (\textwidth如您已经拥有的)一起使用,应该使表格具有正确的宽度,前提是内容适合。

以下是我的建议:


\documentclass[a4paper]{article}

\usepackage{bussproofs}
\usepackage{tabularx}
\usepackage[export]{adjustbox}
\setlength{\textwidth}{17cm}
\hoffset -20mm \topmargin= -13mm

\begin{document}

\newcolumntype{x}{>{\centering\arraybackslash}X}
\noindent\begin{tabularx}{\textwidth}{x|x}
$\alpha_{A,B,C}^{\otimes} =$
\includegraphics[valign=m,scale=0.5]{example-image-a}&
\AxiomC{\strut}
\RightLabel{(Ax)}
\UnaryInfC{$A \vdash A$}
\AxiomC{\strut}
\RightLabel{(Ax)}
\UnaryInfC{$B \vdash B$}
\AxiomC{\strut}
\RightLabel{(Ax)}
\UnaryInfC{$C \vdash C$}
\RightLabel{$(\otimes R)$}
\BinaryInfC{$B,C \vdash B \otimes C$}
\RightLabel{$(\otimes R)$}
\BinaryInfC{$A,B,C \vdash A \otimes (B \otimes C)$}
\RightLabel{$(\otimes L)$}
\UnaryInfC{$A\otimes B,C \vdash A \otimes (B \otimes C)$}
\RightLabel{$(\otimes L)$}
\UnaryInfC{$(A\otimes B) \otimes C \vdash A \otimes (B \otimes C)$}
\DisplayProof
\end{tabularx}

\end{document}

总线证明示例

相关内容