
我正在使用 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
即使我討厭它表示空集,我還是離開了。