我有这两个 TeX 文件:
\documentclass[a3paper,landscape]{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{ltxtable}
\begin{document}
Hello.
\LTXtable{\textwidth}{mytable}
\end{document}
另一个文件自动生成数据:
\begin{longtable}{|X|X|X|X|X|X|X|X|X|}
\caption{A very long table}\\
\hline
{% for col in head %}
\textbf{ {{col | escapeTEXT}} }
{% if not forloop.last %}
&
{% endif %}
{% endfor %}
\\
\hline
{% for row in table %}
{% for cell in row %}
{{ cell | escapeTEXT}}
{% if not forloop.last %}
&
{% endif %}
{% endfor %}
\\
\hline
{% endfor %}
\hline
\label{tab:LongtableOne}
\end{longtable}
这样会在中心创建表格,从而使列宽变窄。如何使表格左对齐?
- 另外,我必须对列进行硬编码,如下所示:
{|X|X|X|X|X|X|X|X|X|}
。
是否可以使其动态化,就像循环一样?
答案1
使用
\longtable}[l]{...}
[l]
是水平对齐的说明符。但是,对于X
列来说,它没有任何实际意义:
\RequirePackage{filecontents}
\begin{filecontents*}{xtab.tex}
\begin{longtable}[l]{@{}*3X@{}}\hline
foo & bar & baz\\\hline
\end{longtable}
\end{filecontents*}
\documentclass{article}
\usepackage{array,ltxtable}
\begin{document}
\noindent
\rule{\linewidth}{1pt}
\LTXtable{\linewidth}{xtab.tex}
\end{document}