Alinhar o lado esquerdo da mesa com \ parindent
Estou usando o ambiente tabularx para apresentar argumentos formais, e no momento a coluna da esquerda está alinhada com a margem esquerda do texto e a coluna da direita está alinhada com a margem direita. Por exemplo:
Como faço para que a coluna esquerda seja alinhada com o recuo do parágrafo, mas a coluna direita fique alinhada com a margem direita? Eu tentei usar o changepagepacote e o \adjustwidthcomando, mas isso não parece estar ajudando, nem adicionar \hspace{\parindent}em vários lugares. Tenho certeza de que existe uma maneira muito simples de fazer isso, mas não sei como.
Aqui está um 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}
Obrigado!
Respostas
O valor padrão de \parindentna articleclasse do documento é 1.5em. Para atingir seu objetivo de formatação, é suficiente mudar
\begin{tabularx}{\textwidth}{@{} rXr @{}}
para
\begin{tabularx}{\textwidth}{@{\hspace{1.5em}} rXr @{}}
Uma vez que a largura total utilizável do tabularxambiente é reduzida em 1.5em, o LaTeX diminuirá automaticamente a largura da Xcoluna nessa quantidade para garantir que ela continuará a caber dentro do bloco de texto.
Adendo : caso você não saiba o valor de \parindent, você pode executar, digamos,
\newlength\origparindent
\setlength{\origparindent}{\parindent}
algum tempo antes de iniciar o tableambiente e substituir
\begin{tabularx}{\textwidth}{@{\hspace{1.5em}} rXr @{}}
com
\begin{tabularx}{\textwidth}{@{\hspace{\origparindent}} rXr @{}}
Você não precisa saber o valor de \parindent, porque o TeX sabe disso.
Além disso, você não quer um tableambiente, porque é um objeto flutuante e muito provavelmente deseja o material lá , não em outro lugar.
Você pode usar um enumerateambiente devidamente configurado com a ajuda de enumitem. Empurrar algo para a margem direita é fácil com \hfill, desde que o material anterior permita a colocação, mais precisamente não se sobreporia à etiqueta.
\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}
Algumas notas finais. Usei \mathit{val}, porque senão as letras ficam muito espaçadas (porque denotam o produto de três variáveis). Eu saí, \varnothingmesmo se odiando por denotar o conjunto vazio.