缩进数学行而不定义列的最佳(最简单)方法是什么(想想伪代码)

缩进数学行而不定义列的最佳(最简单)方法是什么(想想伪代码)

我看到的所有在数学模式下对齐事物的方法都是设置列,但我只关心一行数学从哪里开始。我希望能够写出类似的东西:

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*的可选参数来执行此操作;此命令的隐式单位是:MoveEqLeftmathtoolsem

\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} 

在此处输入图片描述

相关内容