[LaTeX] jsclassesの英語化の話

はじめに

TeXを使って英語の文書を作成したいときがある。本文に英語を打ちこんで通常通りにコンパイルすればよいのだが、次の問題が生じる。

  1. 自動で生成される部分、例えば「2018年1月1日」「目次」「図 1」「表 1」「参考文献」といった部分は、日本語のままになってしまう。
  2. ドキュメントクラスとしてjsarticleの代わりにarticleを使えば上記の問題は解決するが、文書サイズがA4ではなくなってしまう。

そこで、以下では、上に示した問題を解決しつつ英語化する方法を三つ説明する。

(1) babelパッケージ
(2) jsclassesのenglishオプション
(3) 自力で英語化

(個人的な)結論

(1)babelパッケージまたは(2)jsclassのenglishオプションを使う方法で英語化するのが簡単。ただし、行間などに違いがあるので注意が必要。一部変更したい部分があったら、(3)自力で英語化する方法で調整する。

方法1:babelパッケージを使う

babelというパッケージを使うことで、英語化することができる。ネットで検索する限りでは、この方法が最もよく紹介されていた印象。

\documentclass{jsarticle}
\usepackage[english]{babel}
\begin{document}
    TEXT
\end{document}

f:id:cyanatlas:20180205233601j:plain
babelパッケージによる英語化

これで英語化できる。しかし、 図表のラベルが「Figure1」「Table2」のように数字との間にスペースなく表示されるのがやや不満。三番目に示す方法でこの部分を変更することが可能。

方法2:jsclassesのenglishオプションを使う

jsclasses(jsarticleなどのドキュメントクラスのこと)には英語化オプションがある*1

\documentclass[english]{jsarticle}
\begin{document}
    TEXT
\end{document}

f:id:cyanatlas:20180205233634j:plain
jsclassesのenglishオプションによる英語化(widebaselinesなし)

この方法では、自動的に行間が欧文用に狭くなる。これが気に入らない場合は、\widebaselinesコマンドを入れて広めの行間にする(行間広めにしても和文よりは狭くなっているように感じる)。

\documentclass[english]{jsarticle}
\widebaselines
\begin{document}
    TEXT
\end{document}

f:id:cyanatlas:20180205233649j:plain
jsclassesのenglishオプションによる英語化(widebaselinesあり)

方法3:自力で英語化する

自力で英語化することもできる。

\documentclass{jsarticle}
\renewcommand{\today}{\the\year/\the\month/\the\day}
\renewcommand{\contentsname}{Contents}
\renewcommand{\figurename}{Fig. }
\renewcommand{\tablename}{Table. }
\renewcommand{\refname}{References}
\begin{document}
    TEXT
\end{document}

f:id:cyanatlas:20180205233544j:plain
renewcommandで自力で英語化

この方法のメリットは、自由度が高いである。例えば、図の表示を「Figure 1」とするか「Fig. 1」とするか、自分で指定することができる。

デメリットは、英語化するためにfigurenamerefnameなどの変数名をいちいち調べなければならず、手間がかかることである。よく使うものを一度調べてメモしておけば、二度目からはそれほど手間ではないかもしれない。

比較

上で紹介したいずれの方法でも、問題なく英語化できることが分かったが、比較してみると結果には細かな違いがある。最後にその細かな違いを示して終わろうと思う。

比較のため、英語化しないデフォルトのバージョンの出力結果を貼っておく。

f:id:cyanatlas:20180205233618j:plain
デフォルト(英語化なし)

結果の違いは、行間や段落の字下げ、目次のスタイルなどに現れる。表にまとめた。((表には書かなかったが、englishオプションの場合、widebaselineコマンドを入れても、本文の行間以外のスペースはデフォルトより狭めになっている。この狭さが何に由来するものなのかは分からないが、おそらくタイトル下のスペースもしくはセクション名まわりのスペースが狭めになっているのではないかと予想している。このため、本文の行間は和文と同じだが、文書全体としてはデフォルトよりも狭めに見える。))

*babel *englishオプション(widebaselineなし) *englishオプション(widebaselineあり) *自力
本文の行間 和文と同じ 和文より狭い 和文と同じ 和文と同じ
最初の段落 字下げあり 字下げなし 字下げなし 字下げなし
Figure1 Fig. 1 Fig. 1 任意
目次のインデント デフォルトより下げる デフォルトより上げる デフォルトより上げる デフォルトと同じ

英語文の字下げスタイルについては次のページが参考になる。

英語文の体裁 - TeX Wiki

このページによれば、英語の文章では最初のパラグラフは字下げしないのが基本のようだ。この点に関しては、babelパッケージ以外の方法が良いと言える。

補足

定理環境と日付については、それぞれ専用のパッケージを使うことで上手く英語化できる。これについて補足しておく。

補足1:定理環境の英語化

「定理 1」「補題 2」「定義 3」などの定理環境を英語化したいとき、上記の方法で英語化することもできるが、素直にamsthmパッケージを使って英語化する方が分かりやすい。別記事で使ったコードを貼っておく。

f:id:cyanatlas:20180120015312j:plain

\documentclass[12pt,a4paper]{jsarticle}
\usepackage{amsmath}
\usepackage{amsthm}        % amsthmパッケージの読み込み
\usepackage{newpxmath, newpxtext}
\usepackage[T1]{fontenc}
\newtheorem{thm}{Theorem}  % thm環境を定義し、"Theorem 1"などと表示させるように設定(同じようにして日本語も可)
\pagestyle{empty}
\begin{document}
\begin{thm}[Residue Theorem]
    Let $f$ be analytic in the region $G$ except for the isolated singularities $a_1, a_2, \dots, a_m$. If $\gamma$ is a closed rectifiable curve in $G$ which does not pass through any of the points $a_k$ and if $\gamma \approx 0$ in $G$, then
    \begin{align*}
        \frac{1}{2 \pi i} \int_{\gamma} f = \sum_{k=1}^{m} n(\gamma; a_k) \textrm{Res} (f; a_k)
    \end{align*}
\end{thm}
\end{document}

補足2:日付の英語化

例えば

\renewcommand{\today}{\the\year/\the\month/\the\day}

とすれば自力で日本語を含まない形式の日付に設定できるが、自前でいろいろ設定するよりも、素直にdatetimeパッケージに頼るのが良いと思う。

まとめ

jsarticleを英語化する方法はいくつかあったが、(1)babelパッケージもしくは(2)englishオプションで英語化するのが簡単だと分かった。ただし、行間など細かい点に違いがあるので、好きな方を選ぶと良いだろう。一部のスタイルを変更したい場合は、(3)自力で英語化する方法もしくは補足1・2の方法を使って調整できる。

参考文献・参考資料

*1:jsclassesのマニュアル http://mirror.hmc.edu/ctan/languages/japanese/jsclasses/jsclasses.pdf, p.8; 奥村晴彦・黒木裕介(2013)『LATEX2ε 美文書作成入門』(改訂第六版)技術評論社, p.152-153