実行環境:
- Windows11
- TeX Live 2023
- LuaLaTeX
unicode-math では、数式が Unicode で出力されます。 一方で、unicode-math に収録されていない記号を OpenType フォントではないフォントから取り入れようとすると、たとえその記号が Unicode に登録されていたとしても、PDF 内のテキスト情報は期待した記号ではない何かになってしまいます。
例えば、mathabx パッケージで提供されている天文学記号を以下のように導入した場合、生成された PDF のテキスト情報は Unicode に対応しません。(@ABCDEFGHIJKLMN
がコピペされる)
% +++
% latex = lualatex
% +++
\documentclass[11pt]{jlreq}
\usepackage{unicode-math}
\setmathfont{STIX Two Math}
%%
%% mathabx
%% 以下のディレクトリにあるファイルから適当に抜粋
%% texlive/2023/texmf-dist/tex/generic/mathabx
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
<5> <6> <7> <8> <9> <10> gen * mathb
<10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
}{}
%% 山括弧がエンコードされてしまうようです...
%% 実際は、< → < の半角、> → > の半角です。
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}
\DeclareMathSymbol{\Sun} {0}{mathb}{"40} % U+2609
\DeclareMathSymbol{\Mercury} {0}{mathb}{"41} % U+263F
\DeclareMathSymbol{\Venus} {0}{mathb}{"42} % U+2640
\DeclareMathSymbol{\Earth} {0}{mathb}{"43} % U+1F728
\DeclareMathSymbol{\Mars} {0}{mathb}{"44} % U+2642
\DeclareMathSymbol{\Jupiter} {0}{mathb}{"45} % U+2643
\DeclareMathSymbol{\Saturn} {0}{mathb}{"46} % U+2644
\DeclareMathSymbol{\Uranus} {0}{mathb}{"47} % U+26E2
\DeclareMathSymbol{\Neptune} {0}{mathb}{"48} % U+2646
\DeclareMathSymbol{\Pluto} {0}{mathb}{"49} % U+2647
\DeclareMathSymbol{\varEarth} {0}{mathb}{"4A} % U+2641
\DeclareMathSymbol{\Leftmoon} {0}{mathb}{"4B} % U+263D
\DeclareMathSymbol{\Rightmoon} {0}{mathb}{"4C} % U+263E
\DeclareMathSymbol{\Fullmoon} {0}{mathb}{"4D} % U+1F315
\DeclareMathSymbol{\Newmoon} {0}{mathb}{"4E} % U+1F311
%%
\begin{document}
\begin{equation}
\Sun \Mercury \Venus \Earth \Mars \Jupiter \Saturn \Uranus \Neptune
\Pluto \varEarth \Leftmoon \Rightmoon \Fullmoon \Newmoon
\end{equation}
\end{document}
テキスト情報をそれぞれの記号に対応する Unicode に変更する方法はありますか?
↓ コピペしたテキスト情報で PDF 内を検索した様子 ↓