不使用连字符断行

不使用连字符断行

我有一张巨大的表格 (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}

在此处输入图片描述

相关内容