LoginSignup
5
4

More than 5 years have passed since last update.

Microsoft Wordで様式(罫線)が指定された文書をLaTeXで作成する方法

Last updated at Posted at 2017-09-21

背景

大学に勤務していると、折々に以下のような「研究業績調書」なるものを用意する必要が生じます。

論文名称 著者 発行年月日 雑誌名 概要
1. くじらの卵を求めて ○△□ 9999年9月 大海原の夢社 くじらの卵についての探求記録について述べた一般向け書籍.
2. くじらの卵の発見 ○△□ 9999年9月 全宇宙夢想的生物学会誌, Vol.99, No.99, pp.2999-3000 くじらの卵についての記述論文.

ところが、某大学の指定様式は、とても面倒な様式になっていました。

  1. Microsoft Word で縦方向の罫線だけが指定されていて、横方向の罫線が存在しませんでした。そのため、各頁の2番目以後の項目については、手動で改行を挿入して垂直方向の開始位置を揃える必要がありました。
  2. 論文名称の冒頭に 1,2,... と手動でナンバリングしなければならない。

特に垂直方向の位置を揃える作業に悶絶1したので、Microsoft Wordで様式が指定された文書をLaTeXで記述する方法を調べてみました。結論としては、科研費LaTeXで用いられている方法と良く似ているのですが、以下のような手順になりました。

  1. Microsoft Word文書をEPSファイルに変換2
  2. EPSファイルをwallpaper.styを使って、LaTeX文書の背景に貼る。
  3. 適当に場所を調整してLaTeX文書を作成する。今回の様式の場合はlongtable環境が適切。

Microsoft Word文書をEPSファイルに変換

最初に、何らかの方法でMicrosoft Word文書をPDFファイルに変換します。筆者の利用しているOffice2010では、「ファイル」→「名前をつけて保存」→「ファイルの種類」でPDFを選択、という手順で変換できました。

次に、pdfcropコマンドを使って、PDFファイルの余白部分を削除します。

pdfcrop given-msword-based.pdf mywallpaper.pdf

次に、pdftopsコマンドを使って、PDFファイルをEPSファイルに変換します。

pdftops -eps mywallpaper.pdf mywallpaper.eps

なお、pdfcropコマンドおよびpdftopsコマンドは、Debian GNU/Linuxでは、texlive-extra-utilsパッケージに含まれていますので、適宜にインストールしておきます。

EPSファイルの様式を背景とするLaTeX文書の作成

様式中のテキストの入るべき場所と、LaTeXが想定しているテキスト範囲を適当に一致させた文書を作成する必要があります。今回は背景として貼り込む様式の最外周の罫線を、そのままテキスト範囲と一致させました。サンプルは、以下の通りです3

sample.tex
\documentclass[9pt]{jsarticle}

% 今回は背景として貼り込む様式の最外周の罫線を、そのままテキスト範囲と一致させた。
\addtolength{\topmargin}{-5.5mm}
\addtolength{\textheight}{25mm}
\addtolength{\fullwidth}{25mm}
\setlength{\oddsidemargin}{-12mm}

\usepackage[dvipdfmx]{graphicx}
\usepackage{wallpaper}
\usepackage{longtable}
\usepackage[normalem]{ulem}

% 今回は複数ページからなる書類で、各ページにページ番号を付番しなければならない様式。
% 以下は、そのページ番号を指定箇所に出力させるための独自のページスタイルの定義。
\makeatletter
\def\ps@myheadings{%
  \ps@headings
  \def\@evenfoot{}%
  \def\@oddfoot{}%
  \def\@evenhead{%
    \if@mparswitch \hss \fi%
    \hbox to \fullwidth{No.~\thepage\hfil}%
    \if@mparswitch\else \hss \fi}%
  \def\@oddhead{%
    \hbox to \fullwidth{\hfil No.~\thepage}\hss}%
}
\makeatother
\pagestyle{myheadings}

% 業績をナンバリングするためのカウンタの定義
\newcounter{journal}
\setcounter{journal}{0}
\renewcommand{\thejournal}[0]{\stepcounter{journal}\arabic{journal}.}

\begin{document}
\CenterWallPaper{0.9}{mywallpaper.eps}
\renewcommand\arraystretch{1.5}
\begin{longtable}{p{4mm}@{~}p{35mm}p{14mm}p{20mm}p{36mm}p{72mm}}
\rule[0mm]{0mm}{32mm} \\% 様式の固定部分をスキップ.
\endhead
\thejournal
   & くじらの卵を求めて
   & ○△□
   & 9999年9月
   & 大海原の夢社
   & くじらの卵についての探求記録について述べた一般向け書籍.\\
\thejournal
   & くじらの卵の発見
   & ○△□
   & 9999年9月
   & 全宇宙夢想的生物学会誌, Vol.~99, No.~99, pp.~2999--3000
   & くじらの卵についての記述論文.\\
\end{longtable}
\end{document}

  1. Microsoft Wordに熟練されている方であれば、様式を壊さずに横方向罫線を追加して対応できたのだろうと思うのですが、筆者にはできませんでした‥‥。 

  2. 実際には、Microsoft Word文書をEPSファイルに変換する方法を忘れていて右往左往したので、この文書は備忘のために作成しました。 

  3. 実際には、自分の業績リストはBibTeX形式のファイルで管理しています。そのBibTeX形式のファイルから、サンプルを自動生成するスクリプトを用意して対応しました。 

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4