我有一张巨大的表格 (tabularx),其中有几列包含大量文本。其中一列包含长文本,但不应包含连字符,尽管应该断开。
例如:
\documentclass[oneside,a4paper]{memoir}
\usepackage[english]{babel}
\RequirePackage{underscore}
\usepackage{blindtext}
%% Table Style
\RequirePackage{ltablex}
\RequirePackage{tabu}
\begin{document}
\begin{center}
\begin{tabularx}{\textwidth}{ |X|X|}
\hline
Function signature & Description \\
\hline
\hline
sdsadasdasdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad_asdfasd() & \blindtext \\
\hline
asdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad() & \blindtext \\
\hline
asdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad() *StatsReport & \blindtext \\
\hline
asdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad() & \blindtext \\
\hline
\end{tabularx}
\end{center}
\end{document}
在这种情况下,第一列虽然被分割,但不应包含连字符,因为这会造成混淆。
有什么办法吗?
我尝试了所有的技巧这个帖子但没有任何效果。
答案1
当文本在下划线处断开时,该underscore
包有一个选项可以抑制连字符:nohyphen
\usepackage[nohyphen]{underscore}
这修复了您的示例。要阻止 TeX 对剩余文本进行连字符处理,您可以\hyphenchar\font=-1
在受影响单元格的开头添加。另一种方法是允许在其他地方断词,但这在您的示例中不是必需的,我不建议这样做,因为它看起来很混乱。
\documentclass[oneside,a4paper]{memoir}
\usepackage[english]{babel}
\RequirePackage[nohyphen]{underscore}
\usepackage{blindtext}
%% Table Style
\RequirePackage{ltablex}
\RequirePackage{tabu}
\begin{document}
\begin{center}
\begin{tabularx}{\textwidth}{ |X|X|}
\hline
Function signature & Description \\
\hline
\hline
\hyphenchar\font=-1 sdsadasdasdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad_asdfasd() & \blindtext \\
\hline
\hyphenchar\font=-1 asdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad() & \blindtext \\
\hline
\hyphenchar\font=-1 asdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad() *StatsReport & \blindtext \\
\hline
\hyphenchar\font=-1 asdasdasdasd_dsfad_asdfasd_dsfad_asdfasd_dsfad() & \blindtext \\
\hline
\end{tabularx}
\end{center}
\end{document}