next up previous
: 4.3 定義済みの文字列 : 4. テキストの組版 : 4.1 テキストと言語構造


4.2 改行と改ページ

4.2.1 各行の長さを揃える

本というものは,通常一行の長さがすべて 同じ長さになるように組版されています. LATEXでは,段落全体の文章を最適に配置することによって, 単語間に必要な改行やスペースを挿入します. 必要であれば,うまく一行に収まらない英単語に対して ハイフネーションを行います. どのように段落が組版されるのかは,文書クラスによります. 通常,段落の最初の行はインデントされ, 段落と段落との間に余分なスペースは加えられません. 詳しくは,7.3.2節を参照して下さい.

特別な場合には,LATEXに対して 改行を明示する必要があります.


\begin{command}
\texttt{\symbol{'134}\symbol{'134}},\texttt{\symbol{'134}newline}
\end{command}
このコマンドは改行を行いますが, 新しい段落のレイアウト4.2は 行いません4.3


\begin{command}
\texttt{\symbol{'134}\symbol{'134}*}
\end{command}
このコマンドは, 改行位置での改ページを禁止した改行を行います.


\begin{command}
\texttt{\symbol{'134}newpage}
\end{command}
このコマンドは,新しいページを開始します.


\begin{command}
\texttt{\symbol{'134}linebreak}\verb*\vert[\vert\emph{n}\verb*\v...
...symbol{'134}nopagebreak}\verb*\vert[\vert\emph{n}\verb*\vert]\vert
\end{command}
これらのコマンドは,コマンド名が示すとおりの動作を行い, オプション引数nに0から4までの整数値を取ることによって 動作を変えることができます. 出力結果の見栄えがかなり悪いときには, オプション引数nに4より小さな値を指定することによって, これらのコマンド本来の働きを抑えるオプションをLATEXに 知らせることができます. これらの``break''コマンドと``new''コマンドとを 混同しないようにして下さい. ``break''コマンドを指定すると, 次の節で説明するようにLATEXはページの右端や下端を 揃えようとして余分なスペースを挿入します. ``新しい行(new line)''を始める必要があれば, それに対応したコマンドを使って下さい. コマンド名はわかりますよね!.

LATEXは,最適な改行位置を見つけだそうとしますが, 標準的な方法でうまくいかない場合には, その行を段落の右端に突き出して組版を行います. そんな時LATEXは,``overfull hbox''と警告してきます. これは,LATEXが単語の適切なハイフンの位置を 探せないときによく生じます4.4\sloppyコマンドを使用すると, 改行の基準を多少緩めることができます. \sloppyコマンドは, 最終的な出力が最適で見栄えのよいものではなくなっても, 単語間のスペースを増やすことによって行末が長く右マージンに はみ出るのを防ぎます. この場合には,``underfull hbox''という警告が出ますが, たいてい満足のいかない出力結果しか得られません. \fussyコマンドを使用することで, LATEX本来の挙動に戻すことができます.


4.2.2 ハイフン

必要があれば,LATEXはハイフン処理を行います. しかしハイフンの場所が正しくなければ, 以下のコマンドを使用してLATEXに正しいハイフンの位置を 伝えます.


\begin{command}
\texttt{\symbol{'134}hyphenation}\verb*\vert{\vert\emph{word list}\verb*\vert}\vert
\end{command}
このコマンドは,引数として並べられた単語のうち ``-''が付けられた位置のみで ハイフンネーションを行うことを指定します. したがって引数は,通常の文字からなる単語, もしくは現在使用中の言語で通常の文字とみなされる記号しか 含んではいけません. ハイフネーションの指示は, \hyphenationコマンドが現れたときに 使用している言語に対して使用されます. これは,文書のプリアンブルでこのコマンドを使用した場合, 英語のハイフンネーションに影響すると言うことです. これに対して,\begin{document}コマンドの後や babelのような多国語言語をサポートしたパッケージを 使用している場合,ハイフンネーションの指示は, babelパッケージで指定されている言語に対して 有効になります.

以下の例では,\hyphenationコマンドの 引数に書かれた``Hyphenation''と同じように, 小文字のみからなる``hyphenation''もハイフネーションされます. また,``FORTRAN'',``Fortran'',``fortran''は ハイフネーションされません. 特殊文字,特殊記号は,引数に使用できません.

例:

\hyphenation{FORTRAN Hy-phen-a-tion}

\-コマンドを使用すると, 単語の任意の位置にハイフンを付けることができますが, このコマンドに指定した位置のみでしか ハイフネーションできなくなります. LATEXは,アクセント記号などの特殊文字を含んだ単語の ハイフネーションを自動で行うことはできませんので, このコマンドは特殊文字を使用している単語の場合に 特に利用されます.


\begin{example}
I think this is: su\-per\-cal\-%%
i\-frag\-i\-lis\-tic\-ex\-pi\-%%
al\-i\-do\-cious
\end{example}

単語の途中でハイフネーションを行って 改行しないようにするには,次のコマンドを使用します.


\begin{command}
\texttt{\symbol{'134}mbox}\verb*\vert{\vert\emph{text}\verb*\vert}\vert
\end{command}
このコマンドは,どんな状況でも単語の途中で改行しません.


\begin{example}
My phone number will change soon.
It will be \mbox{0116 291 2319...
...eter
\mbox{\emph{filename}} should
contain the name of the file.
\end{example}


next up previous
: 4.3 定義済みの文字列 : 4. テキストの組版 : 4.1 テキストと言語構造
Hiroyuki Ohsaki (oosaki@ics.es.osaka-u.ac.jp)