emph 忽略页边距

emph 忽略页边距

为什么\emph要忽略页边距?如何通过将 emph 中的单词设置为新行来修复它?请参阅以下示例:

例子

编辑:文本的第二行太长。我不希望将“edu.kit.sdq.modeljoin.compliance.model”分开,而是将其放在新行上,这样页边距才正确。

编辑2:MWE:

\documentclass[11pt, a4paper]{article}

\begin{document}
mdskam saskksk smdlakm dklsa mldk dlksam lkdsam sksksk \emph{de.de.de.de.de.de.de.de.de.de} dsamkld samkl samkl dsamkl dsamkl mdslkam dlskam dklsam kldasm dklsamlkd smalk maslkmdsalkas mnsbh ds dsm fndjk sdfdslkm dsmk ldsm klfdsm fklds 
\end{document}

答案1

\documentclass[11pt, a4paper]{article}

\begin{document}\sloppy
                 %%%%%%
mdskam saskksk smdlakm dklsa mldk dlksam lkdsam sksksk \emph{de.de.de.de.de.de.de.de.de.de} dsamkld samkl samkl dsamkl dsamkl mdslkam dlskam dklsam kldasm dklsamlkd smalk maslkmdsalkas mnsbh ds dsm fndjk sdfdslkm dsmk ldsm klfdsm fklds 
\end{document}

答案2

这与 无关\emph。未断开的字符串中没有空格,而且全是标点符号,因此 tex 不知道在哪里断开它 —— 在这种情况下连字符连接例程根本不起作用。

打破这一困境的最简单方法是使用包url,然后使用命令\url{xxx.xxx.xxx}应用一组不同的打破规则。即使这实际上不是一个 url,也应该应用相同的打破机制。

编辑:OP 不想破坏“牢不可破”的字符串。有几种方法可以避免这种破坏:

  • 在包含该字符串的段落开头添加\begin{sloppypar},并在段落末尾添加\end{sloppypar}。这将导致有问题的字符串被移动到下一行,使前一行留下令人不快的宽空格,并且段落的其余部分可能出现不均匀的间距。这种技术会将间距效果限制在那一个段落,不像 david carlisle 提出的建议那样,这会影响整个文档。

  • 只需决定将该字符串之前的行留短,然后\\在其之前插入。这不会对段落的其余部分产生不利的间距影响,并且在这种情况下,可能会产生更有吸引力的结果。

  • 将字符串单独设置在一行上,可能将其视为“等式”:\[\text{...}\]。(\text需要使用该amsmath包。)

  • 重新措辞该段落。

所有这些方法都忽略了“不可破坏”字符串可能比文档的文本宽度更长的可能性,这种情况并不罕见。

相关内容