で、仰せの通り試しました。
以前は、runscript.exe を bxglyphwiki.exe という名前で copy し、それを c::\texlive\2026\texmf-local/bin へ置いていたのですが
今回はそれをやめて ご指示のように、bxglyphwiki.bat と bxglyphwiki.lua を一緒に c::\texlive\2026\texmf-local/bin に置き path を通しておいた筈ですが、
うまく行きません。ちょっと混乱ぎみなので、今日はここまでとして、明晩再度チャレンジしたいと、存じます。
プログラムから自動でデータを取得することがおそらく不可能になったのではないかと思います。
GlyphWiki:お知らせ https://glyphwiki.org/wiki/GlyphWiki:%e3%81%8a%e7%9f%a5%e3%82%89%e3%81%9b には
> 現在の設定を平常運用とすることを考えています。
> 正規ユーザーのBot利用については近日中にアナウンスします。
ということですので glyphwiki 側から何か代替手段が出てくるまでは BXglyphwiki は利用不可のようです。
ボット除け対策
どうも glyphwiki 側にボット除けの仕組みが導入されているようです。
bxglyphwiki との最低限の通信ができるか否かは、私は以下のコマンドを利用しています。
bxglyphwiki +ping . pdf dvipdfmx ping
上記の場合カレントに bxgw_resp_.def というファイルが作成されます。
現状 ping は通るのですが、グリフなどをダウンロードしようとした時、 はやてさんの報告されたボット対策の影響でエラーになるのは確認しました。
pxchfon.sty について > mr2h さんへ
pxchfon.sty を c:/texlive/texmf-local/tex/platex/pxchfon/ から取り込んでいますが、
可能であれば c:/texlive/2026/texmf-dist/tex/platex/pxchfon/ の利用も検討してください。
@@ -247,9 +247,12 @@
(c:/texlive/2026/texmf-dist/tex/platex/japanese-otf/mlcid.sty
Package: mlcid 2004/04/17 v1.0.2 psitau, u0.34 ttk
)
-(c:/texlive/texmf-local/tex/platex/pxchfon/pxchfon.sty
-Package: pxchfon 2023/02/22 v1.9a ←↑ TL2022 当時のバージョン
-)
+(c:/texlive/2026/texmf-dist/tex/platex/pxchfon/pxchfon.sty
+Package: pxchfon 2024/08/22 v2.2
+
+(c:/texlive/2026/texmf-dist/tex/platex/pxchfon/pxchfon0.def ←分離してる
+File: pxchfon0.def 2024/08/22 v2.2
+))
(c:/texlive/2026/texmf-dist/tex/platex/base/plext.sty
Package: plext 2020/10/07 v1.2m pLaTeX package file (community edition)
\@floatbox=\box82
lua 5.4.x vs lua 5.5 for bxglyphwiki.lua
現在 TeXLive の Windows 環境に同梱される lua は 5.4 ベースですが、 bxglyphwiki.lua の lua スクリプトも lua 5.4 ベースで記述されていルようです。
昨年暮れに lua 5.5 がリリースされて、それを利用すると、現在提供されている bxglyphwiki.lua スクリプトではエラーになってしまいます。
原因は、 for変数が読み取り専用になった ことに起因しているようです。
今後の同梱の lua のバージョンアップなどを考慮し、 暫定で以下の対処を macOS 環境で試してみました。 検討していただけたらと思います。
diff --git a/bxglyphwiki.lua b/bxglyphwiki.lua
index e118376..f092558 100644
--- a/bxglyphwiki.lua
+++ b/bxglyphwiki.lua
@@ -172,7 +172,9 @@ do
local function parse_path(src)
local op, ot, c = nil, nil, 0
local v, epsls = {}, {}
- for w in src:gmatch("(%S+)") do
+ local w = nil
+ for ww in src:gmatch("(%S+)") do
+ w =ww
if c > 0 then
w = tonumber(w); v[c] = w; c = c - 1
if not w then return end
現在、GlyphWikiの側で画像ダウンロードが(一部だけ)可能になっています。とりあえず、今の仕様を前提に動作する暫定版を用意しました。
- zr-tex8r/BXglyphwiki(GitHub)
改修の要点は以下の通りです。詳しくはREADMEを参照してください。
現状の画像ダウンロード制限に合わせて、最新版以外のグリフ画像の取得を回避する。 HTTPSで接続する。※Windows以外での動作確認が全くできていないので、興味がある人は自分の環境で動作するかを試してみてください。
設定方法
苦肉の策として source のtex file の directory 上に 今度の lua fileを置いてみたところ... ...動作しなかった理由は、... 設定法に原因
これは bxglyphwiki.sty と bxglyphwiki.lua を配置されたのですよね。
ですので、前者はTEXMFLOCAL などのパスに、後者は PATH に関する パスに配置すれば、windows では問題なく動くと思います。
> Mac や Linux(Ubuntu)でも動作について
macOS / debian / fedora での対処方法を検討してみました。
以下を参考にしてください。
macOS / lua 5.5 環境での検証
以下の対処をすれば macOS で homebrew で導入した lua 5.5 luarocks および必要なライブラリをインストールすることで処理できるようになりました。
なお、かなりの部分を目視してタイプしているので、タイプミスがあrかもしれませんが、 適宜読み替えてください。
bxglyphwiki.lua から bxglyphwiki をコピーし Lua 5.5 対策を施す
--- ./bxglyphwiki.lua 2026-03-28 18:03:34.736517132 +0900
+++ ./bxglyphwiki 2026-03-28 18:29:56.444931232 +0900
@@ -1,4 +1,4 @@
---#!/usr/bin/env lua
+#!/usr/bin/env lua
-- bxglyphwiki.lua
if bxglyphwiki then
@@ -172,7 +172,9 @@ 以下は lua 5.5 では必須修正
local function parse_path(src)
local op, ot, c = nil, nil, 0
local v, epsls = {}, {}
- for w in src:gmatch("(%S+)") do
+ local w = nil
+ for ix in src:gmatch("(%S+)") do
+ w = ix
if c > 0 then
w = tonumber(w); v[c] = w; c = c - 1
if not w then return end
require("socket.http") と、Bxglyphwiki (v0.7-pre) で導入された require 'lfs' 対策
luarocks install luasocket
luarocks install luafilesystem
参考(使用している lua library)
Rocks installed for Lua 5.5
---------------------------
luafilesystem
1.9.0-1 (installed) - /opt/homebrew/lib/luarocks/rocks-5.5
luasocket
3.1.0-1 (installed) - /opt/homebrew/lib/luarocks/rocks-5.5
参考
debian と fedora でも以下のような対処を行えば、ビルドできました。
ubuntu 系のディストリビューションでは debian での方法を参考にしてください。
debian 13 trixie
lua は alternatives (参考 Luaのインストール) によって管理されていて 5.1 から 5.4 のいずれかが使用できます。
- 今回は 5.1 と 5.4 で検証しました。
lfs(luafilesystem) のインストール
lua5.1(デフォルトで入る)
sudo apt install luarocks # liblua5.1-dev は付随インストールされる sudo luarocks install luafilesystemlualock list で /usr/local/lib/luarocks/rocks-5.1 にライブラリが作成されているのがわかるlua5.4
sudo apt install lua5.4 liblua5.4-dev sudo apt install luarocks sudo update-alternatives --config lua-interpreter # ← lua5.4 を選択 sudo luarocks --lua-version 5.4 install luafilesystemlualock --lua-versiin list で /usr/local/lib/luarocks/rocks-5.4 にライブラリが作成されているのがわかる
Fedora 43
- lua ... Fedora では lua5.4 がインストールされる
lfs(luafilesystem) のインストール
sudo dnf install luarocks sudo luarocks install luafilesystem
\texlive\2026 はなるべくなら触らずに \texlive\mf-local 以下の bin\ や script\ directory を利用したいと考えたことが、却ってトラブルの基になったように思います。毎年の texlive の versionup を考えたときに、なるべく簡単に作業したいと考えたからです。素直に最初から \texlive\2026 以下に設定しておけば良かったのに。
Mac や Linux の環境上の設定はボチボチやってゆきたいとおもいます。
はやてさん、和田さん、Z.R.さん、大変有り難うございました。
win 環境で動作したとのこと、何よりです。
さて、ubuntu 環境ですが、 25.10 および 今年四月下旬にリリース予定の次期 LTS 版ベータの 26.04-beta でテストしましたが、 debian 環境と同じ操作を行えば、問題なく処理できるようです。
前回のタイポも含めて debian/ubuntu 環境での手順を示します。
debian / ubuntu では lua5.1 から lua5.4 が利用できますが、 lua5.1 でも動作するので、ここでは lua5.1 のみの設定について記述する
必要な apt パッケージ のインストール
sudo apt install lua luarocks
今回のケースで必要な luarocks で導入する必要な lua ライブラリのインストール
sudo luarocks install luafilesystem
なお luasocket も必要ですがデフォルトで導入されるので気にしなくて良いです。