Geekのための Word文書生成

Cやらスクリプトでバリバリとデータの処理はやるけど、最終的にMS Word で出さないといけないのでヴァー、ってケースはよくあります。
たとえば論文一覧データを元にこちらhttp://www.aesj.or.jp/publication/pnst001/index.html にあるCONTENTS とかAUTHOR INDEX を作れ、って仕事とか。
こういう場合は、CなんかでHTMLである程度整形したのを吐いてそれをWordで読んで最終調整する、ってのが楽です。
AUTHOR の場合、まずヘッダを

<html><META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=UTF-8>
<style type="text/css"><!--
p.MYlet{font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";}
p.MYtxt{font-size:8.0pt;font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";}
 --></style>
</head>

として、

<center><b><p class=MYlet>A</p></b></center>
<p class=MYtxt>ABe Tarín<span style='mso-tab-count:1'> </span>130</p>
<p class=MYtxt>ASADA Ichiro<span style='mso-tab-count:1'> </span>898</p>
...

のようなHTMLを吐きます。文字コードUTF-8がいいでしょう。アクセント記号などをterminalやvimで普通に処理できるので。これをワードで読んで

  • 表示>印刷レイアウト、を選択
  • ページレイアウト>余白の設定
  • データ部分を全選択して三段組に
  • ホーム>スタイル右下のアイコンをクリックしてスタイル一覧を出し、MYlet とMYtxtのフォントを変更

とかします。

また、論文PDFにヘッダやページなどを追加するには、まずTeXでヘッダ、フッタを作り

\documentclass[a4paper,10pt]{article}
%% 微調整
\oddsidemargin -9.4mm
\evensidemargin -9.4mm
\textwidth 183mm
\topmargin -20mm
\textheight 276mm

\pagestyle{empty}
\begin{document}
\footnotesize
\noindent \leftline{Progress in NUCLEAR SCIENCE and TECHNOLOGY, Vol.1. pp. xxx}
\vfill
\centerline{\bf 155}
\newpage
...

これをPDFにして、pdftk(http://www.pdflabs.com/docs/build-pdftk/)で重ねます。

pdftk original.pdf multibackground headerfooter.pdf output final.pdf

本来は透かしを入れる機能なので、背景を白塗りで作成してあるとできません。