ルギア君の戯言

雑多な記事。

XeTeX/LuaTeX + fontspec のフォントの指定について

どの OS でどこのフォントが見つけられるのか、っていうのが、知りたいと言っていた方を見かけたので、調べてみました。 間違っていたら申し訳ない。

凡例

指定方法

  • ○ … フォント名で指定できる。
\font\x="IPAMincho:mapping=tex-text" at 10pt
\setmainfont{IPAMincho}
  • △ … ファイル名で指定する必要があるが、パスは必要ない。
\font\x="[ipam.ttf]:mapping=tex-text" at 10pt
\setmainfont{ipam.ttf}
  • ☓ … フルパスが必要。
\font\x="[/usr/local/texlive/2017/texmf-dist/fonts/truetype/public/ipaex/ipam.ttf]:mapping=tex-text" at 10pt
\setmainfont{/usr/local/texlive/2017/texmf-dist/fonts/truetype/public/ipaex/ipam.ttf}

シンボリックリンクを作れる OS なら、texmf-local からシンボリックリンクの作成すれば、ある程度負担を減らせるが、XeTeX と LuaTeX で指定方法が同じにならないのが悩み。

  • ? … 不明。

ディレクト

「TEXMF*」 は、TEXMFDIST, TEXMFLOCAL, TEXMFSYSVAR, TEXMFSYSCONFIG, TEXMFVAR, TEXMFCONFIG, TEXMFHOME の各ディレクトリの中の、フォントが格納されるべき場所。TEXMF の場所の調べ方は、

$ kpsexpand '$TEXMFDIST'
$ kpsewhich -var TEXMFDIST

どちらでも。フォントが格納される場所は、$TEXMF*/fonts です。

もし、ここ以外にフォントがインストールされている場合の挙動は、XeTeX (kpsewhich で検索するのと等価?)と LuaTeX (luaotfload-tool で予めデータベースを作成)で異なる可能性があります。また、env コマンドなどで、TEXMF の場所を一時的に変えている場合も同様。

「ソース」はタイプセットしようとしているソースと同じディレクトリ。

Windows

場所 XeTeX (fontconfig) LuaTeX (luaotfload) 備考
システム %WINDIR%/Fonts
TEXMF*
ソース

macOS

場所 XeTeX (AAT) LuaTeX (luaotfload) 備考
システム /Library/Fonts, /System/Library/Fonts, /Network/Library/Fonts
個人 ~/Library/Fonts
iOS追加・dfont変換 (?) 「Osaka」「クレー」「游教科書」「游明朝(+36pかな)」「凸版文久」「筑紫」他
TEXMF*
ソース

その他の OS

LuaTeX の場合は、/etc/fonts.conf/usr/local/etc/fonts.conf で、システムフォントのインストール先を指定する必要があります(システムで fontconfig をインストールしていれば、大抵はこのどちらかが存在し、適切に設定されています)。

XeTeX の場合は、未調査。

場所 XeTeX (fontconfig) LuaTeX (luaotfload) 備考
システム
個人
TEXMF*
ソース

Linux のファイルシステム (の一部) を Mac でマウントする良い方法を考える

仮想環境上の Linuxファイルシステム上にあるファイルを Mac に入れた emacs から編集したかった。ただ、それだけ。

VirtualBox の共有フォルダ (一応補足)

  • 仕組みは NFS が使われているようだ。
  • Mac (ホストOS) のファイルシステムにあるファイルを Linux (ゲストOS) のプログラムから読めるようにするものなので、今回は使えない。

NFS (v3)

一応、NFSでマウントできるわけだけど、UID/GIDの整合性の問題があって、読み書きをするには共通のユーザー・グループを作らなければならないので、これは微妙。

NFS (v4)

idmapd とかいうのでUIDのマッピングができるようになったらしい。が、動かないとかいう記事ばっかりで役立たず。

NFS (v4) + Kerberos

一度はやった(過去記事参照)が、手続き的にやはり少々面倒。

Samba

ID 関係は回避できるが、権限設定がややこしいので却下。Kerberos ほどではないと言われればそれもそうかもしれないが…。

SSHFS

全て解決してくれるが、FUSEのため速度が遅いので却下。

AFP

実際使ってみたら、設定が意外とシンプルだった、というオチ。

Mac 上の TeXLive の luaotfload で「クレー」などのフォントを使えるようにする

例えば、「ヒラギノ」とか、「源ノ角ゴシック」のように自分でインストールしたフォントは、Font Book の「フォント情報」のところに場所としてファイルのパスが書かれているんだけど、「クレー」とか「筑紫丸ゴシック」とか「凸版文久明朝」とか、最近追加されたシステムのフォントファイルは、Font Book にその場所が書かれていない。

というわけで、まず、実体がどこにあるのかという点と、luaotfload の検索パスにそれを追加する点の2つを見てみる。

実体の場所

さすがに、何かしらの方法で呼び出されたときにインターネットからダウンロードされるとか、カーネルに組み込まれているとか、そういうものではなかった。

/System/Library/Assets/com_apple_MobileAsset_Font3/<a folder with a slew of numbers and letters .asset>/AssetData

にあった。MobileAsset とあるので、iOS 用のものでしょうか。

luaotfload への追加

fontspec のフォント検索、といえば、fontconfig の機能を使っているのは知っている。ならば、fonts.conf にそのディレクトリを追加しよう。

~/.fonts.conf を作成して、

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>
<!-- 
        Find fonts in these directories
-->
<dir>/System/Library/Assets/com_apple_MobileAsset_Font3/0412b97ba362b3017d1f5d445681f7912d13823b.asset/AssetData</dir>
<dir>/System/Library/Assets/com_apple_MobileAsset_Font3/06722e9d680cf43caeeaf24d40f37ebdddca37e2.asset/AssetData</dir>
<dir>/System/Library/Assets/com_apple_MobileAsset_Font3/0d72c02a426a7f3d6eaf3b41585acc6a9c9f3c83.asset/AssetData</dir>
<!-- 以下略 -->
</fontconfig>

キャッシュをアップデート。

$ fc-cache -f
$ fc-list | grep Klee
Fontconfig warning: line 146: blank doesn't take any effect anymore. please remove it from your fonts.conf
/System/Library/Assets/com_apple_MobileAsset_Font3/56fbb4c7efe470c6f9788fba733e5ec07d97be83.asset/AssetData/Klee.ttc: クレー,Klee,Klee Demibold,クレー デミボールド:style=デミボールド,Demibold,Regular
/System/Library/Assets/com_apple_MobileAsset_Font3/56fbb4c7efe470c6f9788fba733e5ec07d97be83.asset/AssetData/Klee.ttc: クレー,Klee,Klee Medium,クレー ミディアム:style=ミディアム,Medium,Regular

fc-list で出るようになった。が、luaotfload からは見つからず。って、luaotfload のデータベースの更新はこっちか。

$ luaotfload-tool -f -u

変わらず。

あ、TeX は別の場所にデータベースをおいているか。というわけで、TeX の fontconfig に追加してみよう。

$ sudo vim /usr/local/texlive/2016/texmf-var/fonts/conf/texlive-fontconfig.conf

変わらず。変だな、と思って、検索プログラムのコードを調べたら、

$ vim /usr/local/texlive/2016/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
--- unit -> string list
local function get_os_dirs ()
    if os.name == 'macosx' then
        return {
            filejoin(kpseexpand_path('~'), "Library/Fonts"),
            "/Library/Fonts",
            "/System/Library/Fonts",
            "/Network/Library/Fonts",
        }
    elseif os.type == "windows" or os.type == "msdos" then
        local windir = osgetenv("WINDIR")
        return { filejoin(windir, 'Fonts') }
    else
        local fonts_conves = { --- plural, much?
            "/usr/local/etc/fonts/fonts.conf",
            "/etc/fonts/fonts.conf",
        }
        if not luaotfload.parsers then
            logreport ("log", 0, "db", "Fatal: no fonts.conf parser.")
        end
        local os_dirs = luaotfload.parsers.read_fonts_conf(fonts_conves, find_files)
        return os_dirs

fontconfig を使うのは Windows でも Mac でもない場合だけ、だった*1。それも、直接設定ファイルを読み込んで。

ソースコードを変えるのは後々忘れそうなので、それなら、texmf-local からシンボリックリンクを貼ってはどうだろうか。

$ sudo mkdir -p /usr/local/texlive/texmf-local/fonts/opentype/apple
$ cd /usr/local/texlive/texmf-local/fonts/opentype/apple
$ sudo find /System/Library/Assets/com_apple_MobileAsset_Font3 -name "*.otf" -o -name "*.ttc" -exec sh -xc 'ln -s "{}" "`basename "{}"`"' \;
$ sudo mktexlsr /usr/local/texlive/texmf-local
$ luaotfload-tool -f -u -vvvvv 
$ luaotfload-tool --find=Klee
luaotfload | resolve : Font "Klee" found!
luaotfload | resolve : Resolved file name "/System/Library/Assets/com_apple_MobileAsset_Font3/56fbb4c7efe470c6f9788fba733e5ec07d97be83.asset/AssetData/Klee.ttc"

mktexlsr が必要なのを忘れてました。

無事見つかるように。やったね。

References

追記

アセトアミノフェン (id:acetaminophen)さん、情報ありがとうございます。

まず fontspec が使用する、フォントの検索に使用する仕組みは

エンジン Windows Mac Linux/UNIX
XeTeX fontconfig AAT fontconfig
LuaTeX luaotfload

となっているわけですね。

XeTeX なら、fontconfig で見つかってなくても(AATを使っているから)「クレー」が使えることを確認できました。

(※ ここで実行している fc-list (fontconfig) のコマンドは、Homebrew のものであって、TeX には含まれていませんでした。Homebrew / MacPorts の他、XQuartz (X11) を入れている人もこのコマンドは存在すると思われます。)

teostra:~ lugia% fc-list | grep  Klee                                   [18:43]
Fontconfig warning: line 146: blank doesn't take any effect anymore. please remove it from your fonts.conf
teostra:~ lugia% xetex                                                  [18:45]
This is XeTeX, Version 3.14159265-2.6-0.99998 (TeX Live 2017) (preloaded format=xetex)
 restricted \write18 enabled.
** \
entering extended mode

*\font\x="Klee:mapping=tex-text,color=0000FF" at 10pt

*\x  

*あいうえお

*\bye
[1]
(see the transcript file for additional information)
Output written on texput.pdf (1 page).
Transcript written on texput.log.
teostra:~ lugia% open texput.pdf                                        [18:46]
teostra:~ lugia% pdffonts texput.pdf                                    [18:46]
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
DSQIAS+AppleKlee-Medium-Identity-H   CID Type 0C       Identity-H       yes yes no       5  0
KDQTVB+CMR10                         Type 1C           Builtin          yes yes no       6  0

このせいなのか、TEXMF にしかない IPAMincho は見つからない *2

teostra:~ lugia% cat test.tex                                           [21:35]
\font\x="IPAMincho:mapping=tex-text" at 10pt
\font\y="Klee:mapping=tex-text" at 10pt
\x あいうえお
\y かきくけこ
\bye

teostra:~ lugia% xetex test.tex                                         [21:35]
This is XeTeX, Version 3.14159265-2.6-0.99998 (TeX Live 2017) (preloaded format=xetex)
 restricted \write18 enabled.
entering extended mode
(./test.tex
kpathsea: Running mktextfm IPAMincho
/usr/local/texlive/2017/texmf-dist/web2c/mktexnam: Could not map source abbreviation I for IPAMincho.
/usr/local/texlive/2017/texmf-dist/web2c/mktexnam: Need to update /usr/local/texlive/2017/texmf-dist/fonts/map/fontname/special.map?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input IPAMincho
This is METAFONT, Version 2.7182818 (TeX Live 2017) (preloaded base=mf)


kpathsea: Running mktexmf IPAMincho
! I can't find file `IPAMincho'.
<*> ...jfour; mag:=1; nonstopmode; input IPAMincho
                                                  
Please type another input file name
! Emergency stop.
<*> ...jfour; mag:=1; nonstopmode; input IPAMincho
                                                  
Transcript written on mfput.log.
grep: IPAMincho.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input IPAMincho' failed to make IPAMincho.tfm.
kpathsea: Appending font creation commands to missfont.log.

! Font \x=IPAMincho:mapping=tex-text at 10.0pt not loadable: Metric (TFM) file 
or installed font not found.
l.1 \font\x="IPAMincho:mapping=tex-text" at 10pt
                                                
? X
No pages of output.
Transcript written on test.log.
teostra:~ lugia%                                                        [21:35]

luaotfload では、システムにインストールされているフォントの検索パスは、上のソースのように Windows なら %WINDIR%\Fonts, Mac なら /Library/Fonts 等といったように、基本的には決め打ちになっているけど、Linux は決められないので、fontconfig の設定ファイルがあればそこからフォントの入っているディレクトリを探してみる、ということになるわけですね。

teostra:~ lugia% cat test.tex                                           [21:18]
\documentclass{standalone}
\usepackage{luatex85}
\usepackage{fontspec}

\begin{document}
\font\x="Klee:mapping=tex-text,color=0000FF" at 10pt
\font\y="HiraMinProN-W3:mapping=text-text,color=0000FF" at 10pt
\x あいうえお
\y かきくけこ
\end{document}

teostra:~ lugia% lualatex test.tex                                      [21:18]
This is LuaTeX, Version 1.0.4 (TeX Live 2017) 
 restricted system commands enabled.
(./test.tex
LaTeX2e <2017-04-15>
(using write cache: /Users/lugia/Library/texlive/2017/texmf-var/luatex-cache/ge
neric)(using read cache: /usr/local/texlive/2017/texmf-var/luatex-cache/generic
 /Users/lugia/Library/texlive/2017/texmf-var/luatex-cache/generic)
luaotfload | main : initialization completed in 0.113 seconds
Babel <3.10> and hyphenation patterns for 1 language(s) loaded.
(/usr/local/texlive/2017/texmf-dist/tex/latex/standalone/standalone.cls
Document Class: standalone 2015/07/15 v1.2 Class to compile TeX sub-files stand
alone
(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/ifluatex.sty)
(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
(/usr/local/texlive/2017/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(/usr/local/texlive/2017/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/local/texlive/2017/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/local/texlive/2017/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/local/texlive/2017/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/usr/local/texlive/2017/texmf-dist/tex/latex/standalone/standalone.cfg)
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/size10.clo
luaotfload | db : Font names database not found, generating new one.
luaotfload | db : This can take several minutes; please be patient.(save: /Users/lugi
a/Library/texlive/2017/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-regul
ar.lua)(save: /Users/lugia/Library/texlive/2017/texmf-var/luatex-cache/generic/
fonts/otl/lmroman10-regular.luc))))
(/usr/local/texlive/2017/texmf-dist/tex/generic/luatex85/luatex85.sty)
(/usr/local/texlive/2017/texmf-dist/tex/latex/fontspec/fontspec.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/l3pdfmode.def))
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/local/texlive/2017/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/fontenc.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/tuenc.def))
(/usr/local/texlive/2017/texmf-dist/tex/latex/fontspec/fontspec.cfg)(save: /Use
rs/lugia/Library/texlive/2017/texmf-var/luatex-cache/generic/fonts/otl/lmroman1
0-bold.lua)(save: /Users/lugia/Library/texlive/2017/texmf-var/luatex-cache/gene
ric/fonts/otl/lmroman10-bold.luc)(save: /Users/lugia/Library/texlive/2017/texmf
-var/luatex-cache/generic/fonts/otl/lmroman10-italic.lua)(save: /Users/lugia/Li
brary/texlive/2017/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-italic.lu
c))) (./test.aux)(save: /Users/lugia/Library/texlive/2017/texmf-var/luatex-cach
e/generic/fonts/otl/klee-2.lua)(save: /Users/lugia/Library/texlive/2017/texmf-v
ar/luatex-cache/generic/fonts/otl/klee-2.luc)(save: /Users/lugia/Library/texliv
e/2017/texmf-var/luatex-cache/generic/fonts/otl/ヒラギノ明朝-pron-w3-1.lu
a)(save: /Users/lugia/Library/texlive/2017/texmf-var/luatex-cache/generic/fonts
/otl/ヒラギノ明朝-pron-w3-1.luc) [1{/usr/local/texlive/2017/texmf-var/fon
ts/map/pdftex/updmap/pdftex.map}] (./test.aux))
 513 words of node memory still in use:
   5 hlist, 1 vlist, 1 rule, 5 glue, 10 glyph, 10 attribute, 49 glue_spec, 8 at
tribute_list, 1 write, 2 pdf_colorstack nodes
   avail lists: 2:23,3:3,4:3,5:21,6:11,7:12,8:1,9:7
</System/Library/Fonts/ヒラギノ明朝 ProN W3.ttc></System/Library/Fonts/
ヒラギノ明朝 ProN W3.ttc></usr/local/texlive/texmf-local/fonts/opentype/a
pple/Klee.ttc></usr/local/texlive/texmf-local/fonts/opentype/apple/Klee.ttc>
Output written on test.pdf (1 page, 6546 bytes).
Transcript written on test.log.
teostra:~ lugia% pdffonts test.pdf                                      [21:19]
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
GHAOPN+Klee-Medium                   CID Type 0C       Identity-H       yes yes yes      4  0
AURRFZ+HiraMinProN-W3                CID Type 0C       Identity-H       yes yes yes      5  0

上の記事で作った texmf-local 内のシンボリックリンクからフォントファイルを読み込んでいるので、「クレー」のある場所は単に luaotfload が検索する場所に含まれていないんですねぇ。

*1:2017では変更になっている可能性あり

*2:このことはマニュアルにもしっかり記載されていました。「システムにインストールしたフォントか、LuaTeX ならば(luaotfload を使っているので)TEXMF 内のフォントをフォント名で指定して読み込める。XeTeX から TEXMF 内のフォントを読み込むには、ファイル名で指定する必要がある」(要約)。TEXMFDIST 内のファイルを漁ると、TEXMF 内のフォントを見つけるための fontconfig の設定ファイルが見つかるけど、この記述を正とするなら、そのファイルは使っていないことになる。推測だけど、AATではこれをすることができないために、そんな仕様になったんだろうな。

M-DT2DR

Maltron のキーボード使っていたら、会社の人に、「出先で同じようにエルゴノミクスなキーボードを使っているという人がいて、その人がトラックボールを使っているから、君も使ったらどうだ?」と言われたが、なれるのに苦労しそうだけど、買うことにした。そう、練習用に家用にも買ったのです。

これを。

という、前置きはさておき。

せっかく8ボタンもあるので、ELECOMから、ドライバとユーティリティをダウンロードしてきたのです。

Windows で [Ctrl]+[クリックやドラッグ] をマウスだけでできるようにしたい、という願望があったので、とりあえず

f:id:lugia:20170610202714p:plain

こんな感じに設定。(余談だけど、Mac では Control に設定できないんだね)

で、不満な点が2つ。

まず、1つ目は、2ボタン以上の同時クリックが反応しないこと。

Chrome で、ページのリンクにカーソルを持っていき Fn1 (Cmd) を人差し指で押しながら、左クリック。

・・・・・・・・・・・・・・・

無反応。

キーボードの Cmd を押しながら、左クリック。

問題なく、そのリンクが新しいタブで開く。

Fn1 を押しながら、キーボードの H を押す。

これも、問題なく、ウィンドウが隠される。

で、その後色々調べてたら、組み合わせによらず 2 つ以上のボタンを同時に押すと反応しない、ということがわかった。これじゃ、マインスイーパーできないじゃないw

2つ目は中クリックが中クリックになってない。

どういうことか、というと、

  • 例えば、ターミナル.app で中クリックをするとテキストのコピーができるように設定することができます。
  • Chromeではクリックしたリンクを新しいタブで開けます。
  • Blender では中クリックを押しながらドラッグでモデルの回転ができます。

いずれも反応しない・・・。で、Firefox のオートスクロールを呼び出す、とあったので、Firefox でも何も反応なし。えー。

Blender ではキーのカスタマイズができるため、中クリック(のボタン)に割り当てて見たら、Middle ではなく Button5 と表示されました。

f:id:lugia:20170610210632p:plain

xev で見た結果。X 環境は X 環境なので、参考でしかないんだけど。

普通のクリック。

ButtonPress event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x600002, time 2445190673, (43,32), root:(1385,217),
    state 0x0, button 1, same_screen YES

EnterNotify event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x0, time 2445190673, (43,32), root:(1385,217),
    mode NotifyGrab, detail NotifyInferior, same_screen YES,
    focus YES, state 256

ButtonRelease event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x600002, time 2445190777, (43,32), root:(1385,217),
    state 0x100, button 1, same_screen YES

LeaveNotify event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x0, time 2445190777, (43,32), root:(1385,217),
    mode NotifyUngrab, detail NotifyInferior, same_screen YES,
    focus YES, state 0

中クリック。xev の中では button 2 になっている・・・。

ButtonPress event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x600002, time 2447961315, (54,23), root:(1396,208),
    state 0x0, button 2, same_screen YES

EnterNotify event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x0, time 2447961315, (54,23), root:(1396,208),
    mode NotifyGrab, detail NotifyInferior, same_screen YES,
    focus YES, state 512

ButtonRelease event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x600002, time 2447961491, (54,23), root:(1396,208),
    state 0x200, button 2, same_screen YES

LeaveNotify event, serial 25, synthetic NO, window 0x600001,
    root 0x201, subw 0x0, time 2447961491, (54,23), root:(1396,208),
    mode NotifyUngrab, detail NotifyInferior, same_screen YES,
    focus YES, state 0

手元の環境。

  • macOS Sierra 10.12.5
  • ELECOM Mouse Utility 5.0.9.000
  • XQuartz 2.7.11 (xorg server 1.18.4)

ドライバを抜いた状態では問題なく両クリックは反応するし、別に持っていた M-XG2BB でもこの現象は起きるので、完全にドライバの問題です。ありがとうございました。

Maltron

というわけで (?) 買ってみた。

f:id:lugia:20160825202856j:plain

LED がなんかすごい感じで光っているけど、カメラが壊れているだけです (ぇ

注文して1ヶ月、ようやく先週来た・・・。と言っても、もともと1ヶ月以上かかるよって書いてあるのでむしろ早かった方なのかもしれないけど。

キーボード自体にはだいぶ慣れたけど、配列を Maltron にしたので、文字入力に慣れるには、もう少しかかりそう。メカニカルスイッチの押した感じがやっぱりとてもいい感じ。親指で「E」キーなので、そのあたりが QWERTY とは慣れにくいところかな。

日本の某代理店だと、120,000 円になってるけど、アメリカの会社から 75,000 円ほどで買えた*1*2

会社でプログラミング用に買ったので家のキーボードは QWERTY にもどるけどねっ!

*1:現在日本宛に購入しようとするとエラーになるので、要問い合わせ。アカウントをとってアカウントの管理画面から注文ページに行くと注文できそうなので設定ミスだと思われる。メールでやりとりした時「直す」と言っていたが直っていないので真意は不明だが。また、アカウントの管理画面からでは支払い方法に PayPal を選べません。

*2:ルギア君はやりとりして少し英文メールを書きましたが、専門家ではないのでその手の質問は受け付けません。

XDMF

後で整理する。

  • b.xmf (XDMF というより単なるテキスト)
1 2 3
  • メイン
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
<Xdmf xmlns:xi="http://www.w3.org/2003/XInclude" Version="2.2">
 <Information Name="SampleLocation" Value="4"/>
 <Domain>
   <Grid Name="Structured Grid" GridType="Uniform">
     <Topology TopologyType="3DCORECTMesh" NumberOfElements="10 20 30 "/>
     <Geometry GeometryType="ORIGIN_DXDYDZ">
       <DataItem Dimensions="3 " NumberType="Float" Precision="4" Format="XML">
         <xi:include parse="text" href="b.xmf" />
       </DataItem>
       <DataItem Dimensions="3 " NumberType="Float" Precision="4" Format="XML">
        0.1 0.2 0.3                                                             
       </DataItem>
     </Geometry>
     <Attribute Name="Pressure" AttributeType="Scalar" Center="Cell">
       <DataItem Dimensions="6000 " NumberType="Float" Precision="4" Format="Binary" Seek="4">fort.10</DataItem>
     </Attribute>
     <Attribute Name="Test" AttributeType="Vector" Center="Cell">
       <DataItem Dimensions="6000 3" NumberType="Float" Precision="4" Format="Binary" Seek="4">fort.20</DataItem>
     </Attribute>
   </Grid>
 </Domain>
</Xdmf>

つまり、単なるテキストを XInclude で読み込むには、parse="text" が必要。ParaView がクラッシュしてしまうので、原因がよくわからなかった。

  • メイン
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
<Xdmf xmlns:xi="http://www.w3.org/2003/XInclude" Version="2.2">
 <Information Name="SampleLocation" Value="4"/>
 <Domain>
   <Grid Name="Structured Grid" GridType="Uniform">
     <Topology TopologyType="3DCORECTMesh" NumberOfElements="10 20 30 "/>
     <Geometry GeometryType="ORIGIN_DXDYDZ">
       <DataItem Dimensions="3 " NumberType="Float" Precision="4" Format="XML">
         <xi:include parse="text" href="b.xmf" />
       </DataItem>
       <DataItem Dimensions="3 " NumberType="Float" Precision="4" Format="XML">
        0.1 0.2 0.3                                                             
       </DataItem>
     </Geometry>
     <Attribute Name="Pressure" AttributeType="Scalar" Center="Cell">
       <DataItem Dimensions="6000 " NumberType="Float" Precision="4" Format="Binary" Seek="4">fort.10</DataItem>
     </Attribute>
     <Attribute Name="Test" AttributeType="Vector" Center="Cell">
       <DataItem Dimensions="6000 3" Format="Function" Function="JOIN($1,$2,0.0)">
         <DataItem Dimensions="6000" NumberType="Float" Precision="4" Format="Binary" Seek="4">fort.10</DataItem>
         <DataItem Dimensions="6000" NumberType="Float" Precision="4" Format="Binary" Seek="4">fort.10</DataItem>
       </DataItem>
     </Attribute>
   </Grid>
 </Domain>
</Xdmf>

これは未だにクラッシュする…。