使用 \parindent 将表格左侧对齐

使用 \parindent 将表格左侧对齐

我正在使用 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中的默认值为。因此,要实现格式化目标,只需更改article1.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即使我讨厌它表示空集,我还是放弃了。

相关内容