Поскольку не существует шаблона переноса бессмысленных слов, их следует переносить/разбивать по отдельности с помощью таких методов \hyphenation{longword}
, как \seqsplit{longword} и т. д.
Однако должно быть решение, позволяющее делать это автоматически, поскольку необходимость переноса/разрыва зависит от места слова, и нелегко сделать индивидуальный перенос для каждого слова, которое может оказаться в конце строки.
\documentclass{article}
\begin{document}
This is a test for a word which is too long at the end of a line aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\
This is a test for a word which is too long at the end of a line http://test.com/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3\\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa This is a test for a word which is too long at the end of a line\\
http://test.com/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3 This is a test for a word which is too long at the end of a line\\
\end{document}
Как видите, переносы/разрывы могут быть ненужными или крайне необходимыми. Фактически, должен быть способ запретить продолжение текста на полях. Это то, что делают текстовые редакторы, такие как MS Word. Я знаю, что это Tex
намного превосходит MS Word, но это может дать подсказку. Я думаю, что если перенести длинное слово на следующую строку, это лучше, чем писать его на полях и дальше.
Проблема возникает, когда таких слов много и обрабатывать их по отдельности довольно сложно.
решение1
Боюсь, тебе придется умереть одной смертью или другой. Либо ты
- разметьте ваши случайные слова заранее, тогда есть хорошие возможности сделать их переносными или обработать их особым образом
- или вы следите за предупреждениями «Переполнение hbox в абзаце» и добавляете
\hyphenation{...}
исключения впоследствии, когда это необходимо - или вы идете по пути MS-Word.
(это немного слишком, чтобы просить, так как TeX без небольшой помощи в виде разметки определяет, что "vsraajlkuhzjsp" является случайным словом, а "Antidis Establishmentarianism" - нет)
Поэтому в моем варианте первый подход - этоправильныйодин, например, написать что-то вроде \rw{foobar}
в исходном тексте. Затем вы могли бы заставить TeX манипулировать этими случайными словами, включая переносы, используя специальный \language
набор случайных шаблонов переносов (которые можно было бы легко придумать) или используя некоторые макросы для вставки явных переносов в случайных местах строки или ...
Но если разметка невозможна, то вы, конечно, можете выбрать вариант 3:
- Вы можете использовать
\raggedright
то, что Word часто делает, чтобы скрыть такого рода проблемы. - или вы могли бы использовать что-то вроде,
\setlength\emergencystretch{.5\textwidth}
чтобы получить выровненный текст в (почти) всех обстоятельствах. Конечно, ценой действительно уродливых абзацев.
Результат в вашем тексте будет выглядеть следующим образом (с \\
удаленными символами):