ラベル LuaLatex の投稿を表示しています。 すべての投稿を表示
ラベル LuaLatex の投稿を表示しています。 すべての投稿を表示

2023年4月10日月曜日

TeXLive 2023のリリースと 64bit化

MSYS2 / MinGW64 の pacman アップデートで texlive の大量アップデートが発生したので「TeXLive 2023 がリリースされたんだろうなぁ」と思い、ネットで情報を検索してみたら、どうやらこのリリースから、

Windowsのtexアプリが 64bit化!

したみたいですね。

僕は LuaLaTeX 使いで、フォント使用時のメモリ利用量の問題があり、デフォルトが 64bit アプリである MSYS2/MinGW64 の 64bit 版 LuaLaTeX を使っていましたが、これからは TeXLive のデフォルトインストーラで提供されるものも 64bit 化されている様ですね。

今後、どっちを使おうかなぁ。。。

悩ましい所ですね。

2023年1月25日水曜日

LuaLaTeX には MSYS2 MinGW 64-bit がお勧め

自分は文書作成環境として LuaLaTeX を使うことが多いです。
理由は、
  • LaTeXの様々なパッケージを使うことで効率的に文書を仕上げることが可能
  • 文書の最終フォーマットはpdfで良いことが多く、LuaLaTeXにより直接pdfを出力可能であり、また pdf の機能を直接操作可能なパッケージも存在していること
  • 日本語の入力やフォントをうまく扱うことが出来ること(utf-8入力という制約がありますが、逆に自分としては、新規に起こす文書は utf-8 なので問題ありません)
です。
ただ1つだけ難点がありました。
それは
Windows向けの texlive で普通にインストールすると、32bit実行形式の LuaLaTeX がインストールされ、デフォルト以外の日本語フォントを使用すると、メモリエラーでLuaLaTeXが落ちる
です。
「64-bit実行形式の LuaLaTeXなら、メモリエラーの問題は回避可能」というのは知っていまして、対策として「別途 64bit版のLuaLaTeXを差分インストールする」という手もあるのですが、インストールの手間は増やしたくないですし、なんか良い手はないかと思っていました。
因みに 64bit LuaLaTeX でデフォルト以外の日本語フォントを使用した場合のメモリ使用量の増減は、以下のようになっています:


縦軸の一目盛がだいたい1.5GBでして、LuaLaTeXのフォント処理時はトータルで二目盛ぐらいのメモリが必要となり、 3GB 程度、メモリを使用している模様です。64bitアプリということで、幾分かメモリ使用量が増加する所はあるかもしれませんが、32bit LuaLaTeX で扱うのは厳しいか、という印象ですね。

それとは別に、Windows上で C/C++ のコンパイル環境として
MSYS2 MinGW 64-bit」
を使っていたのですが、ふと、
MSYS2(64-bit)に texlive は入ってないのかな?
と思い、確認した所、ありました!

mingw-w64-x86_64-texlive-full
です。
MSYS2のパッケージインストーラ pacman を使い、

$ pacman -S mingw-w64-x86_64-texlive-full

とすれば普通に 64-bit版 LuaLaTeX が使えるようになりますし、メモリエラーは発生しません。

自分としては「Eclipse + texlipse」の環境で使うことが多いのですが、任意の日本語フォントを使用しても途中でメモリエラーで止まることがなくなり、大変重宝しています。






2020年4月13日月曜日

TeX Live 2020 での LuaLatex エンジン

前の記事 で、TeX Live 2020 は 2019 から対して変わってないのでは、みたいなことを書きましたが、 ちょっと使ってみて、それなりに大きな違いが発生していることに気が付きました。

僕はpdfの直接的な生成を考えて LuaLatex を、Eclipse上のTeXLipseで使っています。

TeXLipse上での実行時にコンソールに表示される最初のメッセージは、これまで、

running: /usr/local/texlive/2019/bin/x86_64-linux/lualatex -synctex=1 -interaction=nonstopmode document.tex 
lualatex> This is LuaTeX, Version 1.10.0 (TeX Live 2019) 

だったのですが、TeX Live 2020 に変えると、

running: /usr/local/texlive/2020/bin/x86_64-linux/lualatex -synctex=1 -interaction=nonstopmode document.tex 
lualatex> This is LuaHBTeX, Version 1.12.0 (TeX Live 2020) 

となっていることに気が付きました。

これまではLuaTeXベースだったのが TeX Live 2020 からは LuaHBTeXベースになったのですね。

LuaHBTeXは前にLuaTeXについて調べた時に存在は知っていたのですが、HarfBuzzライブラリを組み込んだLuaTeXのことみたいです。

HarfBuzzライブラリとは、フリーのOpenTypeテキストシェーピングエンジン(フォントレンダリングエンジン)みたいです。

ここが開発元で Android, Chrome, ChromeOS, Firefox, OpenJDK, Qt 等にも使われているみたいです。

TeX Live 2020 から変更されたことの情報源を探していたのですが、 LATEX News/Issue 31, February 2020 に記載がありました。

Concerning this release . . . (LuaLATEX engine) The new LuaHBTEX engine is LuaTEX with an embedded HarfBuzz library. HarfBuzz can be used by setting a suitable renderer in the font declaration. A basic interface for that is provided by fontspec. This additional font renderer will greatly improve the shaping of various scripts when using LuaLATEX, many of which are currently handled correctly only by X TEEX, which always uses HarfBuzz. To simplify testing of the new engine, binaries have already been added to MiKTEX and TEX Live 2019 and both distributions have already now changed the LuaLATEX-dev format to use it. Going forward, LuaLATEX (and LuaLATEX-dev) will both use the LuaHBTEX engine. The timing of the switch to the LuaHBTEX engine depends on the distribution you use (for TEX Live this will be with TEX Live 2020).

とのことです。

GNU Emacs for Windows における最近の IMEパッチ問題

自分は GNU Emacs 使いなのですが、Windows版の Emacs を使用する場合、IMEパッチの問題がありました。 ざっくり言うと、FSFの正規のリリースバイナリだと日本語変換のIMEに切り替えた時、インラインで候補文字が表示されないという問題です。そのために有志の方々...