创建长表的新命令

创建长表的新命令

我是 Tex 新手,使用下面的代码创建一个长表。我正在用这个创建一本书,其中每节经文的单词都以下面的表格格式进行解释。我的文档有大量这样的表格。

\begin{longtable}{p{1.5cm}p{0.05cm}p{3.5cm}|p{1.5cm}p{0.05cm}p{3.5cm}|p{1.5cm}p{0.05cm}p{3.5cm}}

\end{longtable}

我想知道是否有办法缩短它,将 1.5 厘米和 3.5 厘米作为变量,将 0.05 厘米作为常量单元。这只是为以后的编辑提供灵活性。我尝试写一些类似的东西。

\newcommand{\ltb}[6]{\begin{longtable}{p{#1cm}p{0.05cm}p{{#2}cm}|p{{#3}cm}p{0.05cm}p{{#4}cm}|p{{#5}cm}p{0.05cm}p{{#6}cm}}}

但未能成功。我也不确定自己在做什么,只是试一试。我附上了表格的屏幕截图。谢谢你的帮助在此处输入图片描述

答案1

除了 Werner 的建议之外,您还可以使用@{decl.}语法(抑制列间空格并插入decl.),这样您不必在表格的行中明确排版等号:

\documentclass{article}
\usepackage[margin=1cm]{geometry}% just to make room for the table
\usepackage{longtable}

\newlength\word
\newlength\worddef
\newlength\eqsep
\setlength\word{1.5cm}% Word width is 1.5cm
\setlength\worddef{3.5cm}% Word definition width is 3.5cm
\setlength\eqsep{\tabcolsep}% Space before and after the equal sign

\begin{document}

\begin{longtable}{p{\word}@{\hspace{\eqsep}=\hspace{\eqsep}}p{\worddef}|p{\word}@{\hspace{\eqsep}=\hspace{\eqsep}}p{\worddef}|p{\word}@{\hspace{\eqsep}=\hspace{\eqsep}}p{\worddef}}
word1  & some text & word2  & some text  & word3  & some text  \\
word4  & some text & word5  & some text  & word6  & some text  \\
\end{longtable}

\end{document}

在此处输入图片描述

答案2

是的你可以定义长度按照自己的喜好,将它们存储在“变量”中。例如,

\newlength{\word}%
\newlength{\equal}%
\newlength{\worddef}%
\setlength{\word}{1.5cm}% Word width is 1.5cm
\setlength{\equal}{0.05cm}% Equal sign width is 0.05cm
\setlength{\worddef}{3.5cm}% Word definition width is 3.5cm

然后使用

\begin{longtable}{p{\word}p{\equal}p{\worddef}|p{\word}p{\equal}p{\worddef}|p{\word}p{\equal}p{\worddef}}
  ...
\end{longtable}

相关内容