創作の中のLaTeX - シン・ウルトラマン編

映画シン・ウルトラマンには、以下のように論文が映るシーンがあります。
<blockquote class="twitter-tweet" data-dnt="true"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/%E3%82%B7%E3%83%B3%E3%82%A6%E3%83%AB%E3%83%88%E3%83%A9%E3%83%9E%E3%83%B3?src=hash&amp;ref_src=twsrc%5Etfw">#シンウルトラマン</a> FILE<br>￣￣￣￣￣￣￣￣￣￣￣<br><br>ベーターシステム<a href="https://twitter.com/hashtag/%E5%A4%A7%E3%83%92%E3%83%83%E3%83%88%E4%B8%8A%E6%98%A0%E4%B8%AD?src=hash&amp;ref_src=twsrc%5Etfw">#大ヒット上映中</a> <a href="https://t.co/Ur2YCqgJdw">pic.twitter.com/Ur2YCqgJdw</a></p>&mdash; 映画『シン・ウルトラマン』公式アカウント (@shin_ultraman) <a href="https://twitter.com/shin_ultraman/status/1548865139725795333?ref_src=twsrc%5Etfw">July 18, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

上記の公式ツイートの画像から確認できるように、デスクトップには`.tex`の拡張子を持つファイルが置かれており、この論文がLaTeXというモノで書かれていることを示唆しています。
同映画はAmazon Prime Videoでの公開が始まり、論文について細部まで確認が出来るようになりました。

…となると、もちろん論文を再現させて内容を確認したくなりますよね？

この記事では、再現にあたってコード上で考慮した箇所の説明を行い、そのコード・内容を公開します。
さらに、同映画で映るもう一つの論文についても公開します。

## 注意事項
- この記事には映画シン・ウルトラマンのネタバレを含みます。
- 再現内容の正確性については保証できません。
- 今回のリバースエンジニアリングにあたっては、コードの簡潔性を優先しており、再現度を諦めた箇所があります。
- LaTeXの利用方法についての説明はありません。
    - LaTeXについて興味を持たれた方は「[LaTeX入門 - TeX Wiki](https://texwiki.texjp.org/?LaTeX%E5%85%A5%E9%96%80)」等のドキュメントを参照ください。

## TL;DR
Overleafにおいた。
- [Overleaf - β-system](https://www.overleaf.com/read/jdfvcsvdjzvj)
- [Overleaf - Time limit for the bouncing](https://www.overleaf.com/read/ddqdzkwtmtns)

![articles.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278138/0f039363-c11b-a24c-fd81-70a2f59114c5.png)

## 再現を頑張る
再現時に考慮した箇所について、ピックアップして記載していきます。

もし再現過程に興味が無ければ「[完成](#完成)」のセクションまで読み飛ばしてください。

### 書き起こす
とりあえず論文全体の文章と数式を書き起こします。
LaTeXはマークアップ言語の一つであり[^markup-lang]、基本的にデザインのことを考えずに書き起こしを進めることができます。

[^markup-lang]: マークアップ言語の代表例であるHTMLと似たようなモノだと理解してもらって大丈夫です。
ただしLaTeX/TeXはチューリング完全です。（あれ？）

### ドキュメントクラスとエンジンの決定
日本語の文章を書く際には、ドキュメントクラスとしてjsarticle、エンジンとして(u)pLaTeX+dvipdfmxというモノを利用することが多いです。
しかしながら今回の論文はすべて英語で記載されていますので、英語圏でのデファクトスタンダードと思われる、articleとpdfLaTeX(pdfTeX)というモノを利用します。

### フォントサイズと余白の決定
LaTeXにおける標準のレイアウト設定は非常に複雑であるため、直感的な設定が可能となるgeometryパッケージを利用します。

フォントサイズと余白の設定値については組み合わせが何パターンかありそうです。
整数値で色々試したところ`11pt`と`hmargin=1in`にて改行位置が一致したので、これを採用することにします。
```latex
\documentclass[11pt]{article}
\usepackage[hmargin=1in]{geometry}
```

また見出しの部分はフォントサイズ的に`\subsection`が良さそうで、番号が無いことを考慮して`\subsection*`を採用します。
```latex
\subsection*{Physics setup}
```

### タイトルフォントの決定
タイトルのフォントは太字に見え、フォントサイズは`\huge`が一致したので、以下とします。
```latex
\title{\huge\bfseries $\beta$-system}
```

### 数式環境の決定
別行立て数式について、最も基本的なequation環境で書いてみたところ、劇中の式と比べて、数式が右にずれて表示されてしまいました。
標準のLaTeXで利用できるeqnarray環境を試したところ、一致しているように見えるため、これを採用します[^eq3]。
[^eq3]: eqnarray環境を利用しても式(3)の位置が合いませんでした。こちらは`\hspace`でごまかすことにします。

```latex
\begin{eqnarray}
    \phi = 0, \quad \phi = \pi
\end{eqnarray}
```

なおeqnarray環境とequation環境を並べると次のようになります。
![equation-envs.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278138/599630c8-ff4d-c952-ed35-4cb261414c26.png)

### 積分記号後の間隔
積分を含む式を比較したところ、積分記号と後に続く数式の間隔が、通常より短そうでした。
好みが分かれる部分ではありますが、LaTeXには積分記号`\int`の後に負のスペース`\!`を入れ、直後の間隔を短くするテクニックがあります。
こちらを実施したところ、劇中での式と一致しているように見えるので、これを採用し次のように式を書くこととします。

```latex
\begin{eqnarray}
    S = \int \! d^5x \sqrt{-G} \left[ (2M^3R-\Lambda) + \delta(\phi-\pi) \mathcal{L}_\mathrm{SM} + \delta(\phi) \mathcal{L}_\mathrm{Pl.} \right].
\end{eqnarray}
```

`\!`の有無で式を並べてみると以下のようになり、微妙に$\int$と$d^5x$の間隔が異なることが解ります。
![post-integral-spacing.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278138/dd3355d8-884b-b9e8-ad6c-c8ed05669110.png)

## 完成
ここまでの処理を行い、さらに細かい調整を行ったものを、冒頭の画像にのせて比較したところ、次のようになりました。
![comparison.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278138/6a8d7034-2bd7-7e3a-631b-17b45558c766.png)
かなり良い精度で再現できました。

再現させた際のコードについては、オンラインのLaTeXエディターサービスであるOverleafに配置しました。
論文全体を確認されたい方や、コードの内容を確認されたい方はこちらをご確認下さい。
- [Overleaf - β-system](https://www.overleaf.com/read/jdfvcsvdjzvj)

## もう一つの論文
劇中では神永氏が残した論文「β-system」だけでなく、滝氏が紹介している論文「Time limit for the bouncing」が映るシーンもあります。
そちらについては、文字が読み取りづらい部分が多くあったものの、前後の文脈等から推定して再現を行い、Overleafに配置しました。
- [Overleaf - Time limit for the bouncing](https://www.overleaf.com/read/ddqdzkwtmtns)

## さいごに
Overleafの左ペインに書かれたLaTeXのコードを見てもらうと解りますが、論文を書くために必要なコードはそれほど多くありません。

皆さんもドキュメントを書くとき、LaTeXを試してみませんか？