August 24, 2006

ワードをTeX化するテクニック(位置あわせ編)

最近、提出する文章の最終出力がPDFで要求されることが多くなりました。そういうわけで、文章は品質にこだわってTeXで作成、dvipdfmxで出力するようにし、M$のワードからは卒業しました。単にAdobeのAcrobatが手元になくて困っているだけ、という話もありますが(笑)。
そんなときに困るのが、テンプレートがワードだけで提供されている場合です。おそらくTeX派は圧倒的にワード派よりも少ない(研究室はほぼ全員ワード派)ので、何でワードだけ提供してTeXがないんだと文句を言っても仕方がないと思われます。ということで、ここは泣きながら元のワードファイルをTeX化します。

その際特に問題になるのが位置あわせです。元のワードファイルには嫌な奴がいて、例えば入力欄が表形式になっていて、空白の位置指定(例えばここの空白は縦に何mm空けてね)等がばっちりされているものがあります。そこで今回はTeXで如何に位置あわせを行うか考えてみました。

続きをどうぞ。

大きくわけて2点を検討してみました。

まず文章領域の設定です。ワードでは紙面の中で文章が記述できる領域が指定されていることがあります。このような場合はgeometry.styというパッケージを活用すれば解決できます。
例えば次の例は紙面の端から上下25mm、左右20mmを除いた領域を文章領域として設定する場合です。

¥usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}

次にワードの表組みでセルの大きさが指定されている場合ですが、tabularx環境と¥ruleを使って解決します。tabularx環境は横幅指定ができる表です。また、¥ruleは罫線を引くための命令ですが、罫線の長さを0mmにすることによって任意の縦幅を指定した空間が作れます。
例えば横幅が100mmで縦幅が10mmの表は次のようになります。ここで-3.5mmというのは文字が中央にくるように適当に調整した結果です

¥begin{tabularx}{100mm}{p{100mm}}
¥rule[-3.5mm]{0mm}{10mm} 1行目 ¥¥
¥rule[-3.5mm]{0mm}{10mm} 2行目 ¥¥
¥rule[-3.5mm]{0mm}{10mm} 3行目
¥end{tabularx}

最後に位置あわせがうまくいったかをdvioutで確認します。dvioutの[View]-[Grid]-[On]をすると、紙面上に等間隔の格子が表示されます。これを元に微調整を行うとよいと思います。
なお格子間隔は設定できて、[View]-[Grid]-[Scale]を選ぶとでてくるボックスで指定します。例えばScale: 1000/1000cmなら間隔は1cmになります(もし間隔が変だと思ったら最後の補足を参考にしてください)。TeX OriginというのはTeXの座標系は紙面の左上端から1inch(25.4mm)のところを原点としているので、そこを原点とするかどうかということです。

今まで書いた内容に補足ですが、jsarticleなどの奥村先生の新ドキュメントクラスを利用している場合には注意が必要です。
まずTeXでの長さ指定においてtruemmやtruecmといった単位を使用する必要があります。また、dvioutでの格子間隔の調整についても拡大率に基づいて補正を施す必要があります(例えば文字サイズ12ptなら拡大率が1.2なので1200/1000cmで1cm間隔になる)。
これは新ドキュメントクラスでは文字を綺麗に見せるために紙面の拡大縮小を行ってることによる影響です。例えば文字サイズに12ptを指定した場合、紙面は1.2倍に拡大されています。このことは新ドキュメントクラスのFAQの『長さがずれます』に説明があります。なお拡大率の調べ方ですがクラスファイルで¥magと¥@ptsizeを検索すれば発見できると思います。

11:53 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/511
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。