我想要请求一个很大的帮助:我需要做一个长表格(超过 1 页),它需要呈 90 度(侧向稳定),而且,我需要在使用多行时确定列的宽度。
目前我只能做多行和侧向可调整,但我需要修改列的宽度,当我使用多行时就会出现这个问题。
因此,正如您在图 1 中看到的,第一列上的文本应居中,长度为最后一列的 10 行。事实上确实如此,但我希望它说:
打击森林火灾(见图2)
然后,第二列发生了同样的事情,其中“Evaluación del sector”恰好使用了比我需要的更多的空间。
另一件事是,我也想设置“N”列的宽度,这样它就不会占用那么多空间......
最后一点,这只是完整表格的 1/10,我的意思是,“Peligro”列中有 100 多行,而第一列“Combate de incendios forestales”位于所有行的中心...所以,我需要使用longtable
我尝试过的包,但没有用(很可能我做得不好,所以如果你能告诉我应该把命令放在哪里...)
我的代码:
\begin{sidewaystable}
\centering
\caption{Add caption}
\begin{tabularx}{\columnwidth}{p{1.5cm}p{2cm}cX}
\toprule
Procedimiento & Actividad & N & Peligro \\
\midrule
\multicolumn{1}{c}{\multirow{10}[4]{*}{Combate de incendios forestales}} & \multicolumn{1}{c}{\multirow{5}[2]{*}{Evaluación del sector}} & \multicolumn{1}{c}{1} & No tomar en cuenta la información técnica o de la situación del incendio. \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{2} & No considerar la geografía del sector \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{3} & Omitir algunas variables meteorológicas \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{4} & Que la información anterior no llegue en el momento necesario \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{5} & La existencia de fallas en los sistemas de recepción de los datos anteriormente nombrados \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{\multirow{5}[2]{*}{Activar la alarma}} & \multicolumn{1}{c}{6} & Que no sea realmente una emergencia \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{7} & Que el personal no esté bien capacitados en cuanto al modo de actuar en una emergencia \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{8} & Que la alarma no funcione \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{9} & No tener redundancias en el sistema por si funciona solo en base a electricidad y se corta la luz \\
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{10} & No tener material disponible para ir a combatir el incendio \\
\bottomrule
\end{tabularx}%
\label{tab:addlabel}%
\end{sidewaystable}
当然,由于采用了 LaTeX 表格样式,因此此图中的线条只是为了给您一个概念......
最后,我在 Windows 7 上使用 TexMAKER。
有谁能帮助我吗?
我将非常感激!谢谢!
答案1
这是一个使用makecell
包的解决方案,它允许在单元格中换行。我借此机会简化了您的代码并自动化了第三列中的数字。对于跨页面的 tabularx,我加载了包ltablex
,它将长表的功能带入 tabularx。
\documentclass[a4paper]{article}%
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{geometry}
\usepackage{array, mathtools}
\usepackage{ltablex, multirow, makecell, booktabs, caption}
\usepackage{rotating}
\begin{document}
\begin{sidewaystable}
\centering\newcounter{rowctr}\setcounter{rowctr}{0}
\begin{tabularx}{\columnwidth}{cc >{\stepcounter{rowctr}\therowctr}cX}
\caption{Add caption}\\
\toprule
Procedimiento & Actividad & \multicolumn{1}{c}{N} & Peligro \\
\midrule
\endfirsthead
\multicolumn{4}{c}{\footnotesize Table \thetable\enspace (continued)}\\
\toprule
Procedimiento & Actividad & \multicolumn{1}{c}{N} & Peligro \\
\midrule
\endhead
\bottomrule
\multicolumn{4}{r}{\footnotesize To be continued}
\endfoot
\bottomrule
\endlastfoot
\multirowcell{10}{Combate de & & & \\ incendios \\forestales} & \multirowcell{5}{Evaluación \\ del sector} & & No tomar en cuenta la información técnica o de la situación del incendio. \\
& & & No considerar la geografía del sector \\
& & & Omitir algunas variables meteorológicas \\
& & & Que la información anterior no llegue en el momento necesario \\
& & & La existencia de fallas en los sistemas de recepción de los datos anteriormente nombrados \\
\cmidrule{2-4}
& \multirowcell{5}{Activar la & & \\ alarma} & & Que no sea realmente una emergencia \\
& & & Que el personal no esté bien capacitados en cuanto al modo de actuar en una emergencia \\
& & & Que la alarma no funcione \\
& & & No tener redundancias en el sistema por si funciona solo en base a electricidad y se corta la luz \\
& & & No tener material disponible para ir a combatir el incendio \\
\bottomrule
\end{tabularx}%
\label{tab:addlabel}%
A\end{sidewaystable}
\end{document}
至于您的最后一个请求,可以修改代码以获得您想要的内容,但您不能booktabs
这样做(垂直规则不会穿过水平规则),并且看起来不太专业......