longtable 自适应行宽以支持宽表格排版

2020-09-01 11:45发布

## 编译环境 操作系统 * [x] Windows 7/8/10 * [ ] macOS * [ ] Linux `若需勾选,请把[ ]改成[x]` Tex发行版 * [x] TexLive `2...

## 编译环境 操作系统 * [x] Windows 7/8/10 * [ ] macOS * [ ] Linux `若需勾选,请把[ ]改成[x]` Tex发行版 * [x] TexLive `2020` * [ ] MikTeX `版本号` * [ ] CTeX `若需勾选,请把[ ]改成[x]` ## 我的问题 `tabular` 环境能够嵌入 `graphicx` 宏包的 `\resizebox{\linewidth}{!}{<表格>}` 命令中,以产生自适应行宽的表格,而无需手动调节表格内的字号。然而,这一方法在 `longtable` 环境下不工作。请问如何令 `longtable` 也能实现自适应行宽的表格。 **要求:** 1. 不使用字号命令手工调整 2. 不使用 `lscape` 等宏包的横向页面环境 3. 允许使用其他类似于 `longtable` 环境的跨页长表格环境 ```tex \documentclass[UTF8]{ctexart} \usepackage{array,graphicx,showframe} \usepackage{longtable} \begin{document} \centering \begin{tabular}{*{20}{|c<{占位}}|}\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline \end{tabular} \resizebox{\linewidth}{!} {\begin{tabular}{*{20}{|c<{占位}}|}\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline \end{tabular}} % \resizebox{\linewidth}{!} {\begin{longtable}{*{20}{|c<{占位}}|}\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline &&&&& &&&&& &&&&& &&&& \\\hline \end{longtable}} \end{document} ``` ![](https://wenda.latexstudio.net/data/attach/200901/ZsKloeE6.jpg)
1条回答
1. 普通的表格环境一般也很少用`\resizebox` 的方式,除非真的太宽了。一般用 `tabularx` 环境的 `X` 列模式。 2. `longtable` 也可以使用 `tabularx` 的 `X` 列模式,这时要使用 `ltxtable` 宏包,这是`longtable` 和 `tabularx` 包的“合体”,但是需要在单 独的一个`tex`文件中使用`longtable` 环境,这时可以使用 `X` 列模式,然后,在正文中使用 ``` tex \LTXtable{}{} ``` 来插入表格。

一周热门 更多>