我正在使用 Pandoc 将 markdown 生成为 LaTeX,并想为每个 longtable 添加一些样式。我成功地在表格前添加了内容,但未能在表格后添加内容。
\newcommand{\PreTable}{foo}
\newcommand{\PostTable}{bar}
\let\oldlongtable\longtable
\renewcommand{\longtable}[2][]{\PreTable\oldlongtable[#1]{#2}} % This works
\renewcommand{\longtable}[2][]{\PreTable\oldlongtable[#1]{#2}\PostTable} % This doesn't - "Misplaced \noalign."
除了 renewcommand 之外,我还尝试了 \def(也可以与 \PreTable 一起使用)、\renewenvironment 和 \LetLtxMacro,但都没有成功。
我所尝试实现的目标有可能实现吗?
答案1
使用最新的 latex,您可以尝试它提供的钩子。有关钩子放置位置的文档可在 lthooks.pdf 中找到
\documentclass{article}
\usepackage{longtable}
\AddToHook{env/longtable/before}{before}
\AddToHook{env/longtable/after}{after}
\AddToHook{env/longtable/begin}{begin longtable}
\AddToHook{env/longtable/end}{end longtable}
\begin{document}
\begin{longtable}{ll}
Lorem ipsum dolor sit amet & consectetuer adipiscing elit\\
Ut purus elit, vestibulum ut & placerat ac, adipiscing vitae, felis.\\
\end{longtable}
\end{document}