我的论文包含一些逻辑证明,但我希望它们以特定的方式格式化,并将所采用的前提和规则对齐在右侧。
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{tabularx}
\begin{document}
\begin{enumerate}[label = (\arabic*)]
\item $(p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}) \supset (q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7} \wedge q_{8} \wedge q_{9} \wedge q_{10}) $
\item $p_{1} \wedge p_{2} \wedge p_{4} \wedge p_{3} \wedge p_{5}$
\item $p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}$
\item $p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}$
\item $q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7} \wedge q_{8} \wedge q_{9} \wedge q_{10}$
\end{enumerate}
输出:
但我想将所采用的前提数字和规则排列在右侧,如下所示:
我尝试了几种不同的方法,但都没有得到我想要的结果。例如:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{tabularx}
\begin{document}
\begin{flalign*}
(1) & (p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}) \supset (q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7}) & (RA) & \\
(2) & p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} & (RA) & \\
(3) & p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10} & (RA) & \\
(4) & p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10} & (2,3 \wedge I) & \\
(5) & q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7} & (1,4 MP) & \\
\end{flalign*}
\end{document}
给我:
但是,当前提太长时,这会将右侧的标签推离页面。还有另一种尝试,使用 tabularx(我真的不知道如何使用):
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{tabularx}
\begin{document}
\begin{center}
\begin{tabularx}{\textwidth}{@{}X@{}X@{}X@{}}
(1) & $(p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}) \supset (q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7} \wedge q_{8}) $ & (RA) \\
(2) & $p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5}$ & (RA) \\
(3) & $p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}$ & (RA) \\
(4) & $p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}$ & (2,3 $ \wedge $I) \\
(5) & $q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7} \wedge q_{8}$ & (1,4 MP)
\end{tabularx}
\end{center}
\end{document}
这使:
理想情况下,我想要的是一些类似于 enumitem 环境的东西,但允许我将前提规则标签放在右侧(当前提跨越两行时,与顶行齐平)。
非常感谢你的帮助!
答案1
我会使用enumerate
而不是对齐。
\documentclass{article}
\usepackage{amsmath,enumitem}
\newenvironment{deduction}
{\enumerate[label=(\arabic*),ref=\arabic*]}
{\endenumerate}
\newcommand{\filler}[1]{%
\unskip\nobreak\hfill\penalty50\hskip1em\null\nobreak
\hfill\mbox{(#1)}{\parfillskip=0pt \par}%
}
\begin{document}
\begin{deduction}
\item\label{a}
$(p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge
p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}) \supset\hfill\break (q_{1} \wedge q_{2} \wedge
q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7} \wedge q_{8} \wedge
q_{9} \wedge q_{10})$\filler{RA}
\item\label{b}
$p_{1} \wedge p_{2} \wedge p_{4} \wedge p_{3} \wedge p_{5}$\filler{RA}
\item\label{c}
$p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}$\filler{RA}
\item\label{d}
$p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge
p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}$\filler{\ref{b}, \ref{c}, $\wedge$I}
\item\label{e}
$q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge
q_{7} \wedge q_{8} \wedge q_{9} \wedge q_{10}$\filler{\ref{a}, \ref{b}, MP}
\end{deduction}
\end{document}
在网站上查找“Bourbaki”来了解 的定义\filler
。
答案2
这可以在 内完成amsmath
。
- 增加了
leqno
将公式编号移动到表达式左侧并fleqn
减少左边距的选项。 - 为每一行添加了一个
\label{}
,以便您可以\ref{}
轻松地在“推论栏”中找到它们 - 当前提的顺序发生变化时,它们也会发生变化,并且您可以\ref{}
在证明之外找到它们。 - 使用
alignat
带有选项的环境{2}
明确指定列之间的间距,\quad
在第一行中。 - 第一列是“虚拟”列,以确保对齐。
\text{}
按照手册的建议使用amsmath
。实际上,如果“MP”是“肯定前件式”的缩写,那么您不会想使用它,$MP$
因为它意味着“乘积 M*P”,正如 和 的不同字距所表明的$MP$
那样$\text{MP}$
。- 对于第一行,较长的一行,
aligned
在合适的位置包含一个嵌套的断行。
\documentclass[12pt]{article}
\usepackage[leqno,fleqn]{amsmath}
\begin{document}
\begin{alignat}{2}
\label{eq:1} & \begin{aligned}(p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10}) \supset\\ (q_{1} \wedge q_{2} \wedge q_{3} \wedge q_{4} \wedge q_{5} \wedge q_{6} \wedge q_{7} \wedge q_{8} \wedge q_{9} \wedge q_{10}) \end{aligned} &\quad& \text{(RA)} \\
\label{eq:2} & p_{1} \wedge p_{2} \wedge p_{4} \wedge p_{3} \wedge p_{5} && \text{(RA)} \\
\label{eq:3}& p_{1} \wedge p_{2} \wedge p_{4} \wedge p_{3} \wedge p_{5} && \text{(RA)} \\
\label{eq:4}& p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10} && \text{(\ref{eq:2}, \ref{eq:3} $\wedge$ I)}\\
\label{eq:5}& p_{1} \wedge p_{2} \wedge p_{3} \wedge p_{4} \wedge p_{5} \wedge p_{6} \wedge p_{7} \wedge p_{8} \wedge p_{9} \wedge p_{10} && (\ref{eq:1}, \ref{eq:4}, \text{MP})
\end{alignat}
\end{document}