Last active
August 29, 2015 14:15
-
-
Save aminophen/1a06336c7c5a29b25237 to your computer and use it in GitHub Desktop.
TeX2img の PDF 直接出力エンジンサポート案
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<基本概念> | |
設定項目が多いので、決定の優先順位として | |
「(最上位)コンパイル方法 > プログラムのパス > 文字コードと文書クラス(最下位)」 | |
の順に参照する。 | |
<設定項目 UI 一覧> | |
新機能にかかわる TeX から PDF を生成する過程にかかわる設定項目 UI のみ表示。 | |
【コンパイル方法】 | |
- TeX -> DVI -> PDF | |
- TeX -> PDF | |
【プログラムのパス】 | |
- LaTeX | |
- dvipdfmx | |
【文字コード】 | |
- 指定しない(Win は2通り、Mac は1通り) | |
- UTF-8 | |
- ShiftJIS | |
- EUC | |
- JIS | |
<前提:サポート対象> | |
【既知として明確にサポートするエンジン】 | |
- platex + dvipdfmx(※MiKTeX の platex ではなく、アスキーの pTeX) | |
- uplatex + dvipdfmx | |
- pdflatex | |
- xelatex | |
- lualatex | |
【記憶すべき文書クラス】 | |
- jsarticle | |
- jsarticle(uplatex 付) | |
- article | |
【記憶すべきコンパイルオプション】(固定の -interaction=nonstopmode 以外) | |
- 何もなし | |
- -kanji=エンコーディング(Win 版はさらに -no-guess-input-enc も付加) | |
<ユーザの使い方> | |
(1) ユーザが【コンパイル方法】を指定する。 | |
(2) 「推奨設定」ボタンを押す。 | |
すると【コンパイル方法】の指定に依存して全体が切り替わる。 | |
補足1:(2)の前に【パス】を手動で書き換えてもよい。 | |
すると【コンパイル方法】および【パス】の指定に依存して全体が切り替わる。 | |
補足2:もちろん、(2)を行わずに全体を手動で書き換えてもよい。 | |
<推奨設定ボタンの仕様> | |
【コンパイル方法】の指定に応じて、設定を以下のように自動設定する。 | |
以下の図式で、枝分かれが少ないほう(まっすぐな方)がデフォルトで、枝分かれも許容とする。たとえば | |
- TeX->DVI->PDF の状態では platex と uplatex を許容するが、他が入っていれば自動で platex に書き換え | |
- TeX->PDF の状態では pdflatex と xelatex と lualatex を許容するが、他が入っていれば自動で pdflatex に書き換え | |
【コンパイル方法】→【プログラムのパス】→【文字コード+文書クラス】 | |
┬ TeX->DVI->PDF ─┬→ platex →(ユーザ指定のまま)+ jsarticle | |
│ └→ uplatex →(※1)+ jsarticle(uplatex オプション付) | |
└ TeX->PDF ─┬→ pdflatex →(※2)+ article | |
├→ xelatex →(※3)+ article | |
└→ lualatex →(※3)+ article | |
※1:Mac なら「指定しない」または「UTF8」、Win なら「指定しない (UTF-8)」または「UTF-8」を許容 | |
※2:Mac なら(ユーザ指定のまま)、Win なら(ユーザ指定のまま)を許容 | |
※3:Mac なら「指定しない」または「UTF8」、Win なら「指定しない (UTF-8)」または「UTF-8」を許容 | |
なお、article は bxjsarticle をデフォルトに採用してもよいのかもしれない。 | |
<コンパイル時およびエクスポート時のファイル生成の文字コード> | |
(案1)実装が単純だが、状態によっては UTF8 用ソースが他のコードになる | |
[文字コードの選択状態を参照] | |
├→ 指定しない系 → OS 標準コード(Win は括弧内、Mac は?) | |
└→ UTF8/SJIS/EUC/JIS → 選択状態に従う | |
(案2)一手間多いが、親切かも(ただ、勝手にパスだけで固定していいかどうか疑問) | |
[パスを参照] | |
├→ uplatex/xelatex/lualatex → UTF8 で出力 | |
└→ それ以外 →[文字コードの選択状態を参照] | |
├→ 指定しない系 → OS 標準コード(Win は括弧内、Mac は?) | |
└→ UTF8/SJIS/EUC/JIS → 選択状態に従う | |
<コンパイル時のエンジンオプション(固定の -interaction=nonstopmode 以外)の与え方> | |
以下の順に決定する。これなら UI の見た目と (u)platex に渡されるオプションが一致する。 | |
(DVI 経由だからといって -kanji= を付加するのは危険。さすがに -kanji= は (u)platex 以外に存在しないだろう) | |
[パスを参照] | |
├→ (u)platex →[文字コードの選択状態を参照] | |
│ ├→ 指定しない系 → 何も追加しない(★1) | |
│ └→ UTF8/SJIS/EUC/JIS → -kanji=エンコーディング(Win はさらに -no-guess-input-enc も付加) | |
└→ それ以外 → 何も追加しない(★2) | |
★1:MiKTeX の platex はここで対応 | |
★2:欧文 latex などはここで対応 | |
<プリアンブルをデフォルトに戻すボタンの挙動> | |
[パスを参照] | |
├→ platex → jsarticle | |
├→ uplatex → jsarticle(uplatex オプション付) | |
└→ それ以外 → article | |
なお、article は bxjsarticle をデフォルトに採用してもよいのかもしれない。 |
より良い案が次々と生まれつつあるので、この案は廃案とします。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
なるべく現行版からの変更が少ないように、かつ未知のエンジンにも(ユーザが手動で適切に指定する必要があるとはいえ)適応可能なように考えたつもりです。