我正在使用array
环境来\begin{array}{l@{::=}ll}
排版正式语法:
我怎样才能插入一个空行而不::=
在那里出现分隔符?
最小工作示例:
% !TeX TS-program = xelatex
% !TeX encoding = UTF-8
% !TeX spellcheck = en_US
\documentclass[]{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{array}{l@{\quad::=\quad}l@{\quad}l}
T & \varepsilon \mid \mathrm{leaf} \mid \mathrm{bin}(T, T) & \text{trees}\\
\\
F & \varepsilon \mid F, T & \text{forests}
\end{array}
\]
\end{document}
答案1
您可以简单地使用一个空的\multicolumn
,因为它的列规范会覆盖它所插入的表格/数组的规范:
\documentclass[]{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{array}{l@{\quad::=\quad}l@{\quad}l}
T & \varepsilon \mid \mathrm{leaf} \mid \mathrm{bin}(T, T) & \text{trees}\\
\multicolumn{1}{c}{} & &\textit{Fiddle dee dee }\\\\
F & \varepsilon \mid F, T & \text{forests}
\end{array}
\]
\end{document}
答案2
一些建议和意见:
array
不需要在via a指令中插入一个不太空的行\\
,只需在第一个指令后增加垂直跳过量\\
,例如3ex
。\quad
在大多数文档类中,即在所有将 的值设置为\tabcolsep
和的6pt
值设置为 的文档类中,设置明确的列间空白量是多余的。除非另有说明,否则列间空白量为。\quad
12pt
2\tabcolsep
\documentclass{article}
\usepackage{amsmath} % for "\text" macro
\begin{document}
\[
\begin{array}{ l @{\quad::=\quad} l l }
T & \varepsilon\mid\mathrm{leaf}\mid\mathrm{bin}(T, T) & \text{trees}\\[3ex]
F & \varepsilon\mid F, T & \text{forests}
\end{array}
\]
\end{document}