我想写一些数据字典寻找 LaTeX 中的程序设计文档,我正在寻找一种有效的方法来完成此操作。
我想要编写如下片段:
Name = FirstName + (Initial) + LastName
FirstName = 1{Character}32
Initial = Character
LastName = 1{Character}
Character = [ A-Z | a-z | 0-9 | ' | - ]
重要的是,这些标志要排列整齐=
,否则看起来会很丑。
我可以将其写为 MWE:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
\text{Name} &= \text{FirstName + (Initial) + LastName} \\
\text{FirstName} &= \text{1\{Character\}32} \\
\text{Initial} &= \text{Character} \\
\text{LastName} &= \text{1\{Character\}} \\
\text{Character} &= \text{[ A -- Z $|$ a -- z $|$ 0 -- 9 $|$ ' $|$ -- ]} \\
\end{align*}
\end{document}
但是所有\text{}
命令都感觉很笨重。有没有更简单的方法?
答案1
如果您想要将对齐方式保留给 LaTeX,而不是手动调整间距verbatim
,您可以执行以下操作tabular
(或者longtable
如果字典很长):
\documentclass{article}
\begin{document}
\begin{tabular}{l@{~=~}l}
Name & FirstName + (Initial) + LastName\\
FirstName & 1\{Character\}32\\
Initial & Character\\
LastName & 1\{Character\}\\
Character & [ A-Z | a-z | 0-9 | ' | - ]\\
\end{tabular}
\end{document}
在表格规范中加入不间断空格的目的是为了将等号和文本分开。如果您想更改布局,表格也更容易定制。
如果您想使用打字机字体,只需\ttfamily
在开头前面放置一个tabular
,并将其括在括号中。
答案2
当您已经像示例中那样排列好字典时,一个简单的方法就是使用verbatim
环境。
\documentclass{article}
\begin{document}
\begin{verbatim}
Name = FirstName + (Initial) + LastName
FirstName = 1{Character}32
Initial = Character
LastName = 1{Character}
Character = [ A-Z | a-z | 0-9 | ' | - ]
\end{verbatim}
\end{document}