LaTeX 次期バージョンで e-TeX 必須?

LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
返信数: 30
割と日本では重大な可能性があるので、ここに書きます。
2016/10/15 の LaTeX2e svn 以降
「LaTeX は e-TeX を必要とする」
と書かれています。つまり、NTT jTeX + LaTeX は以降、動かなくなります。

最も大きな影響は、おそらく「日本語の tex4ht」だと思います。
アスキー pTeX + dvi2dvi (a2n) 以外の手段がなくなる恐れがあります。
dvi2dvi は TeX Live 未収録(W32TeX にはあり、Debian などは
独自パッケージがまだ生きている)なので、選択肢が狭まるのは
間違いないと思います。(ちなみに次回 LaTeX2e リリースは 2016/12/01 が濃厚)

ほかに困りそうなことを思いついた方がいましたら投稿していただけると
助かります。
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 北川 弘典 の投稿
該当コミット (r1239, 2016/10/15) での e-TeX 依存部分は,
・e-TeX 拡張有効化のチェック (ltdirchk.dtx)
・“on imput line ...” 出力のための \inputlineno 使用 (lterro.dtx)
にとどまっています.

ltnews26.tex には
> In \LaTeX{} News~16 (December 2003) the team announced
> \begin{quotation}
> We expect that within the next two years, releases of \LaTeX{} will
> change modestly in order to run best under an extended \TeX{} engine
> that contains the \eTeX{} primitives, e.g., \eTeX{} or pdf\TeX{}.
> \end{quotation}
> and also said
> \begin{quotation}
> Although the current release does not \emph{require} \eTeX{} features, we
> certainly recommend using an extended \TeX{}, especially if you need to debug
> macros. \end{quotation}
とあるので,向こうとしては「ようやく」という認識なのかもしれません.
北川 弘典 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
> 向こうとしては「ようやく」という認識なのかもしれません.

私もそのように思います。LaTeX2e は LaTeX3 ほど変更がないのではないかとも
思っていたのですが、実際 TeX Live と MiKTeX の *latex はすべて e-TeX で
動いているという話をどこかで見た気がしますし、この変更は来るべくして来たという
ことでしょうか。

実際に日本語で tex4ht する方法や jlatex がどのくらい使われているのか
私もよく存じません。使っている方は注意してください。
たとえば、「古くなったディストリビューションをインストールする方法」と
いうのは日本語でほとんど見つからないようですので、現在の環境を今後も
維持されたいという場合は今のうちに対策をとっておかれるとよいかもしれません。
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
うぅーん。NTT JLaTeX しか使っていませんので,今後は JTeX だけをアップデートしておけば,これまで通り使えるということでしょうか。慣れてしまうと,なかなか pLaTeX に引越できないのでした。
岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
岩熊様:

> 今後は JTeX だけをアップデートしておけば

私自身、(昔 tex4ht に興味を持って数回だけ起動したことがある以外は)NTT JLaTeX の
現況をあまり把握できておりません。現在、JTeX および JLaTeX2e の入手法は
どのようになっているのでしょうか?

私の認識では、以下のように見えていました:

[1] 現在の JTeX の upstream は桜井さん@千葉大である。
http://www.math.s.chiba-u.ac.jp/~sakurai/software.html
CTAN にあるものは相当古い。
https://www.ctan.org/tex-archive/language/japanese/jtex
[2] JTeX のバイナリは W32TeX 以外で入手できない(?)
Debian は数年前に jtex-bin が廃止された模様;jtex-base は dvi2dvi の
tfm/vf を含むバンドルなので、tex4ht の需要を見込んで現在も維持されている。
[3] JLaTeX2e では既に Babel の多くのハイフネーション定義が読み込めない。
(e-TeX、UTF-8 を前提としたファイルが多いため?)
W32TeX はこの状況を考慮して、いくつかのハイフネーション定義を読み込まずに
jlatex.fmt を作成している。(pLaTeX2e の 83 種類に対し jLaTeX2e は 7 種類)
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
ご返答ありがとうございます。

僕は角藤様のサイトからアンカーされているリングサーバから jtex-w32.tar.xz, vf-n2bk.tar.xz をダウンロードしていますが,最後のは

This is JTeX, Version 2.2, based on TeX Version 3.14159265
(TeX Live 2016/W32TeX) (preloaded format=jlatex 2016.7.31)

というのが log に残りますから,今年の 7 月に format ファイルを生成したものを使っていると判断しております。その前のは 2016.1 で,この二つで,若干異なる dvi が生成されます。

実は,添付のように,「ね」と半角文字の間だけ四部空きが入らないので,桜井先生にメイル差し上げたのですが,今のところご返事が無いので,ひょっとしたら NTT-JTeX 開発も止まっているのかな?という感想です。

僕の場合,ハイフネーション等はあまり気にしておらず,ほぼ base のまま使っていますので,全くといっていいくらい問題は生じていません。行間隔とか文字の大きさについて,JaWaTeX の大昔からの慣れのため,使い続けております。学会論文集は業者が pLaTeX 用に改変して配布しておりますが,学会の委員会論文集等は NTTJLaTeX でスタイルファイルを作成し,pLaTeX でも問題が生じないようにしたものを配布するよう注意しております。
岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
> 実は,添付のように,「ね」と半角文字の間だけ四部空きが入らない

ソースを示していただけませんか?

\documentclass[12pt,a4paper]{j-article}
\font\xxx=cmmi12
\begin{document}
\xxx

あfいfうfえfおfかfきfくfけfこfあ

さfしfすfせfそfたfちfつfてfとfあ

なfにfぬfねfのfはfひfふfへfほfあ

まfみfむfめfもfやfゆfよfあ

らfりfるfれfろfわfをfんfあ
\end{document}

の場合は,同じ環境

This is JTeX, Version 2.2, based on TeX Version 3.14159265
(TeX Live 2016/W32TeX) (preloaded format=jlatex 2016.7.31)

で添付の omune2.pdf のようになります。(dvipdfmx -f msmingoth.map による)。
この場合は"ね"が特別変わった状況にはないようです。
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
> 実は,添付のように,「ね」と半角文字の間だけ四部空きが入らない

何も理解していないのですが,下記の場合"ね"の前後にも
\jasciikanjiskip が入っています。(添付の omune3.pdf)。

%
% omune3.tex
%
\documentclass[12pt,a4paper]{j-article}
\font\xxx=cmmi12
\begin{document}
\jasciikanjiskip=3pt plus 1pt minus 1pt
\xxx

あfいfうfえfおfかfきfくfけfこfあ

さfしfすfせfそfたfちfつfてfとfあ

なfにfぬfねfのfはfひfふfへfほfあ

まfみfむfめfもfやfゆfよfあ

らfりfるfれfろfわfをfんfあ
\end{document}
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
岩熊です。ソースと log の最初の行です。
数式フォントだからかな?これから講義なので・・・後ほど

\documentclass[12pt]{j-article}
\begin{document}

あ$f$い$f$う$f$え$f$お$f$か$f$き$f$く$f$け$f$こ$f$あ

さ$f$し$f$す$f$せ$f$そ$f$た$f$ち$f$つ$f$て$f$と$f$あ

な$f$に$f$ぬ$f$ね$f$の$f$は$f$ひ$f$ふ$f$へ$f$ほ$f$あ

ま$f$み$f$む$f$め$f$も$f$や$f$ゆ$f$よ$f$あ

ら$f$り$f$る$f$れ$f$ろ$f$わ$f$を$f$ん$f$あ

\end{document}

This is JTeX, Version 2.2, based on TeX Version 3.14159265
(TeX Live 2016/W32TeX) (preloaded format=jlatex 2016.7.31)
18 OCT 2016 12:55
restricted \write18 enabled.


岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
再現できました。おそらくバグでしょう。
わからないと思いますが調べてみます。
workaround は,\jmathkanjiskip (初期状態は 0pt のよう)
を 0pt でない値,例えば
\jmathkanjiskip=2.5pt plus 1pt minus 1pt
のように設定して,"ね" の後部のみ
ね\hskip\jmathkanjiskip$f$
とする。他の部分には自動的に設定した \jmathkanjiskip が入る。
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
ありがとうございます。単なるスペースを入れておりましたが,その伸び縮み空白を入れるようにします。
岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
初期状態の \jmathkanjiskip=0pt のときは,デフォルトの
\@@jmathkanjiskip が使用されるので,以下が簡単です:

\catcode`@=11
\def\nemath{\hskip\@@jmathkanjiskip}
\catcode`@=12

あ$f$い$f$う$f$え$f$お$f$か$f$き$f$く$f$け$f$こ$f$あ

さ$f$し$f$す$f$せ$f$そ$f$た$f$ち$f$つ$f$て$f$と$f$あ

な$f$に$f$ぬ$f$ね\nemath$f$の$f$は$f$ひ$f$ふ$f$へ$f$ほ$f$あ

ま$f$み$f$む$f$め$f$も$f$や$f$ゆ$f$よ$f$あ

ら$f$り$f$る$f$れ$f$ろ$f$わ$f$を$f$ん$f$あ
\bye
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
重ね重ねありがとうございます。実際にこの現象を見つけた同僚にも伝達してあります。
岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
岩熊様,

添付の nttjtex.dll を bin ディレクトリにコピーして
テストしてみて下さい。"ね" のような 45 番目の
サブフォントとmath の間にも jmathkanjiskip が入る
と思います。でも理由がわからないので,他のところ
でおかしなことがあったら元に戻して下さい。
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
岩熊様,

原因は,"ね" など 45 番目のサブフォントの場合,
ハイフンの character code と一致するので,
discretionay node が挿入されることだったのですが,
character code が 45 であっても,漢字サブフォント
の場合は挿入しないようにすることで,fix できたと
思います。
日付が 2016/10/20 及びそれ以降の jtex-w32.tar.xz
を入手して下さい。

(前に添付した nttjtex.dll は捨てて下さい)。
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
あ,すみません。プログラミングに没頭していてチェックを忘れていました。jtex-w32.tar.xz をダウンロードして,週末に,とても長いソースをコンパイルしてみます。log に何か出たり,あるいは見た目で変わったところがあれば,また報告します。

皆様すみません,そもそものスレッドとは違うことで,題目を同じにしたまま進行させてしまいました。NTT ユーザーは少ないんだろうなぁと感じている今日このごろでした。ではでは,お礼まで。
岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
新しい jtex で,log も変化無く,1000 ページくらいの駄文もちょっと見た目では何も問題は発生しませんでした。ありがとうございました。ユーザーが少ないのに,いろんな意味で,ご迷惑をおかけしました。申し訳ありませんでした。今後も NTT JLaTeX ユーザでいられそうです。
岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
> 今後も NTT JLaTeX ユーザでいられそうです。

とりあえず直ってよかったと思います。

ただ心配なのが、新しくなる LaTeX が出たときです。
LaTeX が新しくなった場合、W32TeX(をはじめとする
現在 jlatex を提供している方々)がどのようにして
jlatex を提供し続けられるか(あるいは提供をやめて
しまうのか)、ということです。

もし提供をやめてしまうことが想定されるなら、いまのうちに
(パソコンを買い替えてもいつでもインストールし直せる
ように!)現在の環境を丸ごとバックアップしておいたほう
がよいのだと思っていて、それが私がトピックを立てた
理由です。(LaTeX にいつまでも非 e-TeX をサポート
してくれ、というのは無理だろうと思います。)
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 岩熊 哲夫 の投稿
そうですね。そこが心配だったのですが,実は今も,めったにアップデートしていないのです。また,リングサーバからのフルインストール用のアーカイブファイルもすべてバックアップを保管しております。ただ,32ビット用のみ・・・未だに32ビットマシンなのです。そうかぁ,64ビット用のアーカイブファイルも今すぐダウンロードしておきましょう。貴重な情報提供,ありがとうございました。
岩熊 哲夫 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
> そこが心配だったのですが

jtex がサポートされる,最後の latex base
を jtex 専用にしようかと考えています。

しかし,他のパッケージ類も,e-TeX を仮定
することが増えるでしょうから,可能なら
できるだけ platex に乗り換えることをお勧めします。
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 北川 弘典 の投稿
> [2] JTeX のバイナリは W32TeX 以外で入手できない(?)
TeX Live 本家には取り込まなくても,必要なときに
手元で(TeX Live 開発版のソースから少々のパッチで)
ビルドできるような仕組みがあるといいなあ,と思っています.

# 数日前からこっそり試してはいます.
# jtex バイナリはビルドはできました(動作させてないけど)が,
# jbibTeX がビルドできない…….
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 北川 弘典 の投稿
> [3] JLaTeX2e では既に Babel の多くのハイフネーション定義が読み込めない。

例えば dehypht-x-2014-05-21.tex では \kanjiskip が定義されていれば
8 bit (EC) pattern を読み込むような処理が加えられています.

手元 (TeX Live 2016) では jlatex.ini を

\scrollmode
\let\kanjiskip\par % \kanjiskip を「定義」
\input jlatex.ltx
\let\kanjiskip\undefined % 再び未定義に
\endinput

とすることで,ハイフネーションの読み込みでエラーは起こらずに jlatex.fmt を
生成できました(正しく読み込まれているかはともかく).


北川 弘典 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
> とすることで,ハイフネーションの読み込みでエラーは起こらず

ありがとうございます。
これに従いたいと思います。
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
jtex -ini jlatex.ini は
成功するように見えるのですが,
(生成された jlatex.fmt も多分使える)
しかし fmtutil が失敗するので調べると

% from hyphen-ancientgreek:
ancientgreek loadhyph-grc.tex

および

% from hyphen-greek:
monogreek loadhyph-el-monoton.tex
greek loadhyph-el-polyton.tex
=polygreek

を含める場合,何故か exit code が 1 になるので,
language.dat でこれらだけを除いたものを使うこと
にします。また jlatex.ltx に触って,\dump の前に
\kanjiskip を undefine します。
北川 弘典 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
Mac 環境で jtex はビルドが通り、仰る通りハイフネーション読み込みができるようになることを確認しました。
いろいろありがとうございます。

# dvipdfmx で変換するのに dmjhira10 とかを map するのに手間取ってしまいました…
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- Akira Kakuto の投稿
> dvipdfmx で変換するのに dmjhira10 とかを map する

W32TeX で配布している virtual fonts vf-n2bk.tar.xz
を使うと,よく覚えていませんが,
殆ど何もする必要がなかったような気がします。
Akira Kakuto への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
> W32TeX で配布している virtual fonts vf-n2bk.tar.xz
> を使うと,よく覚えていませんが,
> 殆ど何もする必要がなかったような気がします。

ご心配おかけしてすみません。
私が先ほど実行して成功したのも仰る通りの方法で、当該アーカイブを配置する以外
全く何もする必要がありませんでした。

手間取ったのは ipa-tfm.tar.gz とか n2ipa-vf.tar.gz とかの辺りから出来たりしないか、
と一旦あがいてみたたからでした。
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
当初の予定より大幅に遅れたようですが、LaTeX2e 2017/01/01 が先ほどリリースされたようです。
https://www.ctan.org/pkg/latex-base

e-TeX 必須になっているほか、LuaLaTeX フォーマットでは既定で luaotfload パッケージが
読みこまれるようになっています(\everyjob で実現)。

今回の LaTeX2e リリースが遅れてしまったのは
MiKTeX が TeX Live と違って LuaTeX 1.0.0 を収録している
+ luaotfload のバグで v1.0.0 がバージョン判定で振り落とされてエラー
→ MiKTeX で lualatex が全然使えなくなる
ということを危惧したためのようです。結局いまだ luaotfload が更新されていないため、
LaTeX カーネル内 (ltluatex) で対症療法がとられているようです。

なお、pLaTeX2e 2016/11/29 との互換性を確認しましたが、特に問題ないようです。
唯一 platexrelease パッケージを読み込んだ場合に
Package platexrelease Warning: Version of `latexrelease' is newer than
(platexrelease)                what `platexrelease' knows.
なる警告が出ますが、これは今回は害がないので無視してください。
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- aminophen の投稿
追加で:LaTeX2e 2017/01/01 のもう一つの大きな変更として、デフォルトが
XeLaTeX/LuaLaTeX で TU encoding になったことがあげられます。

もう一点、dvilualatex を使っている方はほとんどいないと思いますが:

> e-TeX 必須になっているほか、LuaLaTeX フォーマットでは既定で luaotfload パッケージが
> 読みこまれるようになっています(\everyjob で実現)。

の影響で、デフォルト状態の dvilualatex で作る DVI が dvipdfmx や dvips で読めなくなっています。

\documentclass{article}
\begin{document}
a
\end{document}

【dvipdfmx の場合】
dvipdfmx:fatal: Unable to find TFM file "file:lmroman10-regular:script=latn;+trep;+tlig;".

【dvips の場合】
kpathsea:make_tex: Invalid fontname `file:lmroman10-regular:script=latn;+trep;+tlig;', contains ':'
dvips: Font file:lmroman10-regular:script=latn;+trep;+tlig; not found; using cmr10

とりあえず以前のように dvipdfmx / dvips が読める DVI を出力する方法として
\usepackage[OT1]{fontenc}
を書いておけばよいという情報が LaTeX Team から流れてきましたので、一応お知らせします。
aminophen への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 北川 弘典 の投稿
> デフォルトが XeLaTeX/LuaLaTeX で TU encoding
これに伴い,fontspec パッケージも更新されています (v2.5c).

なお,LuaTeX-ja の提供する「和文 fontspec」(luatexja-fontspec.sty)
はまだこの fontspec v2.5c に対応できていません.
開発版ではなんとかタイプセットは通る状態になっており,
数日中にリリースをする予定ですが,それまで待てない方は開発版
https://osdn.net/projects/luatex-ja/scm/git/luatexja/tree/kitagawa_test/
を試してみて下さい.

ちなみに,luatexja-preset パッケージを読み込むときに
nfssonly オプションをつけると,luatexja-fontspec を読み込まずに
NFSS の範囲内でフォント設定を行います.
(こちらのほうが若干速いようです)
北川 弘典 への返信

Re: LaTeX 次期バージョンで e-TeX 必須?

- 北川 弘典 の投稿
> なお,LuaTeX-ja の提供する「和文 fontspec」(luatexja-fontspec.sty)
> はまだこの fontspec v2.5c に対応できていません.
> 開発版ではなんとかタイプセットは通る状態になっており,
20170124.0 をリリースしました.