csvsimple 和 tabularray - 使表格适合页面

csvsimple 和 tabularray - 使表格适合页面

我有一个从 CSV 数据文件创建表的代码,但是表的大小很长。

我想自动化代码,以便我使用的任何 CSV 文件中的任何表格都可以放在一页中。

以下是我使用的代码:

% !TeX program = xelatex

\documentclass[12pt,a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{tabularray} %needs package ninecolors.sty
\UseTblrLibrary{booktabs}
\usepackage{longtable,array,adjustbox}
\usepackage{csvsimple-l3}

% ************* FONTS ********************************************
\usepackage{fontspec}
\setmainfont{segoeui}[Path= ./fonts/,
Extension=.ttf,
BoldFont = segoeuib.ttf,
ItalicFont = segoeuii.ttf,
BoldItalicFont = segoeuiz.ttf]
\usepackage[protrusion=true]{microtype}
% ****************************************************************

% ******************** GRAPHICS ************************
%
\usepackage[dvipsnames,table]{xcolor}%
\usepackage{graphicx}
\graphicspath{{./graphics/}}% to include all directories with images/graphics in it
\DeclareGraphicsExtensions{.png, .jpg, .pdf, .ps}
% ******************************************************

\begin{document}    
    
    \begin{table}[!htbp]
        \centering
        \caption[Short Caption for LoT]{Title of table}
        \label{table:tablename2}
        \vskip+0.5em
        \csvreader[%
        no head,
        separator=semicolon,
        centered tabularray={%  
            width=0.25\linewidth,
            rowsep = 4pt,
            colsep = 2pt,
            column{even} = {c, azure8!20, 0.5in},
            column{odd} = {c, 0.5in},
            column{1} = {c, 2.75in},        
            row{odd} = {font = \scriptsize},
            row{even} = {font = \scriptsize},       
            row{1} = {2em},
            row{2} = {font=\scriptsize\itshape},                
        },
        table head = {\hline[0.1em, black] \SetCell[c=5]{l}\large\bfseries TABLE HEAD\\\hline[0.1em,black]},
        %               table foot = {\hline[0.1em,black]},
        late after line = {\\\hline[0.15pt, black]},            
        late after first line = {\\\hline[0.15pt,black]},
        %   late after last line = {\\\hline[0.1em,black]},
        late after last line = \\\bottomrule,
        ]{data/data03.csv}{}{%
            \csvlinetotablerow%
        }
    \end{table} 


\end{document}

以及 CSV 文件:

- alle befragten Studierenden -;;Studieneingang;Studienverlauf;gesamt

;;Anzahl;Anzahl;Anzahl

Anglistik;Bachelor;202;62;264

;Master;75;50;125

;gesamt;277;112;389

Computerlinguistik und Digital Humanities;Bachelor;12;5;17

;Master;28;27;55

;gesamt;40;32;72

Germanistik;Bachelor;320;105;425

;Master;139;62;201

;gesamt;459;167;626

Japanologie;Bachelor;70;42;112

;Master;21;13;34

;gesamt;91;55;146

Klassische Philologie;Bachelor;14;4;18

;Master;11;7;18

;gesamt;25;11;36

Medienwissenschaft;Bachelor;134;79;213

;Master;34;23;57

;gesamt;168;102;270

Phonetik;Master;6;4;10

;gesamt;6;4;10

Romanistik;Bachelor;56;27;83

;Master;35;23;58

;gesamt;91;50;141

Sinologie;Bachelor;20;9;29

;Master;4;4;8

;gesamt;24;13;37

Slavistik;Bachelor;12;4;16

;Master;7;2;9

;gesamt;19;6;25

gesamt;Bachelor;840;337;1177

;Master;360;215;575

;gesamt;1200;552;1752

我尝试使用 adjustbox 但代码只会给出错误。

提前致谢。

相关内容