原文と翻訳を並べたLaTeXを書く

(追記01) Wordで提出だった．死にたい．
(追記02) 古坂大魔王の字間違えてた．死にたい．

# 動機
学校の課題でこんな課題が出た．

> 各文章を日本語に翻訳する．なお、英語と日本語を１文ずつ対比できるように記述すること．

めんどくさい．英語訳すだけでもめんどくさいのに並べて書くとかさらにめんどくさい．
ええい自動化してやれ．(期待してる人はいないと思うが，英訳ではなく並べて書くところを)

# 対訳ファイルを作る
ここは人力．下記のファイルを作る．行ごとに対応させること．

```:ppap_en.txt
I have a Pen.
I have an Apple.
uhhhhhhh, Apple-Pen!

I have a Pen.
I have a Pineapple.
uhhhhhhh, Pineapple-Pen!

Apple-Pen...
Pineapple-Pen...
uhhhhhhh, Pen-Pineapple-Apple-Pen!
```
```:ppap_ja.txt
私はペンを持っています．
私はリンゴを持っています．
んああ，リンゴ-ペン!

私はペンを持っています．
私はパイナップルを持っています．
んああ，パイナップル-ペン!

リンゴ-ペン…
パイナップル-ペン…
んああ，ペン-パイナップル-リンゴ-ペン!
```

# LaTeX形式に変換
`multicolpar.sty`というスタイルファイルを使う前提．使い方は[ここ](http://www.ic.daito.ac.jp/~mizutani/tex/doc/translate/translate_sample.pdf)を参照のこと．

下記のPythonコードが`_latex.txt`っていうサフィックスのついたファイルを作成してくれる．ただ行をなめてるだけだけど．

```python:translate_in_latex.py
from os.path import join

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--data_dir', type=str, default='./src')
parser.add_argument('--prefix', type=str, default='ppap')
flags = parser.parse_args()

if __name__ == '__main__':
    file_en = join(flags.data_dir, flags.prefix + '_en.txt')
    file_ja = join(flags.data_dir, flags.prefix + '_ja.txt')

    with open(file_en) as f:
        lines_en = f.readlines()
    with open(file_ja) as f:
        lines_ja = f.readlines()

    file_out = join(flags.data_dir, flags.prefix + '_latex.txt')
    with open(file_out, mode='w') as f:
        for i, (line_en, line_ja) in enumerate(zip(lines_en, lines_ja)):
            if line_en == '\n' or line_ja == '\n':
                print('[line {}] blank row was skipped.'.format(i+1))
            else:
                block = ['\\begin{multicolpar}{2}\n',
                         line_en,
                         '\n',
                         line_ja,
                         '\\end{multicolpar}\n',
                         '\n']
                for line in block:
                    f.write(line)
    print('[!] file {} was generated!'.format(file_out))
```
生成されたファイルがこれ．

```latex:ppap_latex.txt
\begin{multicolpar}{2}
I have a Pen.

私はペンを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
I have an Apple.

私はリンゴを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
uhhhhhhh, Apple-Pen!

んああ，リンゴ-ペン!
\end{multicolpar}

\begin{multicolpar}{2}
I have a Pen.

私はペンを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
I have a Pineapple.

私はパイナップルを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
uhhhhhhh, Pineapple-Pen!

んああ，パイナップル-ペン!
\end{multicolpar}

\begin{multicolpar}{2}
Apple-Pen...

リンゴ-ペン…
\end{multicolpar}

\begin{multicolpar}{2}
Pineapple-Pen...

パイナップル-ペン…
\end{multicolpar}

\begin{multicolpar}{2}
uhhhhhhh, Pen-Pineapple-Apple-Pen!

んああ，ペン-パイナップル-リンゴ-ペン!
\end{multicolpar}
```

# 実際にLaTeXでタイプセットしてみる
さっきも言ったけど，`multicolpar.sty`を使うのでプリアンブルに書くのをお忘れなく．
`ppap_latex.txt`の中身をdocument環境の中に突っ込めば終了．

```latex:ppap.tex

\documentclass[11pt]{jarticle} 
\usepackage{otf}
\usepackage{multicolpar}


\title{¥LARGE Pen-Pineapple-Apple-Pen} 
\author{¥normalsize 古坂学部 大魔王学科　ピコ太郎¥¥指導教員　ジャスティンビーバー} 
\date{¥today}

\pagestyle{empty}

\begin{document}
\maketitle

\begin{multicolpar}{2}
I have a Pen.

私はペンを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
I have an Apple.

私はリンゴを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
uhhhhhhh, Apple-Pen!

んああ，リンゴ-ペン!
\end{multicolpar}

\begin{multicolpar}{2}
I have a Pen.

私はペンを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
I have a Pineapple.

私はパイナップルを持っています．
\end{multicolpar}

\begin{multicolpar}{2}
uhhhhhhh, Pineapple-Pen!

んああ，パイナップル-ペン!
\end{multicolpar}

\begin{multicolpar}{2}
Apple-Pen...

リンゴ-ペン…
\end{multicolpar}

\begin{multicolpar}{2}
Pineapple-Pen...

パイナップル-ペン…
\end{multicolpar}

\begin{multicolpar}{2}
uhhhhhhh, Pen-Pineapple-Apple-Pen!

んああ，ペン-パイナップル-リンゴ-ペン!
\end{multicolpar}
\end{document}
```

下記出来上がったファイル．できた．
![ppap.png](https://qiita-image-store.s3.amazonaws.com/0/274187/a0f5244b-620e-9cf8-fa8b-08667ba6561a.png)



# まとめ
こんなことしてるから課題が進まない．

# 参考
「対訳スタイルで書く」 - http://www.ic.daito.ac.jp/~mizutani/tex/doc/translate/translate_sample.pdf
「Pythonでファイルの読み込み、書き込み（作成・追記）」 - https://note.nkmk.me/python-file-io-open-with/
「PPAP（Pen-Pineapple-Apple-Pen Official）ペンパイナッポーアッポーペン／PIKOTARO(ピコ太郎)」 - https://www.youtube.com/watch?v=0E00Zuayv9Q
「古坂大魔王 - Wikipedia」 - https://ja.wikipedia.org/wiki/%E5%8F%A4%E5%9D%82%E5%A4%A7%E9%AD%94%E7%8E%8B

# 補足
下記みたいなファイル構造で作ってるよ．なんか不備があったらすまん．

```
[root]
　　|　- [src]
　　|  　　|　- ppap_en.txt
　　|  　　|　- ppap_ja.txt
　　|  　　|　- ppap_latex.txt
　　|　- translate_in_latex.py
　　|　- multicolpar.sty
　　|　- ppap.tex
　　|　- ppap.pdf # 出力ファイル
```