我看到的所有在数学模式下对齐事物的方法都是设置列,但我只关心一行数学从哪里开始。我希望能够写出类似的东西:
f:A\to \mathbb{R}\\ % indent 0
if \all x_0\in A\\ % indent 0
\all \varepsilon>0\\ % indent 2
\exists \delta s.t.\\ % indent 4
x\in A\\ % indent 6
if |x-x_0|<\delta\\ % indent 6
\to|f(x)-f(x_0)|<\varepsilon\\ % indent 7
\to f \text{continuous [cont.]} % indent 1
多行环境允许我写多行,但是如果不定义列,我就无法缩进,而这并不是我想要的(行尾应该任意远)。如果缩进级别默认为上一行的级别,则可以获得加分。
答案1
问题是,最容易这样做。也许比$
在每行写两个更简单的是以下解决方案。
{\catcode`\ =13 \gdef\dospace#1{\ifx#1 \hskip1em\else\catcode`\ =13\relax#1\fi}
\gdef\runindent{\bgroup\def\If{{\rm if}\ }
\def\par{\hfil\break\null\catcode`\ =13\relax}\obeylines
\catcode`\ =13\def {\futurelet\next\dospace}\noindent$}}
\def\endindent{$\egroup}
\runindent
f \colon A \to R
\If \forall x_0 \in A
\forall \varepsilon > 0
\exists \delta {\rm s.t.}
x \in A
\If |x - x_0| < \delta
\to |f(x) - f(x_0)| < \varepsilon
\to f \hbox{continuous [cont.]}
\endindent
答案2
您可以定义自己的fancyvrb
环境,类似于遵循空间的环境:
\documentclass{article}
\usepackage{amsmath,amsfonts,fancyvrb}
\let\all\forall% Whatever your \all implies
\DefineVerbatimEnvironment
{MathIndent}
{Verbatim}
{fontfamily=cmr,
commandchars=\\\{\},
codes={\catcode`$=3\catcode`^=7\catcode`_=8}
}
\begin{document}
\begin{MathIndent}
$f \colon A \to \mathbb{R}$
if $\all x_0 \in A$
$\all \varepsilon > 0$
$\exists \delta \text{s.t.}$
$x \in A$
if $\lvert x - x_0 \rvert < \delta$
$\to \lvert f(x) - f(x_0) \rvert < \varepsilon$
$\to f \text{continuous [cont.]}$
\end{MathIndent}
\end{document}
环境tabbing
允许通过以下方式设置类似的对齐方式(“制表位”)\=
以及跳转/跳过\>
:
\documentclass{article}
\usepackage{amsmath,amsfonts}
\newcommand{\mindent}{\hspace{2em}}
\let\all\forall
\begin{document}
\begin{tabbing}
\= \mindent \= \mindent \= \mindent \= \kill \\
$f \colon A \to \mathbb{R}$ \\ % indent 0
if $\all x_0 \in A$ \\ % indent 0
\> $\all \varepsilon > 0$ \\ % indent 2
\> \> $\exists \delta \text{s.t.}$ \\ % indent 4
\> \> \> $x \in A$ \\ % indent 6
\> \> \> if $\lvert x - x_0 \rvert < \delta$ \\ % indent 6
\> \> \> \quad $\to \lvert f(x) - f(x_0) \rvert < \varepsilon$ \\ % indent 7
\quad $\to f \text{continuous [cont.]}$ % indent 1
\end{tabbing}
\end{document}
答案3
您可以使用fleqn
来自的环境nccmath
、环境和来自的命令align*
的可选参数来执行此操作;此命令的隐式单位是:MoveEqLeft
mathtools
em
\documentclass{article}
\usepackage{amsfonts, nccmath}
\usepackage{mathtools}
\usepackage[showframe]{geometry}
\begin{document}
\begin{fleqn}%
\begin{align*}
& f:A\to \mathbb{R}\\ % indent 0
&\text{if }\forall x_0\in A\\ % indent 0
\MoveEqLeft[-2] \forall \varepsilon>0\\ % indent 2
\MoveEqLeft[-4] \exists\, \delta \text{ s. t.} \\ % indent 4
\MoveEqLeft[-6] x \in A\\ % indent 6
\MoveEqLeft[-6]\text{if }|x-x_0|<\delta \\ % indent 6
\MoveEqLeft[-7] \to|f(x)-f(x_0)|<\varepsilon\\ % indent 7
[![enter image description here][1]][1]\MoveEqLeft[-1]\to f \text{ continuous [cont.]} % indent 1
\end{align*}
\end{fleqn}
\end{document}