はじめに
現在、国際学会向けの論文を書いています。
ただ、あまり自分では自信のある内容ではないので、間に合ったとしても落ちる可能性大ですが・・・ (でも最後まで頑張ってみます><)
さて、国際学会ということは英語なので、英語で書く必要があります(?)
ただ、僕は論文を英語で書きなれていないのでまずは「日本語」で書くことになりました。
日本語で書き終わった後、英語にする必要がありますが実際に
すべての日本語を1文1文消して直接英語にするのは面倒なので避けたいところです(元の日本語の文も消えてしまうため)
そこで、日本語の原稿の中に英語の文章も追加して、なにか変数一つで切り替えられないか考えることにしました。
(TeX/LaTeX初心者です>< 間違いがあればどんどんコメントいただければうれしいです!)
TeXのマクロ
組版システムであるTeXには、
\if
、else
, \newif
などのマクロが存在しています。
これは、TeXファイルをコンパイル時にこれらのマクロをコンパイラが読んで、実行を変えるものです。
原稿状態の日本語を英語に変えるには、「\newif
, if
, else
, fi
」を用います。
\documentclass[]{jsreport}
\newif\ifdraft
% 日本語
\drafttrue
% English
% \draftfalse
\begin{document}
\ifdraft
ここは日本語です。
\else
This is English.
\fi
\end{document}
上記のようなTeXファイルを作成します。
\newif
は新しいifマクロを定義していて
\ifdraft
(原稿かどうか?)のマクロを作っています。
そして、drafttrue
で原稿状態であるということを定義します。
これによって、\ifdraft
から\else
の内部のみが展開され、
英語部分は利用されません。

\documentclass[]{jsreport}
\newif\ifdraft
% 日本語
% \drafttrue
% English
\draftfalse
\begin{document}
\ifdraft
ここは日本語です。
\else
This is English.
\fi
\end{document}
上記のようにすることで、draftfalse
になり
\else
から'\fi'までが実行されます。

LaTeXのコマンド
TeXは、システムかつ言語であり、組版を作るための言語として開発されました。
しかし、TeXは高度かつ難しいため、いろいろな文法をTeX言語を用いて拡張したものが$\LaTeX$です。
そのため、LaTeXはTeXの拡張であり、子クラスみたいな存在に当たります。
TeX自体で、先程のマクロを触るのは大変難しいらしく(ベテラン向け)、初心者は拡張された優しい文法のLaTeXを用います(一般的に言われているのは最近はこっち)。
そのため、先程のifの分岐は、より優しく書くこと、柔軟に書くことができ
LaTeX で条件分岐や反復処理:ifthen パッケージのキホン
で丁寧に説明されています。
例えば、日本語と英語の切り替えは以下のようにコマンドで行えます。
\documentclass[]{jsreport}
\usepackage{ifthen}
\newboolean{Draft}
\setboolean{Draft}{false}
\begin{document}
\ifthenelse{\boolean{Draft}}{
ここは日本語です。
}{
This is English.
}
\end{document}
拡張版のLaTeXを用いることで、他の様々な細かく柔軟な条件分岐を行うことができるため、こちらを使っていくのがいいのだろうと思います。