段落の最後の行に単語が残らないようにするには、次のように調整しますparfillskip
。
\parfillskip 0pt plus 0.75\textwidth
これにより段落はより美しくなりますが、以下に示すように、セクションのタイトルも少し長くなります。最初のタイトルはデフォルトの でparfillskip
、2 番目のタイトルはです0pt plus 0.75\textwidth
。
parfillskip
段落の設定を維持しながら、タイトルの設定を維持するにはどうすればよいですか?
このコードはテキストとタイトルの効果を示しています(プレビュー):
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\section{This is a section title}
\lipsum[1]
\section{This is a section title}
% Fill the last line of paragraphs for minimum 25%
\parfillskip 0pt plus 0.75\textwidth
\section{This is a section title}
\lipsum[1]
\end{document}
答え1
セクションのタイトルは でタイプセットされ\@sect
、関連する部分をグループで囲みます。最後に が追加されますが\@@par
、これはプリミティブ です\par
。
したがって、\@sect
(番号付きセクションの場合) および\@ssect
(番号なしセクションの場合) を安全にパッチすることができます。
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@sect}{\begingroup}{\begingroup\parfillskip=0pt plus 1fil\relax}{}{}
\patchcmd{\@ssect}{\begingroup}{\begingroup\parfillskip=0pt plus 1fil\relax}{}{}
\makeatother
\usepackage{lipsum}
\begin{document}
\section{This is a section title}
\lipsum[1]
% Fill the last line of paragraphs for minimum 25%
\parfillskip 0pt plus 0.75\textwidth
\section{This is a section title}
\lipsum[1]
\end{document}
答え2
クラスの場合はmemoir
、前文に次の内容を追加するだけで十分です。
\setsecheadstyle{\Large\parfillskip=0pt plus 1fil}
答え3
セクション タイトルは、デフォルトのドキュメント クラスがまさにそれを実行するにもかかわらず、いずれの場合でも右揃えの余白でフォーマットされるべきではないため、\raggedright
セクションの定義で を宣言する必要があります。これを実行したら、 は\parfillskip
無関係になります。
必要に応じてセクションを定義します。
- 回想録やコマ、その他の優れたドキュメント クラスを使用。
- titlesec などのパッケージを使用する;
- 標準文書クラスのセクション分け
\@startsection
- あるいは、最もハックっぽいのは、次のようなパッチコマンドです。
\@sect
例えば、基本的な「記事」クラスは
\newcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
ドキュメント設定には、フォントスタイル引数に挿入された\renewcommand
を含めることができます。\raggedright
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\raggedright\Large\bfseries}}