答案1
正如我在评论中提到的,你可以使用 的功能amsmath
单独完成大部分工作。特别是,我使用了\overset{a}{b}
(位于a
上方b
)和\underset{a}{b}
,你大概能猜出它们的作用。
在注释中我也使用了\substack
用于堆叠下标的,但在下面的代码中它被替换为array
。
为了制作上下左右箭头,我定义了一个新宏\ULDarrow
,使用标准picture
环境来创建箭头。这不是最好看的箭头,但我想保持基本面。
我还使用mathtools
而不是amsmath
。mathtools
加载并amsmath
稍微扩展。我在这里使用的功能mathtools
是\mathrlap
,这是一个宏,它将其参数置于数学模式中,放在零宽度框中,向右延伸。
\documentclass{article}
\usepackage{mathtools}
\newcommand\ULDarrow{% up-left-down arrow
\setlength{\unitlength}{1pt}
\begin{picture}(5,7.5)
\linethickness{0.4\unitlength}
\put(5,0){\line(0,1){7.7}}% draw a line 7.7 units up, the "extra" 0.2 (half the linewidth) is to get a better corner
\put(5,7.5){\line(-1,0){5.2}}% draw a line 5.2 units left
\put(0,7.5){\vector(0,-11){7.5}}% draw an arrow 7.5 units down
\end{picture}}
\begin{document}
\[
>
\underset{%
\begin{array}{@{}c@{}}% the @{} remove spacing around column
\downarrow^{\#} \\
\#
\end{array}
}{L}
\overset{|}{\to}
\overset{%
\mathrlap{\overset{|}{\ULDarrow}}
}{L}
\overset{\#}{\to} \mid
\overset{%
\mathrlap{\overset{|}{\ULDarrow}}
}{R}
\overset{\#}{\to}
L\#
\]
\end{document}