挤压表格中的文字

挤压表格中的文字

我经历过这个问题就我的情况而言,表格中有重叠的文本

这是我的 MWE

\documentclass[a4paper,10pt]{book}
\usepackage{pdflscape}    % to change certain pages to landscape mode
\usepackage{longtable}  % for tables spanning multiple pages
\begin{document}

This is my example


\begin{landscape}
 \begin{tabular}{|p{5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\hline 
ABCD EFGH  ABCD EFGH  ABCD EFGH ABCD EFGH  ABCD EFGH  & H & H & H & H & OCH2-CH=C(CH3)CH2CH2CH=C(CH3)2 & H  \tabularnewline
\hline 
\end{tabular}
\newline
\end{landscape}
\end{document}

我无法扩展/压缩列大小。

问题是如何修复第 6 列溢出的文本。而第 1 列则适合。

我是否应该手动将文本连字符化以适合所需的单元格宽度?

答案1

在此处输入图片描述

此版本切换了类别代码,因此不能用作另一个命令的参数,但我认为在这里可以正常工作。惩罚0允许在这些点处休息,如果有些点比其他点更可取,那么你可以对可取的点给予负惩罚,对不可取的点给予正惩罚。

\documentclass[a4paper,10pt]{book}
\usepackage{pdflscape}    % to change certain pages to landscape mode
\usepackage{longtable}  % for tables spanning multiple pages
\usepackage{array}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash\hspace{0pt}\mybreaks}p{#1}}

\begingroup
\catcode`=\active
\catcode`-\active
\catcode`)\active
\gdef\mybreaks{%
\catcode`=\active\edef={\string=\penalty0 }%
\catcode`)\active\edef){\string)\penalty0 }%
\catcode`-\active\edef-{\string-\penalty0 }}
\endgroup
\begin{document}

This is my example


\begin{landscape}
 \begin{tabular}{|P{5cm}|P{2cm}|P{2cm}|P{2cm}|P{2cm}|P{2cm}|P{2cm}|}
\hline 
ABCD EFGH  ABCD EFGH  ABCD EFGH ABCD EFGH  ABCD EFGH  & H & H & H & H & OCH2-CH=C(CH3)CH2CH2CH=C(CH3)2 & H  \tabularnewline
\hline 
\end{tabular}
\newline
\end{landscape}
\end{document}

相关内容