如何使用 sidewaystable 在双页中制作表格

如何使用 sidewaystable 在双页中制作表格

我正在努力解决无法将表格成功放入页面的问题。

我想澄清一下,我正在使用 TeXlive 2019(在完成项目之前无法升级),因此该tabularray软件包不是一个选项。

我已经尝试过不同的解决方案,但仍然无法使其适应:

  1. 我已经使用过该makecell软件包,它有一定的帮助但还不够。
  2. 我尝试使用sidewaystablerotating包的环境,但即使将字体缩小到最小尺寸(\tiny),它也不适合页面。
  3. 我已经将其转置,但由于它是一个 10 x 11 的表,所以并没有太大的区别。
  4. 这就是为什么该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}

相关内容