意味のない長い単語を自動的に改行/ハイフンで区切る

意味のない長い単語を自動的に改行/ハイフンで区切る

意味のない単語をハイフンで区切るパターンはないので、\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 などのテキスト エディターが行うことです。MS TexWord とは比べものにならないことはわかっていますが、ヒントにはなります。長い単語を余白やそれ以降に書くよりも、次の行に送る方がよいと思います。

問題は、この種の単語が多数ある場合に発生し、それらを個別に処理することは非常に困難です。

答え1

君はいずれ死ぬしかないと思う。

  • ランダムな単語を事前にマークアップしておくと、ハイフンで区切ったり、特別に処理したりできる可能性があります。
  • または、「段落内のhboxが多すぎる」という警告に注意し、\hyphenation{...}必要に応じて後で例外を追加します。
  • または、MS-Word ルートを使用します。

(マークアップの形で少し助けを借りずに TeX が「vsraajlkuhzjsp」はランダムな単語だが「Antidisestablishmentarianism」はそうではないと識別するのは、少し要求しすぎです)

私の選択肢としては、最初のアプローチは正しい\rw{foobar}1 つは、たとえばソース テキストに次のように記述することです。次に、\language一連のランダムなハイフネーション パターン (簡単に作成できます) を使用した特殊なハイフネーションを使用して、これらのランダムな単語を TeX で操作したり、マクロを使用して文字列内のランダムな場所に明示的にハイフンを挿入したりすることができます。

しかし、マークアップがオプションでない場合は、もちろんオプション 3 を選択することもできます。

  • \raggedrightWordがこの種の問題を隠すためによく使う方法を使うことができます
  • または、(ほぼ)すべての状況で両端揃えのテキストを取得するために、 のようなツールを使用することもできます\setlength\emergencystretch{.5\textwidth}。もちろん、その場合、段落の見た目が非常に悪くなります。

結果はテキスト上で次のようになります ( は\\削除されています): ここに画像の説明を入力してください

関連情報