マクロツイーター

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

upTeX の検索結果:

dvipdfmxのフォントマップのunicodeの話(1)

…パターン pTeX・upTeXの標準和文TFM1およびjapanese-otfパッケージの和文TFMのセットに対象を限ることにする。このセットに対するフォントマップのCMap指定として、主に以下に述べる4つのパターンが使われている。 ※フォントマップの例は「横組・明朝・中字」のマップ行を抜粋して示す。他のウェイトについても全く同様になる。 ①OpenTypeフォント+CMap指定 rml H HogeraMincho-Regular.otf uprml-h UniJIS-UT…

jfmutilで和文VFをカスタマイズする話(1)

…件を整理してみる件 upTeXの標準の横組和文フォントupjisr-hをカスタマイズして新しいフォントmy1upjisr-hを作製する。 my1upjisr-hでは全角ダーシ(U+2015)の字形が「梅明朝1」(ume-tmo3.ttf)のものになる。 ※「梅明朝」は“つながるダーシ”の字形をもつ。 my1upjisr-hのその他の性質は全て元のupjisr-hに合わせる。 従って、全角ダーシ以外の文字のフォントは“通常の”設定に従う。(TeX Liveの既定の設定では「IP…

VFがアレでもjfmutilで変換できる話

…、upjisr-h(upTeXの標準和文フォントの一つ)の情報をテキストで表した、以下のようなファイルが出力される。 [upjisr-h.zvp] (VTITLE ) (FAMILY UPJIS KANJI) (FACE F MRR) (CODINGSCHEME TEX KANJI TEXT) (DESIGNSIZE R 10.0) (CHECKSUM O 0) (FONTDIMEN (SLANT R 0.0) (SPACE R 0.0) (STRETCH R 0.1) (S…

TeX Live 2018 で日本語ファイル名するとアレ(1)

…This is e-upTeX, Version 3.14159265-p3.8.1-u1.23-180226-2.6 (utf8.uptex) (TeX Li ve 2018/W32TeX) (preloaded format=uplatex) restricted \write18 enabled. entering extended mode ! I can't find file `TeX'. <to be read again> \protect <*> TeX ヘ…

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

TeX

…eX-ng と e-upTeX の拡張プリミティブを比較してみた。 プリミティブ pdfTeX e-upTeX pTeX-ng e-TeX のプリミティブ(※1) ✔ ✔ ✔ pTeX 拡張のプリミティブ(※2) ✔ ✔ upTeX 拡張のプリミティブ(※3) ✔ ✔ (pdfTeX 拡張のプリミティブ) \ifpdfprimitive ✔ ✔ \pdfcompresslevel ✔ ✔ \pdfcreationdate ✔ ✔ \pdffiledump ✔ ✔ \pdffi…

pxchfon の新しいやつ(v1.0a)

…cehan.map uptex-mysourcehan.map otf-mysourcehan.map otf-up-mysourcehan.map この後、以下の手順を行うことで、「pxchfon の sourcehan と同じ設定」をデフォルトに設定することができる。 マップファイルを「dvipdfmx から見える場所」に配置する。 (例えば $TEXMFLOCAL/fonts/map/dvipdfmx/ に*3置いて、mktexlsr を実行する。) kanji-con…

pxchfon の directunicode について語ってみる

…て念を押しておくが、upTeX の Unicode 直接出力にしても、japanese-otf パッケージ(OTF パッケージ)にしても、対象となるのは和文(扱いの)文字のみである。また“自分で TFM や VF を作る”ことをしない限りは、全角幅*1のグリフしか利用できない。本記事ではその状況を前提とする。 なぜ directunicode なのか directunicode 機能は次の 2 つの問題に対する解決策となる。 「upLaTeX で Unicode できない」問…

プレミアムフライデー的な何かを作ってみた(scpremiumfriday パッケージ)

…This is e-upTeX, Version 3.14159265-p3.7-u1.21-160201-2.6 (utf8.uptex) (TeX Live 2016/W32TeX) (preloaded format=uplatex) restricted \write18 enabled. entering extended mode (./report.tex pLaTeX2e <2016/11/29u01> (based on LaTeX2e <2017/01/0…

PXchfon の新しいやつ(v0.8)

…tf パッケージの upTeX 対応パッチの jis2004 オプションへの対応」が未了であったことに対する“暫定的な仕様”であった。現在は当該の「対応」が実施済のため、“本来の仕様”に戻ったということである。 ※チョットややこしい話なので、後日改めて解説したい。 ファイルプリセットの単純なやつ 従来の(単純でない)「ファイルプリセット機能」というのは、次のような機能であった。 パッケージオプションに「+ipaex」のように“+”で始まる名前を与えると、「TeX Live の…

LaTeX で 1TeX なロゴをする話

…(XeTeX とか upTeX とか)全部」、“**”は「チョット無名なもの(残念ながら 1TeX はこちらに入る)全部」を表す。これにより 1TeX のロゴを出す命令 \OneTeX が使えるようになる。 \bxtexlogoimport の引数には、命令の名前(\OneTeX 命令なら OneTeX)を書いて個別のロゴ命令をインポートすることもできる。例えば次の例では「チョット有名なやつ全部と、あと \OneTeX」をインポートしている。% LuaLaTeX 文書; UT…

(u)pLaTeX で CJK パッケージする件(2)

…ầy lươn. \par\bigskip} \end{document} なお、日本語の部分(「upTeX の和文」として処理されている)に ruby パッケージの \ruby を適用することは(恐らく)可能であるが、“まともに”出力させるのは結構大変である。日本語のルビのためのパッケージを利用するのが無難である。 (いちおう続く) *1:ちなみに、CJKutf8 パッケージは「CJK パッケージと欧文の utf8 入力エンコーディングの機能を両立させるためのもの」である。

(u)pLaTeX で CJK パッケージする件(1)

…jktoken は upTeX エンジン特有の機能なので pLaTeX では使えない。pLaTeX で同様の処理をしたい場合は「非 ASCII 文字を TeX エスケープするテキストフィルタを適用する」といった、古典的なテクニックを駆使する必要がある。例えば、pxfltsrc パッケージ*4を利用する場合は以下のようになる。% pLaTeX 文書, 文字コードは UTF-8; -shell-escape 指定が必要 \documentclass[a4paper]{articl…

BXjscls の新しいやつ(v1.1e)

…定となるが、実際は、upTeX が使える(2012 以降)ならば UTF8-UTF16 も存在するはずである。既定の値が不都合な場合は明示的に (no)bigcode のオプションを指定してほしい。 hyperref の unicode オプションの自動有効化 (1.1d 版での改修。) これも hyperref 使用下の PDF 文字列に関する話であるが、BXJS クラスでは、hyperref が読み込まれた場合の unicode オプションについて、前もって次のような設定…

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

TeX

…-pTeX と e-upTeX はこれらのプリミティブを持っている。 pTeX e-pTeX upTeX e-upTeX \disablecjktoken ○ ○ \dtou ○ ○ ○ ○ \enablecjktoken ○ ○ \epTeXinputencoding ○ ○ \forcecjktoken ○ ○ \hfi ○ ○ \ifdbox ○ ○ ○ ○ \ifddir ○ ○ ○ ○ \ifmdir ○ ○ ○ ○ \ifpdfprimitive ○ ○ \ift…

(x)dvipdfmx が文書情報を Unicode する件に関するメモ(2)

TeX

…。 % plain upTeX/XeTeX 文書, 文字コードは UTF-8 %\special{pdf:tounicode UTF8-UTF16} % PDFのページ番号表示を設定する \special{pdf:docview << /PageLabels << /Nums [ 0 << /P (☃) >> % UTF-8 → NG 1 << /P <E29883> >> % UTF-8 → NG 2 << /P <FEFF2603> >> % UTF-16 → OK ] …

(x)dvipdfmx が文書情報を Unicode する件に関するメモ(1)

TeX

… Live 最新の、upTeX + dvipdfmx と XeTeX (+ xdvipdfmx) について調べた。 次の文書 test.tex を用意する。 % plain upTeX/XeTeX 文書, 文字コードは UTF-8 \nopagenumbers \null % ToUnicode を指定 %\special{pdf:tounicode UTF8-UTF16}%(*) % 文書情報辞書にエントリを追加 \special{pdf:docinfo UTF-8 では …

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

TeX

…icode である upTeX を前提とすると)例えば "2603 という数値が与えられた時に、符号位置がこの値である文字である〈☃〉の和文文字トークンを作り出したい、ということである。 某フォーラムを見ている人であれば、ごく最近に似た話題が出ていたことを覚えているだろう。 XeTeXやLuaTeXでUnicode文字を置き換えるマクロ (アレ Forum) そこでは、XeTeX や LuaTeX について「整数値をその符号値をもつ文字トークンに変換したい」という要望があり、…

dvipdfmx の tounicode で ToUnicode されるのはどれか

TeX

…] % plain upTeX 文書, 文字コードは UTF-8 Hello! % ToUnicode を指定 \special{pdf:tounicode UTF8-UTF16} % 文書情報辞書にエントリを追加 \special{pdf:docinfo UTF-8 では /Author /Snowman (☃) >>} % ページオブジェクトの辞書にエントリを追加 \special{pdf:put @thispage Snowman (☃) >>} \bye これを以下の…

cmap から CMap を作る話

…のため、plain upTeX を用いて、かつ(VF を通さず)直接 TFM のフォントを使うことにする。upTeX の標準の明朝体*4の TFM である uprml-h を Source Han Sans Medium にマップして文字を出力してみよう。このための dvipdfmx のマップ行は以下のようになる。uprml-h UniSourceHanSansJP-UTF16-H SourceHanSans-Medium.otfマップ行を TeX ソース内で指定することにし…

NFD な濁点仮名を pLaTeX できる話

…ある。 plain upTeX(内部コードは Unicode)では次の表示が得られる。12486:12441Unicode で U+30C6 と U+3099 だから〈テ〉と結合濁点である。 さらに補足 upTeX でも合成を行うようになったようだ。 Re: OSX El Capitan で uplatex で濁点半濁点の表示がおかしい (TeX Forum) *1:そもそも pTeX は用いる和文フォントが何であるかを知らない(DVI ウェアが知っている)ことに注意。 *2…

upTeX できる Unicode の話

TeX

前回の話に関連して、upTeX で使われる論理フォント(VF)について、サポートする文字の範囲を調べてみた。 調査対象は最新版の W32TeX。 upTeX のバージョンは 1.20。 otf のバージョンは v1.7b6(otfbeta;upTeX 対応版) 調査結果 (i) upLaTeX の“標準”の和文フォント(upjisr-h、upjisg-h、upjisr-v、upjisg-v): 「AJ1 グリフに対応する文字を含む Unicode ブロック」全てを合わせたもの…

upTeX で Unicode できない話

TeX

…de できない理由 upTeX エンジン(の和文処理)は Unicode 全域を処理できる。従って、失敗するのは“フォント”設定の問題である。upTeX 利用の作業フローで PDF を出力する場合、「特定の文字が出ない」ことの理由として次の 2 つが考えられる。 “TeX 側”のフォント(論理フォント*2)の問題: 論理フォントの対応文字集合に含まれていない。 DVI ウェアのフォントマップ設定の問題: CMap 設定においてマップ元の文字集合に含まれていない。 論理フォント…

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

…u-win.map uptex-yu-win.map otf-up-yu-win.map そして、「kanji-config-updmap yu-win」が実行されると、dvipdfmx が読む既定のマップファイルに含まれる標準和文フォントに関する設定内容をこの 4 つのファイルを結合したものに一致させるのである。*1これにより、標準和文フォントのマップ先が游フォントになる。このように、ファミリ値に応じてマップファイルが存在することが前提になっているため、これらを直接指定こと…

latexrelease が pTeX でアレな話(2)

TeX

… にのみ言及するが、upTeX でも話は全く同じである。)pTeX 上で動作する LaTeX である pLaTeX では、元の LaTeX に比べると、pTeX の日本語組版機能を活用するための改修が加えられている。具体的にいうと、LaTeX のカーネルの(docstrip 済の)ソース latex.ltx を読んだ後に、pLaTeX 用のカーネル修正コードのソース plcore.ltx(以下単に「pLaTeX のカーネル」と呼ぶ)が読み込まれている。*6LaTeX のカーネ…

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

TeX

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

LaTeX が新しくなった話

…※1e-pTeXe-upTeX count レジスタ個数25632768327686553665536 dimen レジスタ個数25632768327686553665536 skip レジスタ個数25632768327686553665536 muskip レジスタ個数25632768327686553665536 box レジスタ個数25632768327686553665536 toks レジスタ個数25632768327686553665536 read ハンドラ個数…

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

TeX

…-pTeX も e-upTeX も欧文の符号空間は 8 ビットのままである。*1というわけで、当然、 e-(u)pTeX のレジスタの個数は 32768 個 となるはずである。早速確かめてみよう。 [eptex の対話モードで]*\count55555=42 *\showthe\count55555 > 42. <*> \showthe\count55555 ?アレ!? 何故か \count55555 に代入できている、ナンデ? ちなみに、pdfTeX では \count55…

次世代の pTeX に関する何か (2)

TeX

…張機能。 pTeX/upTeX の独自の拡張機能。 pdfTeX 拡張機能のうちのごく一部。 少数の pTeX-ng 独自のプリミティブ。 注意すべきこととして、pTeX-ng は upTeX の上位互換となっているが、e-upTeX と比較すると完全な上位互換ではない。e-(u)pTeX でも pdfTeX 拡張の一部をサポートしているが、それらの多く(\pdffilemoddate、\pdfsavepos 等)は pTeX-ng ではサポートされていない。 pdfTeX …

次世代の pTeX に関する何か (1)

TeX

…と全く異なる。(「euptex --help」と「ptex-ng --help」の出力を見比べてほしい。) 先に示した動作の手順については特に違いがないようである。 対話モードの先頭行: 普通のTeXの場合 TeX エンジンの対話モードでは、通常は ‘*’ のプロンプトが表示されている。しかし、オプション以外の引数を与えずにコマンドを起動した場合、次のように ‘**’ のプロンプトが現れる。C>eptex This is e-pTeX, Version 3.14159265-…

源ノアレ(Source Han Sans)で TeX してみたい話

…は Unicode(upTeX の DVI の場合)なので Identity を指定するのも違う。 困った。これでは、「Source Han Sans で早速 TeX してみた」のネタが作れない。 CMap すればよいらしい window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(i…