表格中的自动换行符

表格中的自动换行符

我尝试了几种不同的解决方案来解决 LaTeX 表格中的自动换行问题。下面是一个使用我迄今为止最复杂方法的表格列表示例。它在 PDF 中看起来没问题,但仍会引发几个警告。一两个条目可能仍然太长,以至于超出了指定的文本宽度,这意味着换行符无法按预期工作。如何在 LaTeX 表格中获得正确且可靠的自动换行?

\begin{center}
\begin{tabular*}{\columnwidth}{ @{\extracolsep{\fill}} p{0.5\columnwidth}p{0.5\columnwidth}}
Matrikel-Nr:  & 1234567\\
E-Mail:  & [email protected]\\
 & \\
{\bf Seminar} & {\bf Dozent:in}\\
123456 Einführung in die Statistik mit R & Dr. Xxxxxx Xxxxxxxxx\\
123456 Einführung experimentelle Methoden & Dr. Xxxxxx Xxxxxxxxx\\
123456 Aufbaukurs quan\-ti\-ta\-ti\-ve Methoden & Dr. Xxxxxx Xx\-xxxx\-xxxxxxx\\
 & \\
Xxxxxxxxx, \today & \\
\end{tabular*}
\end{center}

编译时我收到以下警告:

Underfull \hbox (badness 10000) in paragraph at lines 66--67
Underfull \hbox (badness 1122) in paragraph at lines 69--69
Underfull \hbox (badness 2582) in paragraph at lines 70--70
Overfull \hbox (17.99998pt too wide) in alignment at lines 64--74

(上面的片段对应于我的文件中的第 63-75 行)

前言:

\documentclass[twoside,openright,12pt]{report}

\usepackage{latexsym}
\usepackage[dvips]{graphics}
\usepackage{pgf}
\usepackage{multicol}
\usepackage[german]{babel}
\usepackage{linguex}
\usepackage{hyperref}
\usepackage{fontspec}
\usepackage{tabularx}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{booktabs}
\usepackage{array}
\usepackage{multirow}
\usepackage{makecell}
\setmainfont[BoldFont={Gentium Basic Bold},ItalicFont={Gentium Plus Italic}, BoldItalicFont={Gentium Basic Bold Italic}]{Gentium Plus}
\usepackage[scaled]{helvet}
\usepackage{apacite}
\usepackage{fancyhdr}

% set up page size. 
\sloppy
\setlength{\textwidth}{15cm}
\setlength{\oddsidemargin}{42pt}
\setlength{\evensidemargin}{-22pt}
\setlength{\headheight}{15pt}

答案1

尝试使用tabularx,它已加载到您的序言中。它将计算其正确的列宽,因此您不会收到有关 的警告Underfull \hbox ...

\documentclass[twoside,openright,12pt]{report}
\usepackage{geometry}
\usepackage{fontspec}
\setmainfont[BoldFont={Gentium Basic Bold},
             ItalicFont={Gentium Plus Italic},
             BoldItalicFont={Gentium Basic Bold Italic}%
             ]{Gentium Plus}
\usepackage[scaled=0.92]{helvet}
\usepackage{lipsum}
% tables
\usepackage{array, booktabs, makecell, multirow, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{hyperref} % had to be loaded last

\begin{document}
\lipsum[1]
    \begin{center}
\begin{tabularx}{\linewidth}{ @{} LL @{}}
Matrikel-Nr:        & 1234567                           \\
E-Mail:             & [email protected]\\
    \addlinespace
\textbf{Seminar}    & \textbf{Dozent: in}               \\
123456 Einführung in die Statistik mit R 
                    & Dr. Xxxxxx Xxxxxxxxx              \\
123456 Einführung experimentelle Methoden 
                    & Dr. Xxxxxx Xxxxxxxxx              \\
123456 Aufbaukurs quan\-ti\-ta\-ti\-ve Methoden 
                    & Dr. Xxxxxx Xx\-xxxx\-xxxxxxx      \\
    \addlinespace
Xxxxxxxxx, \today   & \\
\end{tabularx}
    \end{center}
\lipsum[2]
\end{document} 

在此处输入图片描述

@leandriis 评论中已经解释了问题的原因。题外话:包hyperref必须(极少数例外)在序言中最后加载。

答案2

要在表格条目中获得“自动换行符”,您需要使用p{some-width-here }(段落)列规范。

相关内容