[Japanese | English] [Index]

Latex Tips

Spacingなどについて

\sectionのタイトルの上下にあるスペースの量の調整は.clsファイルにある\newcommand\sectionの定義で行えます。

例えば jreport.cls ではこういう風になってる:

\newcommand{\section}{\@startsection{section}{1}{\z@}%
  {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%  
  {.5\Cvs \@plus.3\Cvs}%
  {\reset@font\Large\bfseries}}

そこで {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs} が上の量の調整項目で、{.5\Cvs \@plus.3\Cvs} が\sectionのタイトル下のスペースの調整項目です。読み方は

{A \@plusB \@minusC}: デフォールトで A、最大 A+B 、少なくとも A-C を開ける。

\Cvsは\baselineskipに相当してる。3ex とか 0.3cm でもOK:例えばreport.clsはデフォルトで{-3.5ex \@plus-1ex \@minus-.2ex}になっています。Aが負の場合は次に来る文章をインデントしないことになる。個人的に、{2.5ex \@plus1ex \@minus.5ex} にした。\subsectionなども同じように調整できます。

式の上下のスペースの量を調整する

.clsファイルの中で \abovedisplayskip や \belowdisplayskip を再定義すればOK。もともとjsize12.clo等に定義されている。

\setlength\abovedisplayskip{12\p@ \@plus3\p@ \@minus7\p@}を
\setlength\abovedisplayskip{11\p@ \@plus3\p@ \@minus7\p@}に

スペースありそうなのに式が中々ページに入ってくれないときは臨時的に変更すればよいでしょう。そういうときは .cls ファイルの中ではなく、自分の .tex ファイルの中で調整できます。ただ、注意すべきなのは、単位の書き方が変わることです。

{\setlength\abovedisplayskip{11pt plus 3pt minus 7pt}
\setlength\belowdisplayskip{11pt plus 3pt minus 7pt}
... (式) ...
}

という風に書けば、{}の範囲内にしか変更されない。

captionの上下の量の調整

同じような感じで、\abovecaptionskipを調整する。例えば、表の場合はcaptionを表の上にするけど、デフォルトでは captionの下にスペースを開けないことになってるので、表がcaptionにくっついてたりする。それを解決するために .cls ファイルに

\setlength\belowcaptionskip{5\p@}

と書きなおせばいい。

align環境などで書いた数行にわたる式を二つのページに分けてもいいことにしたいとき

数行にわたってるしきが大きなブロックになってて、今のページには入れないのででっかいスペースを開けて次のページにいってしまうときに便利なコマンド:

{\allowdisplaybreaks
... \begin{align} ... \end{align}
}

グローバルでも、臨時的にも使える。(なんとなく臨時的バージョンをお勧めする。あまりきれいじゃないから必要ない時はやめたほうがいい。)

行間をもっと開けたいけど、captionはシングルスペースのままであってほしい

setspaceというパッケージをお勧めします。例えば .sty ファイルに

\RequirePackage{setspace}
\setstretch{1.3}

を入れると、普段の文章の行間が \baselineskip の1.3倍になるけど、キャプションはシングルスペースのまま。

文章がページの一番したまできてくれなくて、ページの長さがバラバラ

おそらく.styか.clsファイルに \raggedbottom というコマンドがさりげなく入っている。そのコマンドが有効になると全てのスペースがページの下に集まる。コメントアウトするとちゃんと同じ長さになって くれるけど、パラグラフの間に大きいスペースが空いていたりして所々非常にきたなくなる可能性があるので、それに合わせて上に説明したsectionや式 の上下のスペース量を調整したほうがいい。また、うまくいかないときは手作業で \vspace などで頑張る。

最近の emacs Tex-mode での上付きや下付き記号のうざい視覚効果を無効にする方法

ここから引用。.emacsファイルにこの行を追加してください:
(eval-after-load “tex-mode” ‘(fset ‘tex-font-lock-suscript ‘ignore))

PDFファイルへのフォントの埋め込み

最近PDFファイルにフォントを全て埋め込むように指定する学会が増えてきて、〆切間際に「なんで埋め込んでくれないの??」とかなり焦ることは今まで何回かありました。個人的に何回か出てきた問題はRyumin-lightとGothicBBB-Mediumという日本語のフォントにかかわっています。Ryumin-lightとGothicBBB-Mediumは(少なくともWindows XPで)dvipdfmx等でのPDFファイル作成時にデフォルトでMS明朝とMS Gothicの代わりに使われています。そいつらがデフォルトで埋め込まれないので、「フォントの完全埋め込み」が必要な時に非常に出てほしくないフォントですね。MS明朝等をちゃんと利用して埋め込んでもらうにはdvipdfmxに .map を指定するか
dvipdfmx -f msembed.map file.dvi
或いはdvipdfmxのconfigファイルを編集してそれをデフォルトの設定にするかの二通りですね。僕の場合はconfigファイルがc:/tex/share/texmf/dvipdfmx/config/dvipdfmx.cfg で、ファイルの末に下記の一行を付け加えればOKです。
f msembed.map
ちなみに、なぜか上記の技はxdvipdfmxでは msmincho.ttc のフォントファイルが見つからなくて使えません。。。

TimesやHelveticaなどの欧文フォントも埋め込まれない傾向ですが、このページに従って同じように
dvipdfmx -f dlbase14.map file.dvi
にすれば、図以外のフォントは埋め込まれます。図のフォントにたいしてはさらに一工夫が必要です。gs_pdfwr.psというファイルを見つけて(僕の場合はC:/tex/gs/gs8.64/Resource/Init/にありましたが、インターネットで調べるとよくC:/tex/gs/gs8.64/lib/などにあると言われている)、DVIファイルの変換を行うフォルダにコピーして、以下のように編集すれば解決できます:
/.standardfonts [
%  /Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique
%  /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique
%  /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic
%  /Symbol /ZapfDingbats
] readonly def
そのコマンドでデフォルトで埋め込まれないフォントが定義されているので、コメントすればOKです。

Make ispell work in Meadow/Emacs on Windows XP

This is only remotely related to Latex, but can be useful. When trying to spell check a buffer in Meadow/Emacs on Windows XP, it may happen that ispell cannot find the dictionary file (typically US-xlg.hash). This can be solved by adding to environment variables (My Computer->Properties->Advanced->Environment Variables):
DICTIONARY:  C:\meadow\packages\etc\ispell\US-xlg.hash
ISPELL_DICTDIR:  C:\meadow\packages\etc\ispell
The correct values to put in may depend on your system. Make a search for the file US-xlg.hash to find the proper values.
最終編集: 2009/06/23, by Jonathan Le Roux.