我正在使用 latex 进行句法分析,使用以下规范:
For super-script \tss{super-script}
\newcommand*{\tss}[1]{\textsuperscript{#1}}
\newcommand\tabspace{1cm} % Adjust tab length here
\newcommand\mytabs{\hspace{\tabspace}\=\hspace{\tabspace}\=\hspace{\tabspace}\=\hspace{\tabspace}\=\hspace{\tabspace}\=}
\newenvironment{syntax}[1][\mytabs] % The syntax environment, used for syntactical analyses
{\begin{tabbing}#1\kill}
{\end{tabbing}}
\newcommand{\tab}[2][\>]{#1 #2} % Tab command, used in syntactical analyses
目前,我可以做五次\tab
。我的问题是如何改变可能的数量\tab
,从而使其更大。
答案1
\=\hspace{\tabspace}
您可以简单地在 的定义中添加其他二十个命令\mytabs
,以便为您的制表环境提供足够的空间。
这里有一个不同的方法。syntax
环境有一个可选参数(默认为 5),用于指定列数;环境syntax*
希望使用显式行\kill
来设置不相等的制表符空间。
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentEnvironment{syntax}{O{5}}
{
\begin{tabbing}
\prg_replicate:nn { #1 } { \=\hspace{\tabspace} }\kill
}
{
\end{tabbing}
}
\NewDocumentEnvironment{syntax*}{m}
{
\begin{tabbing}
#1\kill
}
{
\end{tabbing}
}
\ExplSyntaxOff
\newcommand\tabspace{1cm} % Adjust tab length here
\newcommand{\tab}[2][\>]{#1#2}
\begin{document}
\begin{syntax}
\tab{a}\tab{b}\tab{c}\tab{d}\tab{e}\\
\tab{1}\tab{2}\tab{3}\tab{4}\tab{5}
\end{syntax}
\begin{syntax}[6]
\tab{a}\tab{b}\tab{c}\tab{d}\tab{e}\tab{f}\\
\tab{1}\tab{2}\tab{3}\tab{4}\tab{5}\tab{6}
\end{syntax}
\begin{syntax*}{\=aaa\=bbb\=ccccccc\=d}
\tab{a}\tab{b}\tab{c}\tab{d}\\
\tab{1}\tab{2}\tab{3}\tab{4}
\end{syntax*}
\end{document}