Перенос текста в ячейке таблицы

Перенос текста в ячейке таблицы

Мое выравнивание текста заголовков столбцов - "Совокупное количество курсов, необходимых для сдачи" и "Совокупное количество курсов для старших классов, необходимых для сдачи" - явно неправильное. Я понимаю, что это необычно длинные заголовки столбцов, но на данный момент я не могу придумать более точного термина.

введите описание изображения здесь

Мне бы хотелось, чтобы заголовки двух столбцов больше "оборачивались" вокруг "BSc" и "EDP", хотя и не совсем. Возможно, если бы обрезание было на слове "Courses" (перенести "Required" на вторую строку), это было бы неплохо. Также возможно ли переместить столбцы EDP немного правее, чтобы они были более тесно выровнены со словом "Courses" выше?

МВЭ:

\documentclass{article}
\usepackage{booktabs, threeparttable}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}

\begin{document}
\begin{table}[H]
\begin{threeparttable}
\caption{Minimum Requirements for Automatic Readmission into the Science Faculty}
\label{table:sci}
\begin{tabular}{@{}p{0.18\textwidth}*{4}{L{\dimexpr0.1\textwidth-2\tabcolsep\relax}}@{}}
\toprule
& \multicolumn{2}{c}{\bfseries Cumulative Number of Courses Required to be Passed} &
\multicolumn{2}{c}{\bfseries Cumulative Number of Senior Courses Required to be Passed}  \\
\cmidrule(l){2-3} \cmidrule(l){4-5}
& BSc & EDP & BSc & EDP  \\
\midrule
First-year & 2 & 2 & --- & ---  \\
Second-year & 7 & 6 & --- & --- \\
Third-year & 11 & 10 & 3 & 2 \\
Fourth-year & 15 & 14 & 6 & 5 \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}
\end{document}

решение1

Я внес три изменения в вашу таблицу:

1) Я добавил\centering

2) Я изменил ширину 4 правых столбцов на 0.2\textwidth..., и

3) Я поместил заголовки каждый в свой собственный \Longstack. Это потребовало трех дополнительных настроек в преамбуле: добавить пакет stackengine; указать пакету использовать \#в качестве конца строки, так как tabularуже использует \\(обратите внимание, что последняя stackengineверсия 4.00 может использовать \\разделители конца строки, даже вложенные в tabular); и указать пакету установить 12pt между базовыми линиями строк стека, так как tabularобнуляет значение \baselineskip, которое в противном случае является зазором длинного стека по умолчанию. Обратите внимание, что вы можете указать a \Longstackили [l]необязательный [r]аргумент, чтобы изменить его с [c]выравнивания по умолчанию.

\documentclass{article}
\usepackage{booktabs, threeparttable, stackengine}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\setstackEOL{\#}
\setstackgap{L}{12pt}
\begin{document}
\begin{table}[ht]
\centering
\begin{threeparttable}
\caption{Minimum Requirements for Automatic Readmission into the Science Faculty}
\label{table:sci}
\begin{tabular}{@{}p{0.18\textwidth}*{4}{L{\dimexpr0.20\textwidth-2\tabcolsep\relax}}@{}}
\toprule
& \multicolumn{2}{c}{\bfseries \Longstack{Cumulative Number\# of Courses Required\# to be Passed}} &
\multicolumn{2}{c}{\bfseries \Longstack{Cumulative Number of\# Senior Courses Required\# to be Passed}}  \\
\cmidrule(l){2-3} \cmidrule(l){4-5}
& BSc & EDP & BSc & EDP  \\
\midrule
First-year & 2 & 2 & --- & ---  \\
Second-year & 7 & 6 & --- & --- \\
Third-year & 11 & 10 & 3 & 2 \\
Fourth-year & 15 & 14 & 6 & 5 \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}
\end{document}

введите описание изображения здесь

решение2

Не используйте cin \multicolumn{2}{c}{...но

 \multicolumn{2}{L{\dimexpr0.3\linewidth-8\tabcolsep\relax}}{...

Полный код:

\documentclass{article}
\usepackage{booktabs, threeparttable}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}


\begin{document}
\begin{table}[H]
\begin{threeparttable}
\caption{Minimum Requirements for Automatic Readmission into the Science Faculty}
\label{table:sci}
\begin{tabular}{@{}p{0.18\textwidth}*{4}{L{\dimexpr0.3\linewidth-8\tabcolsep\relax}}@{}}
\toprule
& \multicolumn{2}{L{\dimexpr0.4\linewidth-4\tabcolsep\relax}}{\bfseries Cumulative Number of Courses Required to be Passed} &
\multicolumn{2}{L{\dimexpr0.4\linewidth-4\tabcolsep\relax}}{\bfseries Cumulative Number of Senior Courses Required to be Passed}  \\
\cmidrule(l){2-3} \cmidrule(l){4-5}
& BSc & EDP & BSc & EDP  \\
\midrule
First-year & 2 & 2 & --- & ---  \\
Second-year & 7 & 6 & --- & --- \\
Third-year & 11 & 10 & 3 & 2 \\
Fourth-year & 15 & 14 & 6 & 5 \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}
\end{document}

введите описание изображения здесь

Связанный контент