我有一个制表程序,可以为我创建表格。然而,一个问题是它编写得不是很好。
例如,我希望它创建一个如下所示的表:
\开始{…
您可以使用LuaLaTeX和(a)设置一个更改所有实例的函数 \end{tabular}\\ 在文本中 \end{tabular} “在飞行中”和(b)将此功能分配给所谓的 process_input_buffer 回调,它在处理的早期阶段完成其工作,然后(La)TeX完成任何常规工作。
\end{tabular}\\
\end{tabular}
process_input_buffer
% !TEX TS-program = lualatex \documentclass{article} \usepackage{threeparttable} \usepackage{luacode} \begin{luacode} function removetabularbs ( line ) return string.gsub ( line, "\\end{tabular}\\\\", "\\end{tabular}" ) end luatexbase.add_to_callback ( "process_input_buffer", removetabularbs, "removetabularbs" ) \end{luacode} \begin{document} \begin{threeparttable} \begin{tabular}{ l l l } a & b & c \\ 2 & 3 & 4 \\ this & that & here \end{tabular}\\ \begin{tablenotes} \item Something \end{tablenotes} \end{threeparttable} \end{document}
这样,您仍然可以在不更改代码的情况下处理源代码。
你无法通过重新定义来摆脱这个错误 \tabular ,其中 \begin{tabular} 和 \end{tabular} 只是一个扩展。那是因为错误 \\ 偶尔发生。
\tabular
\begin{tabular}
\\
您也不应该尝试通过重新定义来解决这个问题 \\ ,因为这样的定义必须在TeX内部进行大量的研究。
我认为你最好的选择是
您还可以使用删除任何尾随的小脚本对输出进行后处理 \\ 表格后。