我正在努力解决无法将表格成功放入页面的问题。
我想澄清一下,我正在使用 TeXlive 2019(在完成项目之前无法升级),因此该tabularray
软件包不是一个选项。
我已经尝试过不同的解决方案,但仍然无法使其适应:
- 我已经使用过该
makecell
软件包,它有一定的帮助但还不够。 - 我尝试使用
sidewaystable
该rotating
包的环境,但即使将字体缩小到最小尺寸(\tiny
),它也不适合页面。 - 我已经将其转置,但由于它是一个 10 x 11 的表,所以并没有太大的区别。
- 这就是为什么该
longtable
包似乎也不是一种选择。
因此,我的想法是在双页(横向法律尺寸)中创建表格,这样表格就可以毫无问题地放入其中,但在 LaTeX 中可以做到这一点吗?如何解决?
我的 MWE:
\documentclass{scrbook}
\KOMAoptions{%
fontsize=10pt,
headsepline=on,%
footinclude=on,%
paper=7in:8.5in,%
DIV=calc,%
BCOR=4mm,%
parskip=half+%
}
\usepackage[T1]{fontenc}
\usepackage[english,spanish,mexico]{babel}
\usepackage{Alegreya}
\usepackage{AlegreyaSans}
\usepackage{euler}
\usepackage{inconsolata}
\usepackage[table]{xcolor}
\usepackage{array}
\usepackage{booktabs}
\usepackage{makecell}
\renewcommand\theadfont{}
\renewcommand\theadfont{\bfseries}
\settowidth\rotheadsize{\theadfont Entrevistad}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{float}
\begin{document}
% First attempt with transposed table
\begin{table}[H]
\caption[Tabla transpuesta]{Tabla de datos transpuestos.}
\label{tab:transpuesta}
\centering\tiny
\begin{tabular}{p{0.07\linewidth}*{11}{p{0.075\linewidth}}}
\toprule
\rothead{Nombre} & \rothead{Entrevistada A} & \rothead{Entrevistada B} & \rothead{Entrevistada C} & \rothead{Entrevistada D} & \rothead{Entrevistada E} & \rothead{Entrevistada F} & \rothead{Entrevistada G} & \rothead{Entrevistada H} & \rothead{Entrevistada I} & \rothead{Entrevistada J} & \rothead{Entrevistada K}\\
\midrule
\textbf{Edad} & 36 & 33 & 31 & 50 & 30 & 35 & 31 & 40 & 36 & 37 & 26 \\
\textbf{Nacionalidad} & Italiana & Argentina & Mexicana & \textcolor{blue}{Italiana} & Mexicana & Mexicana & Guatemalteca & \makecell[l]{Mediterránea\\-oeste\\ \textcolor{blue}{Española}} & Mexicana & Mexicana & Mexicana \\
\textbf{Género} & \makecell[l]{Mujer/\\ no binario} & Mujer & Mujer & Mujer & Mujer & Mujer & \makecell[l]{Mujer\\ cisgenero/\\ prefiere no\\ identificarse} & \makecell[l]{No\\ binario} & Mujer & Muje~ & \makecell[l]{Mujer\\ trans} \\
\makecell[l]{\textbf{Clase}\\ \textbf{social}} & Media & Media & Trabajadora & \textcolor{blue}{Media} & Trabajadora & \makecell[l]{Media,\\ antes\\ Trabajadora} & Media & \makecell[l]{Trabajadora,\\ Media,\\ Alta/\\ \textcolor{blue}{Media}} & \makecell[l]{Media\\ alta} & Media & \makecell[l]{Media\\ alta} \\
\makecell[l]{\textbf{Raza}/\\ \textbf{etnia}} & Caucásica & \makecell[l]{Latina\\ \textcolor{blue}{Blanca}} & \makecell[l]{Prefiere no\\ identificarse/\\ \textcolor{blue}{Mestiza}/\\ \textcolor{blue}{Morena}} & \textcolor{blue}{Blanca} & Mestiza & \makecell[l]{Mexicana\\ Blanca} & \makecell[l]{Mestiza\\ \textcolor{blue}{Blanca}} & \makecell[l]{Mediterránea,\\ Latina\\ \textcolor{blue}{Blanca}} & Latina & Latina & Latina \\
\textbf{Estudios} & Doctorado & \makecell[l]{Universidad/\\ especialidad en\\ ciberseguridad} & \makecell[l]{Universidad\\ (Antropología\\ social)} & Bachillerato & Universidad & Bachillerato & \makecell[l]{Universidad\\ (Antropología)} & Universidad & Doctorado & Universidad & Bachillerato \\
\textbf{Profesión} & SysAdmin & Investigadora & FrontEnd & \textcolor{blue}{Programadora} & & \makecell[l]{coordinación\\ de\\ repositorios\\ y perspectiva\\ programadora} & \makecell[l]{Tech and\\ data\\ strategy} & \makecell[l]{Desarrolladora\\ de software} & \makecell[l]{Ingeniera en\\ computación} & \makecell[l]{Licenciada en\\ informática} & Programadora \\
\makecell[l]{\textbf{Posición}\\ \textbf{en la}\\ \textbf{organización}} & SysAdmin & \makecell[l]{Líder de\\ proyecto} & FrontEnd Jr. & \makecell[l]{Directora\\ de su\\ empresa} & Integrante & Empleada & \makecell[l]{Tech and\\ data\\ strategy} & Desarrolladora & \makecell[l]{Investigadora,\\ profesora} & \makecell[l]{Desarrolladora\\ de software} & \makecell[l]{Senior\\ Engineer} \\
\makecell[l]{\textbf{Tiempo}\\ \textbf{en la}\\ \textbf{organización}} & 4 años & 2 años & 5 meses & & 4 años & 1 año & 6 meses & independiente & & 4 años & 4 meses\\
\bottomrule
\end{tabular}
\end{table}
% Second attempt with the table rotated 90°
\begin{sidewaystable}
\begin{table}[H]
\caption[Tabla resumen.]{Tabla que resume algunos de los datos.}
\label{tab:data}
\centering\tiny
\begin{tabular}{
p{0.09\linewidth}%
p{0.05\linewidth}%
p{0.08\linewidth}%
p{0.07\linewidth}%
p{0.07\linewidth}%
p{0.07\linewidth}%
p{0.09\linewidth}%
p{0.09\linewidth}%
p{0.07\linewidth}%
p{0.07\linewidth}%
}
\toprule
\thead{Nombre} & \thead{Edad} & \thead{Nacionalidad} & \thead{Género} & \thead{Clase} & \thead{Raza/\\ etnia} & \thead{Estudios} & \thead{Profesión} & \thead{Pos.\\ en Org} & \thead{Años\\ en org} \\
\midrule
Entrevistada A & 36 & Italiana & \makecell{Mujer\\/no binario} & Media & Caucásica & Doctorado & SysAdmin & SysAdmin & 4 años \\
\midrule
Entrevistada B & 33 & Argentina & Mujer & Media & \makecell{Latina\\ \textcolor{blue}{Blanca}} & \makecell{Universidad\\/especialidad en\\ ciberseguridad} & Investigadora & \makecell{Líder de\\ proyecto} & 2 años \\
\midrule
Entrevistada C & 31 & Mexicana & Mujer & Trabajadora & \makecell{Prefiere no\\ identificarse\\ \textcolor{blue}{Mestiza/}\\ \textcolor{blue}{morena}} & \makecell{Universidad\\ (Antropología\\ social)} & Frontend & Frontend Jr. & 5 meses \\
\midrule
Entrevistada D & 50 & \textcolor{blue}{Italiana} & \textcolor{blue}{Mujer} & \textcolor{blue}{Media} & \textcolor{blue}{blanca} & \textcolor{blue}{Bachillerato} & \textcolor{blue}{programadora} & \makecell{\textcolor{blue}{directora}\\ \textcolor{blue}{de su}\\ \textcolor{blue}{empresa}} & \\
\midrule
Entrevistada E & 30 & Mexicana & Mujer & Trabajadora & Mestiza & Universidad & & integrante & 4 años \\
\midrule
Entrevistada F & 35 & Mexicana & Mujer & \makecell{Media,\\ antes\\ trabajadora} & \makecell{Mexicana,\\ blanca} & Bachillerato & \makecell{coordinación\\ de repositorios\\ y perspectiva\\ programadora} & Empleada & 1 año \\
\midrule
Entrevistada G & 31 & Guatemalteca & \makecell{Mujer\\ cisgénero/\\ prefiere no\\ identificarse} & Media & \makecell{Mestiza\\ \textcolor{blue}{blanca}} & \makecell{Universidad\\ (antropóloga)} & \makecell{Tech and\\ data strategy} & \makecell{Tech and\\ data strategy} & 6 meses \\
\midrule
Entrevistada H & 40 & \makecell{Mediterránea\\-Oeste\\ \textcolor{blue}{Española}} & No binaria & \makecell{Trabajadora\\/media\\/alta\\ \textcolor{blue}{Media}} & \makecell{Mediterránea,\\ latina\\ \textcolor{blue}{blanca}} & Universidad & \makecell{Desarrolladora\\ de software} & desarrolladora & independiente \\
\midrule
Entrevistada I & 36 & Mexicana & Mujer & Media alta & latina & Doctorado & \makecell{ingeniera en\\ computación} & \makecell{Investigadora\\ profesora} & \\
\midrule
Entrevistada J & 37 & Mexicana & Mujer & Media & latina & Universidad & \makecell{licenciada\\ en\\ informática} & \makecell{Desarrolladora\\ de software} & 4 años \\
\midrule
Entrevistada K & 26 & Mexicana & Mujer trans & Media alta & Latina & Bachillerato & Programadora & \makecell{Senior\\ engineer} & 4 meses \\
\bottomrule
\end{tabular}
\end{table}
\end{sidewaystable}
\end{document}
在此先感谢您的帮助。
答案1
以下解决方案采用了sidewaystable
环境,而且重要的是,取消了所有\thead
和\makecell
指令。这样,LaTeX 就可以自动(最佳地)确定换行,而不是逐个确定。由于您使用的是\tiny
相对字体大小,我还将值减少\tabcolsep
了 50%,从 6pt(默认值)减少到 3pt。这些更改的主要结果是表格现在可以放在一页上。
另外,我还会\midrule
用 来替换大部分指令,\addlinespace
让表格看起来更加开放、更加吸引人。
为了避免一些混淆:我(显然)没有反对该makecell
软件包及其\thead
指令\makecell
。但是,由于 OP 无论如何都允许在所有列中自动换行,因此不妨利用这种自由,而不是费力地尝试在单元格中寻找合适的断点。
减小标题的字体大小留给读者作为练习......
\documentclass{scrbook}
\KOMAoptions{%
fontsize=10pt,
headsepline=on,%
footinclude=on,%
paper=7in:8.5in,%
DIV=calc,%
BCOR=4mm,%
parskip=half+%
}
\usepackage[T1]{fontenc}
\usepackage[english,spanish,mexico]{babel}
\usepackage{Alegreya,AlegreyaSans,euler,inconsolata}
\usepackage[table]{xcolor}
\usepackage{array,booktabs,rotating}
%\usepackage{longtable,float}
%% new:
\usepackage{ragged2e}
\newcolumntype{P}[1]{>{\RaggedRight\hspace{0pt}}p{#1\linewidth}}
\newcolumntype{C}[1]{>{\Centering\hspace{0pt}}p{#1\linewidth}}
\begin{document}
\begin{sidewaystable} % switch to landscape mode, start a table env.
\setlength\tabcolsep{3pt} % default: 6pt
\centering
\tiny
\caption[Tabla resumen.]{Tabla que resume algunos de los datos.}
\label{tab:data}
\begin{tabular}{@{}
P{0.05} l P{0.09} P{0.11} P{0.08} P{0.08} P{0.10} P{0.14} P{0.09} C{0.07}
@{}}
\toprule
Entrevistada & Edad & Nacionalidad & Género & Clase & Raza\slash etnia & Estudios & Profesión & Pos. en~Org & Años en~org \\
\midrule
A & 36 & Italiana & Mujer\slash no~binario & Media & Caucásica & Doctorado & SysAdmin & SysAdmin & 4 años \\
\addlinespace %\midrule
B & 33 & Argentina & Mujer & Media & Latina \newline \textcolor{blue}{Blanca} & Universidad\slash especialidad en ciberseguridad & Investigadora & Líder de proyecto & 2 años \\
\addlinespace %\midrule
C & 31 & Mexicana & Mujer & Trabajadora & Prefiere no identificarse \textcolor{blue}{Mestiza\slash morena} & Universidad (Antropología social) & Frontend & Frontend Jr. & 5 meses \\
\addlinespace %\midrule
D & 50 & \textcolor{blue}{Italiana} & \textcolor{blue}{Mujer} & \textcolor{blue}{Media} & \textcolor{blue}{blanca} & \textcolor{blue}{Bachillerato} & \textcolor{blue}{programadora} & \textcolor{blue}{directora de su empresa} & \\
\addlinespace %\midrule
E & 30 & Mexicana & Mujer & Trabajadora & Mestiza & Universidad & & integrante & 4 años \\
\addlinespace %\midrule
F & 35 & Mexicana & Mujer & Media, antes trabajadora & Mexicana, blanca & Bachillerato & coordinación de repositorios y perspectiva programadora & Empleada & 1 año \\
\addlinespace %\midrule
G & 31 & Guatemalteca & Mujer cisgénero\slash prefiere no identificarse & Media & Mestiza \textcolor{blue}{blanca} & Universidad (antropóloga) & Tech and data strategy & Tech and data strategy & 6 meses \\
\addlinespace %\midrule
H & 40 & Mediterránea-Oeste \textcolor{blue}{Española} & No binaria & Trabajadora\slash media\slash alta \textcolor{blue}{Media} & Mediterránea, latina \textcolor{blue}{blanca} & Universidad & Desarrolladora de software & desarrolladora & independiente \\
\addlinespace %\midrule
I & 36 & Mexicana & Mujer & Media alta & latina & Doctorado & ingeniera en computación & Investigadora profesora & \\
\addlinespace %\midrule
J & 37 & Mexicana & Mujer & Media & latina & Universidad & licenciada en informática & Desarrolladora de software & 4 años \\
\addlinespace %\midrule
K & 26 & Mexicana & Mujer trans & Media alta & Latina & Bachillerato & Programadora & Senior engineer & 4 meses \\
\bottomrule
\end{tabular}
\end{sidewaystable}
\end{document}