\RaggedRight 防止连字

\RaggedRight 防止连字

\newcolumntype{L}[1]{>{\RaggedRight\arraybackslash}p{#1}} 建议的列类型这里不会对没有连字符的长单词进行连字符连接,而是让它们超出列的范围。

难道不是\RaggedRight专门为了方便连字而设计的吗?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}

\usepackage{ragged2e}

\newcolumntype{L}[1]{>{\RaggedRight\arraybackslash}p{#1}}

\begin{document}

raggedright:

\begin{tabularx}{40pt}{|>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{40pt}|}
Synthetically do 
\end{tabularx}

\bigskip

raggedright with finalhyphendemerits=0:

\begin{tabularx}{40pt}{|>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{40pt}|}
\finalhyphendemerits=0
Synthetically do 
\end{tabularx}

\bigskip

RaggedRight:

\begin{tabular}{|L{40pt}|}
Synthetically do 
\end{tabular}

\end{document}

答案1

\RaggedRight实际上使连字更多的相对于标准来说可能\raggedright,但比标准对齐段落的可能性较小。

通常在对齐段落时,tex 对字间距只有很小的灵活性,因此经常需要使用连字来达到目标​​行宽。

由于\raggedright在每行的右侧添加了可无限拉伸的粘连线,因此 TeX 永远不需要连字符,除非单词长于行宽,因为它总是有可用的空白。

\RaggedRight允许小有限每行末尾的可拉伸量,因此将优先于连字采用该选项,但如果避免连字会导致行太短,则(与 不同\raggedright)将对行进行连字,以便行末尾的空白在指定的范围内。


TeX 不会对段落的第一个单词进行连字符连接,因此您需要插入,\hspace{0pt}但在 RaggedRight 情况下您还没有这样做。

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}

\usepackage{ragged2e}

\newcolumntype{L}[1]{>{\RaggedRight\arraybackslash}p{#1}}

\begin{document}


RaggedRight:

\begin{tabular}{|L{40pt}|}
Synthetically do 
\end{tabular}



\begin{tabular}{|L{40pt}|}
\hspace*{0pt}Synthetically do 
\end{tabular}

\end{document}

相关内容