我寻求帮助,以找到一种有效的方法,在使用命令创建符号或文本表达式时\begin{equation}
,不仅从左边距缩进表达式,还缩进其括号内的数字。(这样做的动机在于逻辑的编辑惯例,即以符号形式或散文形式表达演绎论证的前提和结论,作为序列呈现,其中每个语句都占据一个以指定数字开头的缩进行。)目标是通过以下方式从左边距缩进数字npts. 并将语句缩进米点数为 0 <n<米。 通常n至少与 一样大\parindent
。例如,n = 32,m = 48。
我是 TeX 的新手,这是我在这里的第一篇帖子。从各种来源学习后,我首先尝试了以下方法。
\documentclass[12pt,letterpaper,leqno,fleqn]{article}
\usepackage{amsmath}
\usepackage{latexsym,amssymb}
\setlength{\mathindent}{24pt}
\newcommand{\texteq}[1]{\begin{equation}\text{\parbox{0.85\textwidth} {#1}}\end{equation}}
\begin{document}
## [A] ##
\begin{equation}
p \implies q
\end{equation}
\begin{equation}
p
\end{equation}
\begin{equation}
∴ q
\end{equation}
## [B] ##
\texteq{All bachelors are unmarried.}
\texteq{Jones is a bachelor.}
\texteq{∴ Jones is unmarried.}
\end{document}
[A] 得出以下结论。
先前的文本
(1)
答案1
尽管您表示倾向于使用数字方程式类型的解决方案,但我认为最好使用以下机制创建自定义枚举环境:枚举项包。这是一个非常强大的包,它允许您以几乎任何可以想象到的方式自定义列表——甚至可能还有一些您无法想象的方式…… :-)
以下答案显示了如何解决一些定制问题。请注意,在出现一些中间材料后重新开始列表编号完全没有问题。还可以使用常用的 LaTeX 工具交叉引用枚举的项目。
\documentclass[12pt,letterpaper]{article}
\usepackage{amsmath,amssymb,lipsum}
\newcommand\logic[1]{$\displaystyle#1$} % helper macro
\usepackage{enumitem} % see https://www.ctan.org/pkg/enumitem
% Create a custom enumerated environment called "mylist":
\newlist{mylist}{enumerate}{1} % Depth: just 1 level
\setlist[mylist]{label=(\arabic*), % parentheses around labels; arabic numerals
ref=\arabic*, % no parentheses in cross-references
labelindent=2\parindent, % distance to left-hand edge of text block
leftmargin = !, % compute as residual
rightmargin=1\parindent, % distance to right-hand edge of text block
resume % resume numbering automatically
}
% And, just for this example:
\usepackage[colorlinks]{hyperref}
\usepackage[noabbrev]{cleveref} % package for advanced cross-referencing
\crefname{mylisti}{item}{items} % choose singular & plural names
\begin{document}
\noindent\dots
\begin{mylist}
\item \logic{p \implies q}
\item \logic{p}
\item \logic{\therefore\ q} \label{item:x}
\end{mylist}
\dots
\begin{mylist} % numbering is resumed automatically
\item All bachelors are unmarried.
\item Jones is a bachelor.
\item \logic{\therefore\ \text{Jones is unmarried.}}
\item \lipsum*[2] \label{item:y} % item with filler text
\end{mylist}
\hrule % to illustrate width of text block
\bigskip
% Use "\cref" to create cross-references to multiple items:
Cross-references to \cref{item:x,item:y}.
\end{document}
答案2
如果你坚持使用数学环境例如方程,收集或者对齐由于它能够在两列或更多列中对齐(放置注释),因此可以调整这些缩进参数\displayindent
和度量\mathindent
\displaywidth
宽度显示方程式。使用leqno
和fleqn
选项将数字保持在左侧非常重要,而显示方程式未居中,而是左对齐\mathindent
。
在这种情况下,您可以使用环境gather
(如果您需要对齐或将注释放在其他列中)。此外,如果您使用多个环境align
,则可以减少行间空间。equation
\documentclass[12pt,letterpaper,leqno,fleqn]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\newcommand{\texteq}[2][0.5]{\text{\parbox[t]{#1\displaywidth}{#2}}}
\newcommand{\lther}{\mathord{\therefore}\mskip\thickmuskip}
%-----------------------------------------------------------------
% Lengths to control indents of 'equation numbers' and statements
\newlength{\numbersep} % Distance of number at left margin
\newlength{\statementsep} % Distance of statement at left margin
\setlength{\numbersep}{\parindent} % n
\setlength{\statementsep}{15mm} % m (0<n<m)
%-----------------------------------------------------------------
\everydisplay{\displayindent=\numbersep}
\setlength{\mathindent}{\statementsep}
\begin{document}
\noindent\hrulefill\\
Prior text
\begin{align}
& p\implies q &&\text{First premise.}\label{p1}\\
& p &&\texteq[0.4]{Second premise.}\label{p2}\\
&\lther q &&\texteq{One very large conclusion that we can construct of premises \eqref{p1} and \eqref{p2}.}
\end{align}
Subsequent text. Now we can construct the following reasoning
\begin{gather}
\text{All bachelors are unmarried.}\\
\texteq{Jones is a bachelor.}\\
\lther\text{Jones is unmarried.}
\end{gather}
\end{document}
我修改了你的命令\texteq
,以便在方程环境中编写段落,并使用可选参数来固定宽度和[t]
选项来对齐顶部。