Skip to content

Commit

Permalink
Merge pull request #8 from Terfno/develop
Browse files Browse the repository at this point in the history
ver 2.1 に向けた調整
  • Loading branch information
Terfno authored Nov 15, 2020
2 parents dbdbaa4 + f860db5 commit 2794cc8
Show file tree
Hide file tree
Showing 42 changed files with 12,172 additions and 1,770 deletions.
2 changes: 0 additions & 2 deletions .dockerignore

This file was deleted.

7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
# Project Specific rules here
*.aux
*.bbl
*.blg
*.log
*.toc
*.fdb_latexmk
*fls

# Temporary Files
#---------------------------
Expand Down
23 changes: 9 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
FROM alpine:3.11

WORKDIR /docs
FROM alpine:3.8

# install xetex
RUN apk update && \
apk add openssl make texlive-xetex

# fonts
ADD ./fonts/Courier_Prime/ /usr/share/fonts/japanese/TrueType/Courier_Prime/
ADD ./fonts/Noto_Sans_JP/ /usr/share/fonts/japanese/TrueType/Noto_Sans_JP/
ADD ./fonts/Noto_Serif_JP/ /usr/share/fonts/japanese/TrueType/Noto_Serif_JP/
RUN apk --no-cache add openssl make texlive-xetex && \
# latex package -> xelatex package
mv /usr/share/texmf-dist/tex/latex/ /usr/share/texmf-dist/tex/xelatex/

# bibtex cite.sty
ADD ./src/cite.sty /usr/share/texmf-dist/tex/xelatex/cite/
# bibtex
ADD ./src/junsrt.bst /usr/share/texmf-dist/bibtex/bst/base/
RUN mktexlsr

CMD ["sh"]
# BXjscls
ADD ./src/BXjscls/*.* /usr/share/texmf-dist/tex/xelate/bxjscls/

RUN mktexlsr
26 changes: 16 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
INAME:=terfno/rexetexer
TAG:=latest
CNAME:=rexetexer
TARGET:=report.tex
TARGET:=report
CONTAINER_ENGINE:=docker

podman.%:
@$(MAKE) $* CONTAINER_ENGINE="podman"

init:
@${CONTAINER_ENGINE} pull ${INAME}:${TAG}

dev:
@${CONTAINER_ENGINE} run -it --rm alpine:3.11 sh

build:
@${CONTAINER_ENGINE} build -t '${INAME}' .
@${CONTAINER_ENGINE} build -t '${INAME}:${TAG}' .

run:
@${CONTAINER_ENGINE} run -v ${PWD}:/docs --name ${CNAME} -itd ${INAME} sh
@${CONTAINER_ENGINE} run -v ${PWD}:/docs --name ${CNAME} -itd ${INAME}:${TAG} sh

exec:
@${CONTAINER_ENGINE} exec -it ${CNAME} sh
Expand All @@ -26,15 +33,14 @@ rm:
@${CONTAINER_ENGINE} rm ${CNAME}

rmi:
@${CONTAINER_ENGINE} rmi ${INAME}
@${CONTAINER_ENGINE} rmi ${INAME}:${TAG}

# tex
tex:
@xelatex ${TARGET} && pbibtex report.aux && xelatex ${TARGET} && xelatex ${TARGET}
@rm -f ${TARGET}.aux && rm -f ${TARGET}.bbl && rm -f ${TARGET}.blg && rm -f ${TARGET}.log && rm -f ${TARGET}.toc &&\
xelatex ${TARGET}.tex && pbibtex report.aux && xelatex ${TARGET}.tex && xelatex ${TARGET}.tex

watch:
@chmod +x ./watch.sh && \
./watch.sh ./${TARGET} 'make tex'

podman.%:
@$(MAKE) $* CONTAINER_ENGINE="podman"
@echo "start watching" && \
chmod +x ./watch.sh && \
./watch.sh ./${TARGET}.tex 'make tex'
189 changes: 43 additions & 146 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# ReXeTeXeR

津山高専版は→[ReXeTeXeR-tsuyama](https://github.com/Terfno/ReXeTeXeR-tsuyama)

# ReXeTeXeR
<div style="text-align:center;">

![GitHub](https://img.shields.io/github/license/terfno/rexetexer) ![GitHub repo size](https://img.shields.io/github/repo-size/terfno/rexetexer) ![GitHub last commit](https://img.shields.io/github/last-commit/terfno/rexetexer)
Expand All @@ -15,34 +14,35 @@
<div style="text-align:center;">マジでかっこいいロゴっぽいやつ</div><br>

## これはなに

![img](design/img.png)

<div style="text-align:center;">動作イメージ(スクショは開発中のもの)</div><br>

日本語の `.tex` (UTF-8) を TeX の環境構築なしに、XeTeX(xelatex)を使って `.pdf` に変換する Docker のコンテナーを作れるファイル群です。勝手に**ReXeTeXeR**と名前をつけました。pBibTeX による Reference の自動生成に対応してます

日本語の`.tex`(UTF-8)をTeXの環境構築なしに、XeTeX(xelatex)を使って`.pdf`に変換するやつです
勝手に**ReXeTeXeR**と名前をつけましたpBibTeXによるReferenceの自動生成に対応してます。

## 環境

Docker は必須です。それ以外はオプショナルです。
DockerかPodmanが必須です。それ以外はオプショナルです。

- Docker or Podman(どちらか1つ)
- GNU Make
- テキストエディタ
- 自動リロードできる PDF ビュワー
- 自動リロードできるPDFビューワー

## 使い方

### 0. 準備

download したこのリポジトリを作業したい場所で展開します。すると、以下のようになるはずです。
releaseから最新版をダウンロードしてください。
`.zip`を作業ディレクトリに展開してください。
すると、以下のようになるはずです。

```
.
├── LICENSE
├── Makefile
├── NotoSansJP-Regular.otf
├── NotoSerifJP-Regular.otf
├── README.md
├── RobotoMono.ttf
├── img
│ └── logo.png
├── ref.bib
Expand All @@ -51,174 +51,71 @@ download したこのリポジトリを作業したい場所で展開します
└── watch.sh
```

その後、以下のコマンドで ReXeTeXeR を pull します。

その後、以下のコマンドでReXeTeXeRをpullします。
```sh
$ make init
```

これで ReXeTeXeR が pull されます。
#### Podmanでの利用
この形でコマンドを実行することでDockerではなくPodmanが利用されます。
```sh
$ make podman.${TARGET}
# Example
$ make podman.init # Run `make init` with Podman
```

### 1. 起動

```sh
$ make run
```

### 2. 接続

```sh
$ make exec
```

これでコンテナに入れます。以降のコマンドは特に記載がなければコンテナ内で実行するコマンドです。
これでコンテナに入れます。
以降のコマンドは特に記載がなければコンテナ内で実行するコマンドです。

### 3. 自動コンパイルスクリプトを起動

```sh
$ make watch
```

### 4. TeX を書く

`./report.tex`を編集することで、PDF が錬成されます。
XeTeX(XeLaTeX)です。

### 5. Podmanでの利用

```sh
$ make podman.${TARGET} # この形でコマンドを実行することでDockerではなくPodmanが利用される。
# Example
$ make podman.init # Run `make init` with Podman
```

#### 画像の表示

`./img`以下に画像ファイルを置きます。その後 tex ファイルに以下のような記述をすると画像を表示できます。
プリアンブルで graphicx の使用を追記します。

```tex
\usepackage{graphicx}
```

document 内で以下のように書くと画像を表示できます。

```tex
\includegraphics[width=10cm]{./img/logo.png}
```

詳細は`report.tex`を読むか、graphicx package について調べてください。

#### 引用(BibTeX)

プリアンブルに cite の使用を追記します。

```tex
% bibtex
\usepackage{cite}
```

そして`ref.bib`に引用の情報を書きます。

```bib
@article{lecun2015deep,
title={Deep learning},
author={LeCun, Yann and Bengio, Yoshua and Hinton, Geoffrey},
journal={nature},
volume={521},
number={7553},
pages={436--444},
year={2015},
publisher={Nature Publishing Group}
}
```

document 内で以下のように書くと引用できます。

```tex
\cite{lecun2015deep}
```

### 5. PDF を見る

リソースのオートリロードに対応した PDF ビューワーを使って`report.pdf`を開くと、ほぼリアルタイムにプレビューされます。

### 6. その他

#### 1 回だけコンパイルしたい

コンテナ内で以下のコマンドを実行すると、`reoprt.tex`から`report.pdf`に変換されます。

#### 一度だけコンパイルしたいときは
```sh
$ make tex
```

#### VSCode の Auto Save との相性が悪い
### 4. TeXを書く
`./report.tex`を編集することで、PDFが錬成されます。
XeTeX(XeLaTeX)です。
画像、引用等については、`test/report.tex`を参照してください。

ファイルの変更を察知してコンパイルが走るので、VSCode などの Auto Save で文法が完成していない tex ファイルがコンパイルされることがあります。
`.vscode`を残すことでこの ReXeTeXeR があるワークスペースのみ`onFocusChange`になります
### 5. PDFを見る
リソースのオートリロードに対応したPDFビューワーを使って`report.pdf`を開くと、ほぼリアルタイムにプレビューされます

#### 自動リロードに対応した PDF ビューワー
### 6. その他
#### VS CodeのAuto Saveとの相性が悪いこともある
ファイルの変更を察知してコンパイルが走るので、VS CodeなどのAuto Saveで文法が完成していない`.tex`ファイルがコンパイルされることがあります。
`.vscode`にこのワークスペースのみ、Auto Saveが`onFocusChange`になるよう設定すると解消できます。。

- 自動リロードに対応した PDF ビューワー
- macOS: [Skim](https://skim-app.sourceforge.io/)
- windows10: [Sumatra PDF](https://www.sumatrapdfreader.org/)
- Linux: [Evince](https://wiki.gnome.org/Apps/Evince)
#### リソースのオートリロードに対応したPDFビューワー
- macOS: [Skim](https://skim-app.sourceforge.io/)
- windows10: [Sumatra PDF](https://www.sumatrapdfreader.org/)
- Linux: [Evince](https://wiki.gnome.org/Apps/Evince)

#### 止めるときは

コンテナから出て(`$ exit`)、以下のコマンドで止められます。

```sh
$ make stop
```
再度起動する場合は`$ make run`ではなく`$ make start`してください。

## 古事記

// もしこの ReXeTeXeR が役に立ったらなんか贈ってもらえると私の励みになります。

- [my Amazon wish list of books](https://www.amazon.co.jp/hz/wishlist/ls/3F249ZYIVVASC/ref=nav_wishlist_lists_2?_encoding=UTF8&type=wishlist)
- [my Amazon wish list of gadget](https://www.amazon.co.jp/hz/wishlist/ls/21AZUN2VWHY3C/ref=nav_wishlist_lists_3?_encoding=UTF8&type=wishlist)
- [my Amazon wish list(tea, game, etc)](https://www.amazon.co.jp/hz/wishlist/ls/27B0W5F7BN0VF/ref=nav_wishlist_lists_4?_encoding=UTF8&type=wishlist)

## ディレクトリ

### `/design`について

ReXeTeXeR のロゴの ai ファイルと png があります。

### `/docs`について

開発中にマウントしているディレクトリです。

- `Makefile`
- 監視とか変換のコマンドをまとめています
- `watch.sh`
- 監視 → コマンド実行のシェルスクリプトです
- `report.tex`
- 監視されている tex ファイルです
- この tex ファイルを編集します
- `ref.bib`
- BibTeX のリストです
- `report.pdf`
- 吐き出された PDF です
- その他諸々
- 変換時に出てきます
- `.aux`に関しては bibtex が読みます

### `/font`について

Google Fonts からいくつか用意しました。コンテナ内に自動的に配置されます。不要であれば Dockerfile を編集してください。

- Courier Prime (R,I,B)
- Noto Sans JP (R,B)
- Noto Serif JP (R,B)

### `/src`について

Reference を表示するのに必要だった`cite.sty``junsrt.bst`が置いてあります。今後必要なライブラリがあれば、ここを使用してコンテナー内に配置する予定です。
また、日本語対応に必要だったBXjsclsの2.4の一部を置いています。
コンテナを削除する場合は、以下のコマンドを使用してください。(イメージは削除されないので安心)
```sh
$ make rm
```
イメージを削除する場合は`$ make rmi`です。

- cite.sty: mirrors.ctan.org/macros/latex/contrib/cite/cite.sty
## thx
- junsrt.bst: http://mirror.las.iastate.edu/tex-archive/biblio/pbibtex/base/junsrt.bst
- BXjscls: https://github.com/zr-tex8r/BXjscls
8 changes: 0 additions & 8 deletions docs/Makefile

This file was deleted.

12 changes: 0 additions & 12 deletions docs/report.aux

This file was deleted.

13 changes: 0 additions & 13 deletions docs/report.bbl

This file was deleted.

Loading

0 comments on commit 2794cc8

Please sign in to comment.