对齐箭头

对齐箭头

这是我的代码,我希望所有线条都与箭头对齐。有人能帮我吗?谢谢。

1 $\longrightarrow$ trillion\\
7 $\longrightarrow$ hundred billion\\
8 $\longrightarrow$ ten billion\\
4 $\longrightarrow$ billion\\
6 $\longrightarrow$ hundred million\\
5 $\longrightarrow$ ten million\\
3 $\longrightarrow$ million\\
2 $\longrightarrow$ hundred thousands\\
0 $\longrightarrow$ ten thousands\\
1 $\longrightarrow$ thousands\\
4 $\longrightarrow$ hundreds\\
5 $\longrightarrow$ tens\\
9 $\longrightarrow$ ones\\

答案1

简单的方法是在第一行添加一个\noindent。但是,这不能解释前导数字的不同宽度,特别是如果超过一位数字或前导不是数字,例如小数点。

有很多方法可以实现这一点。这里有一种方法可以在箭头周围留出适当的数学间距,并且不会在中途跨越页面边界。

\documentclass{article}
\usepackage{tabstackengine}
\begin{document}
\noindent\alignLongunderstack{
1${}\longrightarrow{}$& trillion\\
7${}\longrightarrow{}$& hundred billion\\
8${}\longrightarrow{}$& ten billion\\
4${}\longrightarrow{}$& billion\\
6${}\longrightarrow{}$& hundred million\\
5${}\longrightarrow{}$& ten million\\
3${}\longrightarrow{}$& million\\
2${}\longrightarrow{}$& hundred thousands\\
0${}\longrightarrow{}$& ten thousands\\
1${}\longrightarrow{}$& thousands\\
4${}\longrightarrow{}$& hundreds\\
5${}\longrightarrow{}$& tens\\
9${}\longrightarrow{}$& ones}
\end{document}

在此处输入图片描述

答案2

您可能有几个数字需要解释。

\documentclass{article}
\usepackage{amsmath}
\usepackage{siunitx} % also loads xparse and expl3

\ExplSyntaxOn

\NewDocumentCommand{\shownumber}{sO{c}m}
 {
  \IfBooleanTF { #1 }
   {
    \num{#3}
   }
   {
    \ensuremath{\forest_shownumber:nn { #2 } { #3 } }
   }
 }

\seq_new:N \l__forest_shownumber_seq

\cs_new_protected:Nn \forest_shownumber:nn
 {
  \seq_set_split:Nnn \l__forest_shownumber_seq { } { #2 }
  \begin{aligned}[#1]
  \seq_indexed_map_function:NN \l__forest_shownumber_seq \__forest_shownumber_digit:nn
  \end{aligned}
 }

\cs_new_protected:Nn \__forest_shownumber_digit:nn
 {
  #2 & \longrightarrow
       \text { \__forest_shownumber_name:n { \seq_count:N \l__forest_shownumber_seq - #1 } } \\
 }

\cs_new:Nn \__forest_shownumber_name:n
 {
  \int_case:nn { #1 }
   {
    {0}{units}
    {1}{tens}
    {2}{hundreds}
    {3}{thousands}
    {4}{ten ~ thousands}
    {5}{hundred ~ thousands}
    {6}{million}
    {7}{ten ~ million}
    {8}{hundred ~ million}
    {9}{billion}
    {10}{ten ~ billion}
    {11}{hundred ~ billion}
    {12}{trillion}
    %...
   }
 }
\ExplSyntaxOff

\begin{document}

\shownumber*{1784653201459}

\[
\shownumber{1784653201459}
\]

\shownumber*{123456} is \shownumber[t]{123456}

\end{document}

\shownumber宏有一个 *-变体(仅打印数字);可选参数用于显示版本,并告诉传递给垂直对齐方式是什么aligned(值为c、默认tb)。

我们用数字填充一个序列,然后使用索引映射它以检索数字位置的文本含义。

我停在“万亿”处,但你可以轻松地延长这个列表。

在此处输入图片描述

答案3

在使用时,tabular我会更进一步:使用两列,代码会更短一些:

\documentclass{article}
\usepackage{array}

\begin{document}
\begin{tabular}{@{} r @{${}\longrightarrow{}$} l @{}}
1 & trillion\\
7 & hundred billion\\
8 & ten billion\\
4 & billion\\
6 & hundred million\\
5 & ten million\\
3 & million\\
2 & hundred thousands\\
0 & ten thousands\\
1 & thousands\\
4 & hundreds\\
5 & tens\\
9 & ones
\end{tabular}
\end{document}

在此处输入图片描述

答案4

我会将代码块放入单列、左对齐的tabular环境中:

在此处输入图片描述

\documentclass{article}
\begin{document}
\begin{tabular}{@{} l @{}}
1 $\longrightarrow$ trillion\\
7 $\longrightarrow$ hundred billion\\
8 $\longrightarrow$ ten billion\\
4 $\longrightarrow$ billion\\
6 $\longrightarrow$ hundred million\\
5 $\longrightarrow$ ten million\\
3 $\longrightarrow$ million\\
2 $\longrightarrow$ hundred thousands\\
0 $\longrightarrow$ ten thousands\\
1 $\longrightarrow$ thousands\\
4 $\longrightarrow$ hundreds\\
5 $\longrightarrow$ tens\\
9 $\longrightarrow$ ones
\end{tabular}
\end{document}

相关内容