マクロツイーター

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

LuaTeX の検索結果:

BXjscls の新しいやつ(v1.5c)

…pxchfon や luatexja-preset などの外部のパッケージの機能を用いている。一方、これらのフォントプリセット設定のパッケージには「2004JIS 字形を優先する」ためのオプションが備わっている。ところが BXJS クラスにはそのようなオプションを有効化する手段を持っていない。このため、2004JIS 字形を優先したいという場合には jafont 指定は使えず、結局エンジンに依存する書き方が必要になっていた。((グローバルオプションを用いてパッケージのオプショ…

pxrubrica のもっと新しいやつ(v1.3)

…ment} その他 LuaTeX-ja の縦組に対応した。*4 (続く) *1:なぜか、CTAN でのバージョン情報(“Version”項)が「1.2」のままになっているのだが、実際には 1.3 版に更新されている。 *2:「朱鷺→とき」のように、各漢字ごとの読みがあるのではなく、熟語全体としてのみ読みがあるもの。 *3:モノルビ・熟語ルビは親文字一文字ごとの読みが指定されるので、親文字列の分解が必要となる。 *4:本来は 1.1 版の時点で対応しておくべきであったが、考慮が…

PXrubrica の新しいやつ(v1.1)

…uaLaTeX + LuaTeX-ja および XeLaTeX + xeCJK の環境では、全ての機能が利用できるはずである。*2 % XeLaTeX文書, 文字コードはUTF-8 \documentclass[xelatex,ja=standard,a5paper]{bxjsarticle} \usepackage{pxrubrica} % Lohit Fonts: https://pagure.io/lohit \newfontfamily{\fTaml}[Script=…

BXjscls の新しいやつ(v1.4)

…してほしい。 なお、LuaTeX-ja パッケージはそれ自身が和文数式ファミリの設定を行うので、LuaTeX-ja が使われている限りは数式中の和文文字は常に使える状態にある。従って、旧版の BXJS クラスでももちろん使える。無効化はできないので、disablejfam オプションはサポートされない(指定すると警告が出て無視される)。 BXJS クラス + XeLaTeX で和文の数式ができるようになった話 エンジンが XeLaTeX の場合は、既定では数式中の和文文字はサ…

e-TeX 拡張に依存するパッケージ

TeX

…XeTeX または LuaTeX 専用であるもの(fontspec、xeCJK、luacode、等)は除外する。 「他のパッケージやクラスから読み込まれる(開発者向けの)パッケージ」に焦点を当てていて、どちらかというと TeX on LaTeX 者向けの情報である。ソレ CJKfntef acronym atenddvi auto-pst-pdf autonum biblatex biditools bmpsize catchfile catoptions chemgreek…

【重要】TeXシステムの脆弱性の件

TeX

…(TeX、pTeX、LuaTeX、…)の種類。 フォーマット(plain TeX、LaTeX、…)の種類。*1 自分が MetaPost を使う(自分で起動する)ことがあるか。 TeX 配布の新しさ。 たとえ(この記事から見て)未来のもの(例えば“2017 年の最新版”)でも、ユーザの設定によっては【無制限 MetaPost 連携可能】になる可能性がある。*2 検査方法【無制限 MetaPost 連携可能】であるかを調べる方法。 コマンドシェルで以下のコマンドを実行する。 k…

LaTeX で 1TeX なロゴをする話

…る XeTeX や LuaTeX のロゴについては metalogo や hologo などのパッケージを利用すれば出力できる。ところが、1TeX の(画期的な)ロゴについては、その知名度の低さのため、それをサポートするパッケージが存在しないのである。 この悲しむべき事態を打破するため、作ってみた。 BXtexlogo パッケージ (GitHub:zr-tex8r) % pdfLaTeX document \documentclass[a4paper]{article} \u…

埋め込めないフォントを埋め込むとどうなるか

TeX

…ifdefined\luatexversion \message{[[LuaTeX]]} \input luaotfload.sty \font\ftest="[TestFont.ttf]" \else\ifnum\ifdefined\pdfoutput\pdfoutput\else0\fi>0 \message{[[pdfTeX]]} \pdfmapline{=cmtt10 TestFont "TeXBase1Encoding ReEncodeFont" <TestFont…

TeX で TTC フォントする件に関する素朴な疑問

TeX

…提 XeTeX や LuaTeX で TrueType/OpenType フォントを使う場合、フォントを「フォント名で指定する」ことも「ファイル名で指定する」ことも可能である。*1 [XeTeX]% plain XeTeX 文書 \font\fTestA="[ipam.ttf]" % ファイル名 "ipam.ttf" \font\fTestB="IPAMincho" % フォント名 "IPAMincho" [LuaTeX + luaotfload]% plain LuaTeX…

新しい bxpdfver パッケージ(v0.3)の話

…イバ(pdfTeX/LuaTeX/XeTeX/dvipdfmx)において、全ての機能が使えるようになった。 dvipdfmx/XeTeX で nocompress/noobjcompress できる話 従来の bxpdfver では、このうちの②と③の機能は pdfTeX/LuaTeX においてのみサポートされていて、XeTeX および dvipdfmx では使えなかった。このような制限がある理由は非常に単純で、「そもそも XeTeX/dvipdfmx において文書中で②や③…

LaTeX で \newfont したい話 (bxnewfont パッケージ)(補足)

…が、XeTeX や LuaTeX(+ luaotfload)においてはここに OpenType フォントの名前(および拡張子付のファイル名)を書くことができる。% plain XeTeX 文書 \font\fcomic="Comic Sans MS/I" {\fcomic Thnaks {\TeX}, and Good-bye!} \newfontx(*) 命令においてもフォント名の部分を \font や \newfont と同じ書式で書くことができる。% XeLaTeX 文…

BXjscls の新しいやつ(v1.2)

…れてドライバ指定は luatex となる。((ここで dvi=dvipdfmx の代わりに dvipdfmx を指定してしまうと、LuaLaTeX でコンパイルした場合に「ドライバ指定がおかしい!」と怒られる。)) この dvi オプションは以前に存在した「dvipdfmx-if-dvi」を他のドライバにも適用できるように一般化したものである。((今のところ、dvipdfmx-if-dvi は非推奨になったわけではないので、これを使っても(残念ながら)警告は出ない。)) ma…

とある LuaTeX クイズの正解

…。 This is LuaTeX, Version 0.95.0 (TeX Live 2016/W32TeX) restricted system commands enabled. (./quiz.tex LaTeX2e <2016/03/31> patch level 1 Babel <3.9r> and hyphenation patterns for 1 language(s) loaded. ……(中略)…… (see the transcript file for…

pTeX のプリミティブを把握したい話

TeX

…TeX、XeTeX、LuaTeX が「SyncTeX 拡張」をもつが, \synctex を持っているのは「e-TeX 拡張をもつもの」(つまり e- でない pTeX と upTeX 以外)に限られる。 pdfTeX 互換拡張プリミティブ \ifpdfprimitive \pdfcreationdate \pdffiledump \pdffilemoddate \pdffilesize \pdflastxpos \pdflastypos \pdfmdfivesum \pdf…

LaTeX でもっともっとカラー絵文字する話(bxcoloremoji v0.3a)

…document} LuaTeX-ja の縦組みモードにも対応している。 % LuaLaTeX 文書; 文字コードは UTF-8 \documentclass[a4paper]{ltjsarticle} \usepackage{graphicx} \usepackage{lltjext}% 組方向拡張 \begin{document} \parbox{5\zw}{夏は\coloremoji{☃}。} \end{document} CJK パッケージ対応 (pdf)LaTeX …

LuaTeX が直接 Type1 する件が結局解らなかった

…ということは、実は LuaTeX では OpenType だけでなく、Type1 フォントの“直接”指定ができる(できた)ということなのか。調べてみたけど、何だかよくわからない、という話。 “TFM 経由”と“直接” 新しい TeX エンジンにおいては、フォントの指定方法には次の 2 種類がある。 “TFM 経由”: オリジナルの TeX と同じで、TFM ファイル(*.tfm)を用意して、それに物理フォントをマップする、という方法。 pdfTeX では PK 形式、PFB …

LuaTeX のよくある(よくない)光景

TeX

…る。% plain LuaTeX document %\mathchardef\beta="010C % in plain TeX \Umathchardef\BETA=0"0"10C {\tt\meaning\beta}\par % What is \beta? {\tt\meaning\BETA}\par % What is \BETA? $\beta$-redex, or $\BETA$-redex?\bye コレを LuaTeX 0.80.0 でコンパイルすると……。…

\write18 よりヤバい \write16 の話

TeX

…の記事では「新しい LuaTeX で \write18 できない話」をした。新しい(0.85 版以降)LuaTeX で「\write18 でシェル実行を行う」という文法が廃止されたのにはそれなりの理由がある。 なぜ \write18 できないのか それは、「出力ストリーム(\openout)の個数を従来の 16 から 128 に増長した」ことである。つまり新しい LuaTeX では次のコードが通るようになる。\openout18=hoge.txt そうすると、これを実行した後…

新しい LuaTeX だって \write18 したい

TeX

…0.85 版以降の)LuaTeX では「\write18 でシェル実行(外部コマンドの実行)する」ことができなくなっている。% 残念ながら新しいLuaTeXでは動作しない \immediate\write18{rm thesis-slide.tex} じゃあ新しい LuaTeX でシェル実行したい場合はどうすればよいか、という話。 Lua でシェル実行しよう LuaTeX なので当然 Lua ができる。そして、Lua にはシェル実行のための関数 os.execute() が存…

LuaTeX がますます新しくなってますますアレ

… 半年前あたりから LuaTeX が“リストラ”を進めていて、大きな仕様変更が続いている。 バージョン 0.81 において、プリミティブの名称に関する整理が行われた。この結果、pdfTeX との(プリミティブ名に関する)互換性が劣化した。 LuaTeX や LaTeX や LuaLaTeX が新しくなってアレ(1) バージョン 0.85 において、プリミティブの名称に関して根本的な方針の転換が行われた。この結果、pdfTeX との(プリミティブ名に関する)互換性がほぼ失われた…

きょうの pTeX (1): \kansuji、\kansujichar

TeX

…ろう。 XeTeXやLuaTeXでUnicode文字を置き換えるマクロ (アレ Forum) そこでは、XeTeX や LuaTeX について「整数値をその符号値をもつ文字トークンに変換したい」という要望があり、それに対して「\Uchar プリミティブ」「\lowercase トリック」という 2 つの解決法が示されている。((いや、前田さんの示した「TeX エスケープ(^^ab)の文字列を作って \scantokens する」も入れると 3 つか……。))このうち、XeTe…

きょうの LuaTeX (4) ー \Ustack

… 前回の「きょうの LuaTeX」では、\mathstyle という「現在の数式スタイルを判定する」ためのプリミティブを紹介した。既にそこで述べたように、\over や \abovewithdelims などの「汎化分数」のサブ数式の中では、“TeX の実装上の制限”のため、\mathstyle が正しい値を返せない。この制限を緩和する目的で用意された拡張プリミティブが \Ustack である。汎化分数をなすグループ({...} で囲われた部分)の直前にこれを配置すると、グル…

きょうの LuaTeX (3) ー \mathstyle

…法である。ところが LuaTeX ではもっと直接的に「現在の数式スタイル」が判定できる、だったらよかったのに、という話。 \mathstyle を使う話 \mathstyle プリミティブは、「現在の数式スタイル」が 8 つのうちの何れかに応じて 0〜7 の整数値を示す。数式外では −1 の値を示す。\mathstyle を利用して例えば次のようなマクロを作ることができる。 [showms.def]% \showMS: 現在の数式スタイルの情報を端末に表示する. \def\s…

例の BXbase の何かの話(1)

TeX

…r % XeTeX/LuaTeXの場合 \let\bxInputJaEncoding=u% utf8 \else\ifbxinpdfTeX % pdfTeXの場合 \let\bxInputJaEncoding=b% bytes \else\ifbxtb@pxbase@ok % PXbaseがインストール済の場合 % 判定用ファイル(1)を用いて入力漢字コードを判定する \@@input pxbsjc.def\relax \def\bxtb@tmpb#1#2\@nil{% \i…

きょうの LuaTeX(2) ― \crampeddisplaystyle 等

…が、冒頭に紹介した LuaTeX の拡張プリミティブである。つまり、例えば \crampedtextstyle を実行すると、以前が“8 つ”のスタイルのどれであったとしても、「cramped なテキストスタイル(T′)」に変更される。 % plain LuaTeX $$ {\textstyle A^2}, % T {\crampedtextstyle A^2}, % T' {\scriptstyle A^2}, % S {\crampedscriptstyle A^2}. …

bxokumacro パッケージが新しくなった件

…uaLaTeX + LuaTeX-ja パッケージ。 pdfLaTeX 上で、BXJS クラス(BXjscls パッケージの文書クラス)を“標準設定”(standard 和文ドライバ)で用いている場合。ただし以下のような制限がある。 \kenten 命令は未対応。 和文を含む命令名は使えないので、\挨拶→\AISATSU、\曜→\YOU、\――→\DDASH*4の「代替名」を使う必要がある。 というわけで、bxokumacro を使うと、pdfLaTeX でも挨拶やルビができ…

TeX なのに文字列をクオートする話(1)

TeX

…する話面白いことに、LuaTeX エンジンでは、\input 等のファイル名の引数や \font のフォント名の引数において「波括弧で囲む」という規則が適用されている。*7LuaTeX は新しいエンジンなので(波括弧入りのファイル名に関する)互換性を考える必要が無かったので一貫性のある方法を採用したのだろう。 \input{hello tex world} \font\ftmr={Times New Roman} (続く) *1:引数の終結のための空白トークンは吸収される。な…

XeTeX の謎の正規化の謎についての補足

…ain XeTeX/LuaTeX 文書, 文字コードは UTF-8 \ifdefined\luatexversion \input luaotfload.sty \fi \font\fTest="[OpenSans-Regular.ttf]:-liga" \fTest % NFDで表す A LÉGPÁRNÁS HAJÓM TELE VAN ANGOLNÁKKAL. % <έ> は U+1F73, これは U+03AD への単元正規分解をもつ τέχνη % Open…

きょうの LuaTeX (1) : \suppressfontnotfounderror

…を元ネタとしている。LuaTeX の仕様が毎日変わる、とかいう話では(残念ながら?)ない。 \suppressfontnotfounderror :[整数パラメタ・読書可] この値が正の数である場合、\font プリミティブで指定された“フォント”が見つからなかった場合のエラーが抑止される。 要するに名前の通りなのであるが、もう少し詳しく説明しよう。 通常は、TeX エンジンは \font プリミティブで指定された“フォント”が見つからないとエラーを出す。((なお、LuaTe…

新しい LuaLaTeX で bxjsarticle できる話

…efined:D \luatexsuppressfontnotfounderror \tex_let:D \luatex_alignmark:D \luatexalignmark \tex_let:D \luatex_aligntab:D \luatexaligntab \tex_let:D \luatex_attribute:D \luatexattribute \tex_let:D \luatex_attributedef:D \luatexattributedef ..…