我正在使用 tabularx 环境来呈现形式参数,目前左列与文本左边距对齐,右列与右边距对齐。例如:
如何让左列与段落缩进对齐,而右列与右边距对齐?我尝试使用包changepage
和\adjustwidth
命令,但似乎没有帮助,\hspace{\parindent}
在各个地方添加也没有帮助。我相信有一种非常简单的方法可以做到这一点,但我不知道怎么做。
以下是 MWE:
\documentclass[12pt]{article}
\usepackage{tabularx} %tables
\usepackage{tabulary} %tables
\usepackage{lipsum}
\usepackage{upgreek} %greek letters
\usepackage{amssymb} %modal operators
\begin{document}
\lipsum[1-2]
\begin{table}[h!]
\centering
\setlength{\extrarowheight}{3pt}
\begin{tabularx}{\textwidth}{@{}rXr@{}}
(1) & $\varnothing \vdash \pi \leftrightarrow val(\ulcorner \pi \urcorner, \ulcorner \bot \urcorner)$ & ($\pi$ def.)\\
(2) & $\pi \vdash \pi$ & (Assumption)\\
(3) & $\pi \vdash val(\ulcorner \pi \urcorner, \ulcorner \bot \urcorner)$ & (1,2, MP)\\
(4) & $\pi \vdash \bot$ & (2,3, \textit{V-Detach})\\
(5) & $\varnothing \vdash val(\ulcorner \pi \urcorner, \ulcorner \bot \urcorner)$ & (4, \textit{V-Schema})\\
(6) & $\varnothing \vdash \pi$ & (1,5, MP)\\
(7) & $\varnothing \vdash \bot$ & (5,6, \textit{V-Detach})\\
\end{tabularx}
\end{table}
\lipsum[3-4]
\end{document}
谢谢!
答案1
文档类\parindent
中的默认值为。因此,要实现格式化目标,只需更改article
1.5em
\begin{tabularx}{\textwidth}{@{} rXr @{}}
到
\begin{tabularx}{\textwidth}{@{\hspace{1.5em}} rXr @{}}
由于总体可用的环境的宽度tabularx
减少了1.5em
,LaTeX 将自动将列的宽度减少X
相应的量,以确保它能继续适合文本块。
附录:如果你不知道的值\parindent
,你可以执行,比如说,
\newlength\origparindent
\setlength{\origparindent}{\parindent}
有时前启动table
环境并替换
\begin{tabularx}{\textwidth}{@{\hspace{1.5em}} rXr @{}}
和
\begin{tabularx}{\textwidth}{@{\hspace{\origparindent}} rXr @{}}
答案2
您不需要知道 的值\parindent
,因为 TeX 知道它。
你也不想要table
环境,因为它是一个漂浮的物体,你很可能想要材料那里,而不是其他地方。
您可以使用enumerate
在 的帮助下正确设置的环境enumitem
。使用 可以轻松地将某些内容推到右边距\hfill
,只要前面的材料允许放置,更准确地说,它不会与标签重叠。
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage{upgreek} %greek letters
\usepackage{amssymb} %modal operators
\usepackage{enumitem}
\newenvironment{sidecond}
{\begin{enumerate}[
label=(\arabic*),
leftmargin=\dimexpr\parindent+\labelsep,
labelwidth=0pt,
align=left
]}
{\end{enumerate}}
\begin{document}
\lipsum[2][1-5]
\begin{sidecond}
\item $\varnothing \vdash \pi \leftrightarrow
\mathit{val}(\ulcorner \pi \urcorner, \ulcorner \bot \urcorner)$\hfill ($\pi$ def.)
\item $\pi \vdash \pi$\hfill (Assumption)
\item $\pi \vdash \mathit{val}(\ulcorner \pi \urcorner, \ulcorner \bot \urcorner)$\hfill (1,2, MP)
\item $\pi \vdash \bot$\hfill (2,3, \textit{V-Detach})
\item $\varnothing \vdash \mathit{val}(\ulcorner \pi \urcorner, \ulcorner \bot \urcorner)$\hfill
(4, \textit{V-Schema})
\item $\varnothing \vdash \pi$\hfill (1,5, MP)
\item $\varnothing \vdash \bot$\hfill (5,6, \textit{V-Detach})
\end{sidecond}
\lipsum[4][1-3]
\end{document}
最后几点说明。我使用了\mathit{val}
,因为否则字母间距太大(因为它们表示三个变量的乘积)。\varnothing
即使我讨厌它表示空集,我还是放弃了。