定义一个类文件,我想定义一个新的环境,它本质上是一个longtabu
。 定义longtabu
为具有可变宽度的左列,我希望在环境的所有实例中它都是相同的,尽管第二个实例将决定该列的宽度。
类文件
\newenvironment{listazo}{
\begin{longtabu} to \textwidth{X[-1l]X}}
{\end{longtabu}}
tex 文件
\section*{First}
\begin{listazo}
... stuff ...
\end{listazo}
\section*{Second}
\begin{listazo}
... stuff ...
\end{listazo}
目前,每个环境实例设置的第一列宽度都不同。我怎样才能让它们都使用相同的列宽,以及环境第二个实例的列宽?
答案1
tabu 在这里只是使用 longtable 内部,所以你可以这样做
\documentclass{article}
\usepackage{longtable,tabu}
\newenvironment{listazo}{
\begin{longtabu} to \textwidth{X[-1l]X}}
{\end{longtabu}}
\makeatletter
\AtBeginDocument{%
{\let\ifhmode\iftrue
\xdef\tmp{\csname LT@ii\endcsname}%
\xdef\tmp{\expandafter\@gobble\tmp}}%
}
\makeatother
\begin{document}
The tex file
\section*{First}
\begin{listazo}
aaaaaa & bbbb bbb bbb bbb bb bb bb\\\tmp\kill
\end{listazo}
\section*{Second}
\begin{listazo}
aaaaaa aa a a a a a a a a & bbbb bbb bbb bbb bb bb bb bb b b b b b b \\
aaaaaa aa a a a a a a a a aaaaaa aa a a a a a a a a &
bbbb bbb bbb bbb bb bb bb bb b b b b b b
bbbb bbb bbb bbb bb bb bb bb b b b b b b
\end{listazo}
\end{document}