在 LaTeX 中格式化数据字典

在 LaTeX 中格式化数据字典

我想写一些数据字典寻找 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}

相关内容