マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

LuaTeX の検索結果:

LuaTeX や LaTeX や LuaLaTeX が新しくなってアレ(補足)

…))This is LuaTeX, Version beta-0.80.0 (TeX Live 2015/W32TeX) (rev 5238) restricted \write18 enabled. (c:/texlive/2015/texmf-dist/tex/generic/knuth-lib/null.tex LaTeX2e <2015/10/01> patch level 1 Babel <3.9m> and hyphenation patterns for 79 …

LuaTeX や LaTeX や LuaLaTeX が新しくなってアレ(3)

TeX

…var i=0;i LuaTeX と LuaLaTeX の大きな変更がほぼ同時に起こっていて非常にややこしい。*1 LuaLaTeX のプリミティブはどうだったか、どうなったか 両方の変更ともプリミティブの名前に関係しているので、ここで改めて LuaLaTeX でのプリミティブの扱いについて説明しておく。 LuaTeX はそれ以前に存在した種々のエンジンの機能(の一部)を引き継いでいる。そして、プリミティブを「どのエンジンから継承したか」により複数のカテゴリに分けて“管理”し…

LuaTeX や LaTeX や LuaLaTeX が新しくなってアレ(2)

TeX

…-01)の更新では、LuaTeX 拡張機能についてのサポートがカーネルに入った。LuaTeX の拡張機能のサポートは従来は luatexbase というパッケージが行っていたが、カーネルのコードはこれを元にして実装されているようである。(ただしインタフェースは全く同一ではない。) 新しいカーネルと同時に新しい版の luatexbase もリリースされていて、そこでは新しいカーネルの機能を用いて従来の luatexbase のインタフェースを実装している(つまり互換レイヤーを成…

LuaTeX や LaTeX や LuaLaTeX が新しくなってアレ(1)

TeX

…var i=0;i LuaTeX が変わった話 [2017-01-13 追記] 以下に書いてあるのは 0.79→0.81 の間に行われた変更点の話である。LuaTeX ではこの後、0.81→0.85 の間でも大規模なプリミティブの体系の変更が行われている。従って、以下の情報は、現状の LuaTeX についてはほとんど参考にならないだろう。 2015-10-07 リリースの 0.81.0 でプリミティブの大幅な整理が行われた。 複数の名前(エイリアス)をもつプリミティブ*1につ…

TeX せずに Lua する LuaTeX の話(2)

…ram_name("luatex") end) if kpse then -- texlua である end もっと確実にするには、status.luatex_version が定義済かを見る、とか。(“最初から定義されないかも”に対応する方法は先と同じ。)if status and status.luatex_version then -- texlua である end Kpathsea したい TeX に関するユーティリティを texlua で実装する場合は Kpaths…

TeX せずに Lua する LuaTeX の話(1)

LuaTeX は「Lua できる TeX エンジン」でありその入力は普通は TeX 文書である。しかし、実は LuaTeX は Lua インタプリタとしても使用できる。 LuaTeX で Lua(だけ)してみる 例えば、次のような Lua ソースファイルを用意する。 [hello.lua]print("Hello Lua world!") LuaTeX がインストールされた環境で、この hello.lua があるディレクトリにおいて、次のコマンドを実行する。 [コマンド]te…

cmap から CMap を作る話

…「texlua」は LuaTeX エンジンを Lua インタプリタとして使う場合のコマンド名。*1詳細は別の記事を参照。 これで適当な名前*2(この場合は UniSourceHanSansMedium-UTF16-H)の CMap ファイルを得られる。別の名前を指定したい場合は -o オプションを指定する。*3texlua zrmakecmap.lua -o UniSourceHanSans-UTF16-H SourceHanSans-Medium.otfこうして得た CMa…

そのドライバはドライバか、あるいはドライバか

TeX

… pdfTeX や LuaTeX などの各種 TeX エンジンを指すのに用いられる語である。これと並列されていることを考慮すると、“post-processors”は何らかのソフトウェアを指していて、しかもドライバオプションの話をしているのだから*1、これが dvips や dvipdfmx などの dvi ドライバを指すことが判る。すると、この文の“drivers”は明らかに dvi ドライバとは別のものを指していることになる。そして少し先を見ると、「extract dri…

XeLaTeX や LuaLaTeX で Unicode できるかできないか(2)

…TeX については LuaTeX-ja を利用して日本語を含む文書(あるいは“日本語の文書”)を作成することも行われ始めている。この場合、和文の方は“Unicode できる”のはよく知られている。では欧文の方はどうだろうか? XeLaTeX + zxjatype の場合 まずは XeLaTeX + zxjatype を試してみよう。 % XeLaTeX 文書, 文字コードは UTF-8 \documentclass[a4paper]{article} \usepackage{…

bxcjkjatype の autotilde はソレじゃない件(1)

…uaLaTeX + LuaTeX-ja を使った場合も同様に和欧文間空白が自動挿入される。ところが、(pdf)LaTeX + CJK パッケージでは和欧文間空白を自動挿入する機能が存在しない。このため、ソースを (u)pLaTeX と同じように書くと和欧文間空白が入らない状態で出力されてしまう。% pdfLaTeX 文書, 文字コードは UTF-8 \documentclass[a4paper]{article} \usepackage{CJKutf8,CJKspace,CJ…

BXjscls も新しくなった

…aTeX の場合は luatexja-prewset パッケージ、pdfLaTeX の場合は bxcjkjatype パッケージのプリセット設定を呼び出す。 nopapersize オプション jsarticle などの“JSクラス”では、既定では TeX 側で指定した用紙サイズは出力の DVI ファイルには記録されず、これを記録する(その為の「papersize special 命令」を実行する)には papersize というクラスオプションの指定が必要だった。 これに対…

pdfTeX のプリミティブのサポートの現状

TeX

…拡張プリミティブは LuaTeX/XeTeX/e-pTeX の何れでもサポートされていない。 プリミティブLuaTeXXeTeXe-pTeX \efcode○ \ifincsname○○ \ifpdfabsdim○ \ifpdfabsnum○ \ifpdfprimitive○☆ \leftmarginkern○○ \letterspacefont○ \lpcode○○ \pdfadjustspacing○ \pdfannot○ \pdfcatalog○ \pdfcolorst…

pxchfon の新しい機能に関する何か

…n)の種類について、luatexja-preset パッケージでサポートされているものは pxchfon でもサポートするようにした。例えば、yu-win、yu-osx(游フォント)等が追加されている。なお、XeLaTeX 用の zxjafont パッケージについても、同様の改修を施した 0.3 版をリリースした。ファイルプリセット機能「ファイルプリセット機能」とは TeX Live 用のマップファイルを利用して“文書中で”フォントマップを一括指定するためのものである。従って…

LuaTeX の “pdfTeX のバージョン”がアレな件(補足)

TeX

…足 v0.80 の LuaTeX でも \pdftexversion は“最初から”用意されている、と述べたが、この意味を説明しておく。LuaTeX の“初期状態”、つまり「INI モードでの起動直後」において既に定義されている、という意味ではない。なぜなら、LuaTeX は“初期状態”では「オリジナルの TeX のプリミティブ」(と \directlua)しか定義されてなくて、拡張機能のプリミティブは、Lua コードで設定を行って追加される、という仕組みになっているからであ…

LuaTeX の “pdfTeX のバージョン”がアレな件

TeX

… それだけ? そう、LuaTeX は pdfTeX と全く書式の plain TeX ソースを書けるので、原理的には今すぐにでも pagebox= オプションが使える状況にある。いま pagebox= オプションが使えない理由はただ一つ、pdftex.def に pdfTeX のバージョンが古いとはじかれているわけである! 「pagebox オプションが使えない」について補足」アセトアミノフェンの気ままな日常 チョット腑に落ちないので、LuaTeX のバージョン関連のプリミテ…

LaTeX でのレジスタ割当の話(2)

TeX

… 拡張、XeTeX、LuaTeX、FAM256 適用の e-(u)pTeX では 255、それ以外では 15。 fam(数式ファミリ)について: 0 は本文(非数式)の最も標準的なフォント((句読点に類する記号や英字の演算子(\cos 等)は非数式のフォントと合わせるのが通例で、それをファミリ 0 に指定する。))、1 は数式用イタリックのフォント、2 は基本の数式用記号のフォント、3 は基本の大型演算子記号のフォント、のように役割が決まっている。*2 language(言語…

LaTeX が新しくなった話(補足1)

TeX

…110〜32767 LuaTeX0〜11141110〜65535 e-pTeX0〜255 + 和文0〜65535 e-upTeX0〜231−10〜65535 ※ 1114111 = 0x10FFFF は Unicode スカラー値の最大値。 e-pTeX の「有効な符号値の範囲」は少し複雑で、欧文の符号値(0〜255)と和文の符号値の両方が有効であり、後者の範囲は「現在の内部漢字コード(EUC または SJIS)の有効な“スカラー値”*1の集合」となっている。 これを見ると、…

LaTeX が新しくなった話

… e-TeX 拡張、LuaTeX 等の拡張エンジン上で動作させた場合について、LaTeX カーネルの仕様をエンジンの仕様に適応させる修正を行っている。たとえば、e-TeX 拡張では各種レジスタの個数が大幅に増やされているが、LaTeX におけるレジスタ割当のルーチン*4が追加レジスタを使えるように改修された。(従来は etex というパッケージが必要だった。) 具体的な変更点については、TeX Forum の以下のスレッドで列挙されている。 怒涛の Change Histor…

e-pTeX のレジスタの数についての意外な話

TeX

…ば Omega や LuaTeX。 さて、e-pTeX は e-TeX 拡張をもつ pTeX であり、Omega 拡張は持っていないはずだ。実際、e-pTeX も e-upTeX も欧文の符号空間は 8 ビットのままである。*1というわけで、当然、 e-(u)pTeX のレジスタの個数は 32768 個 となるはずである。早速確かめてみよう。 [eptex の対話モードで]*\count55555=42 *\showthe\count55555 > 42. <*> \show…

冬休み課題:スーパー NabeAzz 問題

TeX

…e18)の使用」と「LuaTeX で Lua エンジンを呼び出す」のは禁止。その他のエンジンの拡張機能や LaTeX パッケージは全て使用可能。 \SuperNabeAzz が実装できたとして、以下のような文書ソースをコンパイルする。\documentclass[a4paper]{article} \makeatletter %%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN TeX CODE %....\SuperNabeAzz の実装のコード \makeat…

TeX ユーザの集い 2014 を超簡単に振り返る件(1)

TeX

…4 (プログラム) LuaTeX-ja における縦組 北川弘典(LuaTeX-ja プロジェクト) どうやら、縦組み和文で TeX する人にとっては、pTeX 系を捨てられる日は遠そうだ、という(印象を受けた)話。 まだまだ pTeX 系のパッケージのメンテナンスも必要ってことか…。 ルビのWeb標準化における現状と課題 川幡太一(NTT未来ねっと研究所) HTML5+CSS でルビが将来使えそうになりそうな話。 熟語ルビとか両側ルビ 当て字ルビは変態アレ。 「ルビ文字列全体…

tceasylist をもう少し真面目に語ってみる

…ンジン(XeTeX、LuaTeX)に限られる。欧文 8 ビットの TeX エンジン(pdfTeX)の場合は、easylist パッケージと同様の制限がかかる。すなわち、入力ファイルは Latin-1 に限定され、従って、使える文字はその範囲に限定される。 (u)pTeX では使用可能な文字が 3 つの ASCII 文字に限られる。 リスト項目開始記号を命令にする場合: 「\ + 単一記号」の形の命令が使用できる。ここでの“記号”も正確には“英字扱いでない文字”を指す。 pTe…

easylist を雪だるまに対応させてみた

…ンジン(XeTeX、LuaTeX)を使っている。*3 8 ビット欧文 TeX エンジンで、文書ファイルの文字コードが Latin-1 である。(inputenc パッケージはサポートされていない。) なので、特に (u)pLaTeX ではこれらは使えない。残る 3 つの中で〈#〉と〈&〉は LaTeX の特殊文字であり、easylist 環境の中ではこれらの特殊文字が正常に機能しなくなるという欠点がある。((つまり、easylist の中に tabular を入れてそこでセル…

LaTeX で JPEG2000 する話

….SE) どうやら、LuaTeX では JPEG 2000 がサポートされているようだ(pdfTeX や XeTeX は非サポート)。 ただし、現状では、graphicx のドライバ*2では JPEG 2000 のサポートは考慮されていない。なので普通に \includegraphics 命令で JPEG 2000 画像を指定しても上手くいかない。しかし、次のようにパッケージレベルでの設定を自分で追加すると、\includegraphics 命令で扱えるようになる。% Lua…

ナントカBoxの話(4)

TeX

…る。 pdfTeX/LuaTeX 画像ファイルが解像度情報を持っている場合はそれに従う。 そうでない場合、整数パラメタ \pximageresolution の値を見る。0 でない場合、それが dpi 単位の解像度を表す。 \pximageresolution が 0 の場合は 72 dpi と見做す。 LaTeX において \pximageresolution の値が既定値の 0 (つまり 72 dpi)から変更されることは無いと思われるので、実質的には次に述べる XeTe…

出力 PDF のバージョン(とか)を指定する(補足)

TeX

…る。 pdfTeX/LuaTeX pdfTeX では以下に挙げるプリミティブで出力 PDF のバージョンと圧縮を設定する。 \pdfminorversion:[整数パラメタ;読書可] 出力する PDF のマイナーバージョン(バージョン 1.x の‘x’の部分の数字)を指定する。可能な値の範囲は 0〜9 である。エンジンでの既定値は 4。((ただし TeX Live 2010 以降ではフォーマット作成時に \pdfminorversion の値が 5 に変更されている。)) 実…

出力 PDF のバージョン(とか)を指定する

…ョン。pdfTeX・LuaTeX・XeTeX を使う場合はドライバオプションは指定しない。 1.5: バージョン指定。1.4、1.5、1.6、1.7 の何れかを指定する。省略した場合はシステムの既定値を引き継ぐ。 nocompress: 全てのストリームの圧縮を抑止する。pdfTeX・LuaTeX でのみ使用可能。 noobjcompress: オブジェクトストリームの使用を抑止する。この場合、「オブジェクトの記述」に対する圧縮が行われなくなる。pdfTeX・LuaTeX で…

ナントカBoxの話(3)

TeX

…意。 pdfTeX/LuaTeX \pdfximage [width 〈幅〉] [height 〈高さ〉] [depth 〈深さ〉] [page 〈ページ〉] [〈ボックス指定〉]{〈ファイル名〉} : 〔命令〕 画像ファイルを取り込んで画像オブジェクトを生成する。(配置はされない。((ちなみに、\pdfximage で生成されたがその後一度も参照(\pdfrefximage)されていない画像オブジェクトは結果の PDF ファイルには出力されないようである。)))サイズ指定の…

ナントカBoxの話(2)

TeX

…ライバを使用の場合(LuaTeX を含む): \includegraphics 命令のオプションキー pagebox により、使用する“ナントカBox”をユーザが選択できる。可能な値は mediabox、cropbox、bleedbox、trimbox、artbox の何れかである。\includegraphics[pagebox=artbox,width=.6\linewidth]{image.pdf} pagebox キーの既定値は cropbox である。つまり、普通は…

ZRさんの4月1日のツイートまとめ

TeX

…ば XeTeX や LuaTeX を使いましょう。「それしか使えない」という不幸な場合を除いて、pdfTeX で日本語文書を作成すべき理由はありません。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s…