December 19, 2010TeXで『節タイトルだけ大文字』、『トンボをつける』[Computer]
原稿を書いていると、指定のフォーマットに沿っていることを要求されることが多々あるのですが、今回遭遇した2つの問題におけるTeXでの解決方法をまとめておこうと思います。1つは、節のタイトルを英文字の大文字にしなさい、という指定です。もう1つは用紙サイズがA4といった通常のサイズではなく、変な大きさの場合への対処方法です。 まず1つ目についてですが、節のタイトルだけ大文字にする方法です。はじめから大文字で書けばいいんじゃない、と思われる方もいるかもしれませんが、楽をするために苦労するのが僕のポリシーです。そこで、通常のスペルで記述しても、自動的に大文字に変換する方法を検討してみました。最終的には以下の呪文(笑)をプリアンプルに書くと、英小文字で書いたところで、全て大文字に変換されます。 \makeatletter
\let\sectionorig\section \def\@sectionorig#1{\sectionorig*{\MakeUppercase{#1}}} \def\@@sectionorig#1{\sectionorig{\MakeUppercase{#1}}} \renewcommand{\section}{\@ifstar{\@sectionorig}{\@@sectionorig}} \makeatother TeXには組み込みで大文字に変換してくれるマクロ\MakeUppercaseがあるのですが、それを元の\sectionと組み合わせて使うために、\sectionコマンドを\sectionorigという別の名前に一度退避しています。その後、書き換えた\sectionコマンドで引数を大文字に変換してから、\sectionorigを使って元の\sectionを適用することで、他の書式を変更することなく内容を大文字にしています。 もうひとつの用紙サイズの話ですが、これはトンボをつけて後から用紙を切断することで解決しました。トンボは仕上がりの範囲をあらわすために四隅につけるマークのことで、geometryパッケージのshowcropオプションでサポートされています。
たとえば100x100mmの仕上がり範囲にトンボを入れたければ、以下のコードで実現できます。 \usepackage[layoutsize={100truemm, 100truemm}, layoutoffset={20truemm, 20truemm}, showcrop, dvipdfm]{geometry}
jsarticleを使っていることを想定して例では単位をtruemmとしました。またlayoutoffsetがない場合は、実際に印刷する紙の左上隅を基準に仕上がり範囲を定めることになりトンボの一部が印刷から消えてしまい都合が悪かったので、いれてあります。 痒いところに手が届いたとき、TeXを使っていてよかったなぁと思います。 コメント
「TeX は万能なので必ずできるはず」ということだけは分かっています。しかし,それを実装するのが難しい。最終的にはできるんだけど,バッドノウハウが山積みになる,というパターンが多いです。 >nさん コメントする
|
スポンサード リンク
|