![表格内的 Prooftree 吗?](https://linux22.com/image/454382/%E8%A1%A8%E6%A0%BC%E5%86%85%E7%9A%84%20Prooftree%20%E5%90%97%EF%BC%9F.png)
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}