Re: section内での\\の再定義

名前: トノ
日時: 2002-08-02 00:51:04
IPアドレス: 202.219.231.*

>>9834 \iffalse \section の引数中では、段落途中でのページ分割で自動的に挿入される ペナルティーの値である \interlinepenalty に 10000 という値を代入する ことによって、途中でのページ分割を抑制しているのに、\par を使ったため、 ページ分割されてしまうのでしょう。 \\ は段落を終了させずに行分割するため、\interlinepenalty の値が効いて くるのに対し、\par は段落を終了させる命令なので、そこは段落の途中では なくなってしまうのです。 \section の中での \\ の再定義を、\par を使わないものにすると、引数中での 改ページは抑制されます。 \fi \documentclass{jarticle} \textheight7\baselineskip \begin{document} \typeout{% \string\interlinepenalty\space in normal context = \the\interlinepenalty } \section{あいうえお\\\large\hfill かきくけこ\typeout{% \string\interlinepenalty\space in \string\section\space command = \the\interlinepenalty }} あ \section{さしすせそ\\\large\hfill たちつてと} さ \makeatletter % \let\origsection\section % \def\section#1{{\def\\{\par\hfill\large}\origsection{#1}}} \let\orig@section\section \def\section#1{{\def\\{\newline\hfill\large}\orig@section{#1}}} \makeatother \section{はひふへほ\\まみむめも} は \end{document} ちなみに、\newline は、通常の段落モードでの \\ と同じ意味の命令です。 \par は、文章のもっとも基本的な論理的単位を区切るものであり、 \\ は、どちらかというと視覚的な整形に属するものです。論理的なマークアップを 主眼とする LaTeX においては、この違いは非常に大きいものだと思いますので、 きっちり身につけておかれた方がいいでしょう。 ※ 一時期、「段落を終了させるのには \\ を使う」というようなことが 堂々と書かれた唾棄すべき解説本が何冊か書店に並んだことがあります。 『てくてく TeX』あたりで LaTeX を覚えた身としては、腹立たしいくらいに 感じたものです。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)