\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8]{inputenc}
%\usepackage[utf8x]{inputenc}
\usepackage[prefernoncjk]{pxcjkcat}
\usepackage{extaccent,DeclareUnicode}
\usepackage[schinese,japanese]{pxbabel}
dvipdfmxで次のようなエラーがでます
Dvipdfmx:warning: Removed 18 null character(s) from fontname --> BousungEG-Light-GB
][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18]
dvipdfmx:warning: Glyph for CID 21934 missing in font "HiraginoSerif.ttc".
dvipdfmx:warning: Glyph missing in font. (CID=15255, code=0x7157)
設定方法などについてご教示をおねがいします
pdfになればいいのでコマンドで表記する方法でもかまいません
最近使えない文字が多くて困っています
いっそLuaTeXなどに移行すると使いやすくなるものでしょうか?
\documentclass{jlreq}
\usepackage[sourcehan]{pxchfon} % またはsourcehan-otcなど
\begin{document}
煐煑煒煓煔煕煖煗煘煙煚煛煜煝煞煟
\end{document}
LuaLaTeXなら
\documentclass{jlreq}
\usepackage[sourcehan]{luatexja-preset}
\begin{document}
煐煑煒煓煔煕煖煗煘煙煚煛煜煝煞煟
\end{document}
とすれば出ると思います(documentclassは適宜ご変更ください)。
\ajMaru \ajKakko \ajRoman を uplatex(2022) で使う方法
Table of Contents
1. 前提条件
texlive が 原の味フォントベースに伴い、 \ajMaru や \ajKakko の 表示可能なものがすくなったので、それを補うためヒラギノを併用する。
が、texlive 2017 が入っているので「システムを壊したくない意向あり」 故、TEXMFLOCAL や TEXMFHOME を壊さないというか、触らない でカレントに必要なものを配置する方法で検討する。
2. フォントマップの作成
2023年 03月 12日(日曜日) 09:03 - ut の投稿 を参考に 「otf-cj.*Hira.*.otf」で検索 すると otf-hiragino.map ないし otf-hiragino-pron.map に記述されているので、 前者から my-otf-hiragino.map へ以下のように抜き出すことにした
grep otf-cj $(kpsewhich otf-hiragino.map) > my-otf-hiragino.map
3. ヒラギノフォントを uplatex に認識させるために …
- フォントマップを用意しただけでは、uplatex はヒラギノフォントを認識してくれない。
- ヒラギノフォントは、「/System/Library/Fonts/ヒラギノ*」にある
- → カレントにシンボリックリンクをはることにする
ただし、 my-otf-hiragino.map の記述と合わせる必要があり以下のスクリプトを使用
ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W2.ttc' HiraKakuPro-W2.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W3.ttc' HiraKakuPro-W3.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W4.ttc' HiraKakuPro-W4.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W6.ttc' HiraKakuPro-W6.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W8.ttc' HiraKakuPro-W8.otf ln -s '/System/Library/Fonts/ヒラギノ明朝 ProN.ttc' HiraMinPro-W2.otf ln -s '/System/Library/Fonts/ヒラギノ明朝 ProN.ttc' HiraMinPro-W3.otf ln -s '/System/Library/Fonts/ヒラギノ明朝 ProN.ttc' HiraMinPro-W6.otf
4. 検証用ソース
検証ようファアイル 2023-03-10.tex の中身は以下の通り。
\documentclass[uplatex]{jsarticle} \usepackage[multi]{otf} \pagestyle{empty} % \ajKakko を 0 から 100 まで対応するため原の味+ヒラギノのテストなので % 以下の文字は今回は対象外 % 污 6c61 % 煔 7154 % 煘 7158 % 煛 715b % 煝 715d % 煟 715f \begin{document} \par 污 6c61 \par 煐 7150 煑 7151 煒 7152 煓 7153 煔 7154 煕 7155 煖 7156 煗 7157 \par 煘 7158 煙 7159 煚 715a 煛 715b 煜 715c 煝 715d 煞 715e 煟 715f \noindent \newcount\K \newcount\J \K=0 \J=0 \par \loop\ifnum\K<101 % ( \number\K ... \ajMaru{\number\K} | \ajKakko{\number\K} | \ajRoman{\number\K}) \advance\K by1% \advance\J by1% \ifnum\J>2\J=0\par\fi \repeat % \end{document}
5. 検証方法
ptex2pdf -l -u -od "-v -f my-otf-hiragino.map " 2023-03-10
- dvipdfmx 用の「-od」パラメータの説明など
「-v」 … 処理時に読み込むファイルなどの情報や使用した以下のようなファイル情報を表示するために用いた
... ... :./my-otf-hiragino.map> ... ... HaranoAjiMincho-Regular.otf[CIDFontType0]:HiraMinPro-W3.otf[CIDFontType0] ...
- 「-f my-otf-hiragino.map」 … 追加フォントマップ
Created: 2023-03-13 月 08:51
grep otf-cj $(kpsewhich otf-hiragino.map) > my-otf-hiragino.map
ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W2.ttc' HiraKakuPro-W2.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W3.ttc' HiraKakuPro-W3.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W4.ttc' HiraKakuPro-W4.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W6.ttc' HiraKakuPro-W6.otf ln -s '/System/Library/Fonts/ヒラギノ角ゴシック W8.ttc' HiraKakuPro-W8.otf
このマップファイルとシンボリックリンクの組み合わせだと、TTCファイル(.otf
の拡張子になりますが)の0番のフォントが使われることになるはずです。しかし、El Capitan/Sierra用の「正しいマップファイル」を見る感じでは(Pro・ProNどちらでも)0番以外のフォントが指定されているようです。
otf-hiragino-elcapitan.map(Pro版)
otf-hiragino-elcapitan-pron.map(ProN版)
自分はMacユーザではないので確認できないのですが、本当にこの組み合わせで大丈夫なのでしょうか?
前回は、/usr/local/texlive/texmf-local/ に書き込まない方針でしたが、
Z. R. さんが紹介してくれた URL や「TeX Wikiヒラギノフォント(*1)」から
「macOS High Sierra 以降に付属するヒラギノフォントのセットアップ 」
→「【LaTeX】macOS Big Sur + 美文書作成入門 第8版 の環境で ヒラギノフォント」(*2)
→「①「ヒラギノフォントパッチ」を適用する」のページに紹介されている
「[改訂第7版]LaTeX2e美文書作成入門 ヒラギノフォントパッチ」(*3)を参考に し
/usr/local/texlive/ の 2022 と texmf-local にせセットアップすることにしましや。
実際の作業は、最後の「 ヒラギノフォントパッチ」を使いセットアップして検証しました。
この作業を始める前に 2022 で latex が動作するよう PATH を設定しておいてくさい。
2017 の環境を温存させるための処置です。
フォントは /usr/local/texlive/texmf-local/fonts/truetype/cjk-gs-integrate/
に配置されます。
これらを利用して ut さんの提案されたように原の味とヒラギノを使うために追加で
指定するフォントマップは、パッチ作業で更新された kanjix.map(*4)
から grep などのコマンド(*5)で取り出し、わかりやすい名前で保存、利用してください。
取り出したマップ情報は Z. R. さんげ指摘された内容が反映されているものです。
検証は、前回回答したソースと、上記で kanjix.map から抜き出したマップファイル
を利用して確認しました。
(*1) https://texwiki.texjp.org/?%E3%83%92%E3%83%A9%E3%82%AE%E3%83%8E%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88
(*2) https://sasshi.me/archives/605
(*3) https://github.com/munepi/bibunsho7-patch
(*4) /usr/local/texlive/2022/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map
(*5) grep -i -e 'otf-c.*hira' /usr/local/texlive/2022/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map
ということだと思います。
\UTF{}のフォントの対応先を原ノ味、\aj~のフォントの対応先をヒラギノにすれば両立は可能と思います。
otfパッケージで UTF (あるいはUnicode) 指定と CID指定 (\aj~ はそれに相当) のフォントはそれぞれ個別に設定可能になっています。
私の手元にはヒラギノがないので実例を示すことが出来ません。すみません。
どのフォントがどのグリフを持っているのか、全容を知るのは簡単ではないです。
ある程度はネット上の情報検索でも可能ですが、ささっと正確な情報を得ることは困難と思います。
調べる方法はいくつかありますが、特に非漢字では実物でしか分からないことが多いと思います。
このあたりの事情は、商用フォントや商用DTPソフトでも同じと思います。
https://github.com/texjporg/ptex-fontmaps/blob/master/maps/hiragino/otf-hiragino.map
otfパッケージで原ノ味を使うmapファイル
https://github.com/texjporg/ptex-fontmaps/blob/master/maps/haranoaji/otf-haranoaji.map
がすでにあります。
Unicode指定のフォント(tfm または jfm)は otf-uj{ml,mr,mb,gr,gb,ge,mgr}{,n}-{h,v}
CID指定のフォント(tfm または jfm)は otf-cj{ml,mr,mb,gr,gb,ge,mgr}-{h,v}
なので、それらを参考に、
Unicode指定を原ノ味、CID指定をヒラギノに割り当てたmapファイルを作成し、(例えば hira-hara.map)
dvipdfmx -f hira-hara.map hoge.dvi
とすればよいでしょう。
utさんがいろいろ実例を挙げていらっしゃいました。大体同じことだと思います。
uplatex の基本的なフォント upjisr-h.tfm でも、結び付けられるフォントが U+7151 を含んでいれば出力できます。
最近の TeX Live では、HaranoAji フォントが標準のフォントになっており U+7151 を含んでいるので標準的な方法で出るはずです。
U+7151 は AdobeJapan1-6 に含まれているようなので、AJ1-6 対応フォントならいずれでも出るはずです。
私のところ(TeX Live 2019/Debian))は、HaranoAjiが標準になる前の環境ですが、以下で出ました。
u7151test.tex ::
\documentclass[uplatex]{jsarticle}
\begin{document}
煑
\kchar"7151
\end{document}
uplatex u7151test.tex
dvipdfmx -f uptex-haranoaji.map u7151test.dvi
さっそく試しましたがうまくいきません
HaranoAjiGothic-Bold.otf
HaranoAjiGothic-ExtraLight.otf
HaranoAjiGothic-Heavy.otf
HaranoAjiGothic-Light.otf
HaranoAjiGothic-Medium.otf
HaranoAjiGothic-Normal.otf
HaranoAjiGothic-Regular.otf
HaranoAjiMincho-Bold.otf
HaranoAjiMincho-ExtraLight.otf
HaranoAjiMincho-Heavy.otf
HaranoAjiMincho-Light.otf
HaranoAjiMincho-Medium.otf
HaranoAjiMincho-Regular.otf
HaranoAjiMincho-SemiBold.otf
uptex-haranoaji-04.map
uptex-haranoaji.map
uptex-ko-haranoaji.map
uptex-sc-haranoaji.map
を作業ディレクトリに置いて、U+7157を使いたいので
\documentclass[uplatex]{jsarticle}
\begin{document}
煑
污%U+7157
\end{document}
というファイルをhira.texで保存してコンパイルして、
dvipdfmx -f uptex-haranoaji.map hira.dvi
としたところ
「煑」は正常に表示されるのですが、「污」はバツ印の四角形になってしまいます
エラーメッセージは:
bash-3.2$ dvipdfmx -f uptex-haranoaji.map hira.dvi
dvipdfmx:warning: Invalid char in fontmap line: d
dvipdfmx:warning: Invalid map record in fontmap line 9 from uptex-haranoaji.map.
dvipdfmx:warning: -- Ignore the current input buffer: hira.dvi -> hira.pdf
[1
dvipdfmx:warning: No character mapping available.
CMap name: UniJIS-UTF16-H
input str: <6c61> ]
3151 bytes written
です。問題点をご指摘いただければありがたいです
(1) U+7157 や U+6C61 が含まれているフォントについて
・ 実フォントに含まれていないグリフはそもそも出力できません
・ AJ1-3 対応フォントは Std、AJ1-5 対応は Pro、AJ1-6/AJ1-7 対応は Pr6
・ U+7157 は AJ1-6 の CID 21934 に当たります
・ U+6C61 は AJ1-7 にも含まれていません(多分)
%%Title: (UniJIS-UTF16-H Adobe Japan1 7)
...
<6c60> 2961
<6c62> 5384
...
<7157> 21934
...
・ U+7157 は 原ノ味には含まれています
以上から、U+7157 は、ヒラギノの Pr6 か、小塚の Pr6 か、原ノ味
なら、出力できそうです
(ダウンロード版のページをみると、ヒラギノは Pr6 はなくて Pr6N
のみかも)
でも、ptex-fontmaps を見ると、小塚の Pr6 や Pr6N 用の map は
ありますけれど、ヒラギノの Pr6 や Pr6N 用の map は見当たりま
せん
(2)otf パッケージの \ajKakko 等について
・ やはり、実フォントに含まれていないグリフは、出力できません
・ ヒラギノには (21)~(100) が含まれていましたけれど、原ノ味
には (20) までしか含まれていません
※ 原ノ味フォントとCID番号
2020年 04月 23日(木曜日) 18:53 - TONE Kozaburo の投稿
https://okumuralab.org/tex/mod/forum/discuss.php?d=2836#p16609
の 林さんのご投稿に添付されている "GlyphTable_CID_All.pdf"
には、原ノ味と、Ryumin-Light のグリフが AJ1-7 の CID 順に
並べられてられています。
(Ryumin-Light は非埋込なので、表示フォントが小塚 Pr6N かヒ
ラギノ Pro かで、表示されるグリフ数に違いがあると思います)
・ t tk さんのおっしゃるとおり、otf パッケージの map の対応
先を振り分ければ、原ノ味とヒラギノを混在させることは可能
です
・ 私の手元は W32TeX なので、kanji-config-updmap も使ったこ
とがないので、TeXLive の場合にどうしたらよいのかは分かり
ません(すいません)
・ 私の手元の、W32TeX だと、ptex-fontmaps の map をフォント
ごとにマージした map が収録されているので、それを少し書き
換えて試してみました
・ W32TeX の haranoaji.map は:
% (1) ptex-haranoaji.map
% (2) uptex-haranoaji.map
% (3) otf-haranoaji.map
% (4) otf-up-haranoaji.map
% (5) otf-cktx.map
をマージしたもので、hiragino.map は:
% (1) ptex-hiragino.map
% (2) uptex-hiragino.map
% (3) otf-hiragino.map
% (4) otf-up-hiragino.map
% (5) otf-cktx.map
をマージしたものなのですが、このうち、haranoaji.map の (3)
のところの CID のエントリを hiragino.map の (3) の CID の
エントリに置き換えた map を使ってみました
\documentclass[uplatex]{jsarticle}
\usepackage[multi]{otf}
\pagestyle{empty}
\begin{document}
煗
\UTFC{6c61}
\ajKakko{100}
\end{document}
otf-hiragino.map の中の:
% CID
otf-cjml-h Identity-H HiraMinPro-W2.otf
otf-cjml-v Identity-V HiraMinPro-W2.otf
otf-cjmr-h Identity-H HiraMinPro-W3.otf
otf-cjmr-v Identity-V HiraMinPro-W3.otf
otf-cjmb-h Identity-H HiraMinPro-W6.otf
otf-cjmb-v Identity-V HiraMinPro-W6.otf
otf-cjgr-h Identity-H HiraKakuPro-W3.otf
otf-cjgr-v Identity-V HiraKakuPro-W3.otf
otf-cjgb-h Identity-H HiraKakuPro-W6.otf
otf-cjgb-v Identity-V HiraKakuPro-W6.otf
otf-cjge-h Identity-H HiraKakuStd-W8.otf
otf-cjge-v Identity-V HiraKakuStd-W8.otf
otf-cjmgr-h Identity-H HiraMaruPro-W4.otf
otf-cjmgr-v Identity-V HiraMaruPro-W4.otf
というエントリを取り出して、これを例えば、otf-hiragino_cid.map
という名前で保存して、それで、原ノ味を埋め込む設定の状態で:
prompt> dvipdfmx -f otf-hiragino_cid.map dviname
とするとか、私の手元の場合には:
prompt> dvipdfmx -f haranoaji.map -f otf-hiragino_cid.map dviname
とすると、全体は原ノ味で、CID 指定の部分のみヒラギノにすると
いうのがうまくいきました。
emacsのシェルモードでさっそく試しましたところ、
作業ディレクトリにotfフォントを入れてmktexlsrなども走らせたにもかかわらず
なぜか
dvipdfmx:warning: >> This font is mapped to a physical font "HiraMinPro-W3.otf".
dvipdfmx:warning: >> Please check if kpathsea library can find this font: HiraMinPro-W3.otf
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
No output PDF file written.
がでてしまいます。なにか悪さをしている設定がありそうだからクリーンな環境を作ってやり直してみるべきかもしれません
いずれにせよありがとうございました
# 分かってはいるのですけれど。
先日、
> Re: uplatexでU+7157を使いたい
> 2023年 03月 11日(土曜日) 17:32 - ut の投稿
において、
> でも、ptex-fontmaps を見ると、小塚の Pr6 や Pr6N 用の map は
> ありますけれど、ヒラギノの Pr6 や Pr6N 用の map は見当たりま
> せん
と書きましたが、私は CTAN の ptex-fontmaps のページしか眺めて
いませんでした。でも、その README にはちゃんと:
Note about macOS
================
Due to frequent incompatible changes in font file names by Apple,
we don't provide macOS-specific map files in TeX Live. This also agrees
with the requirements that TeX Live includes only support for free
software. This package is split into two parts:
* ptex-fontmaps : which contains most of the files and scripts,
as well as support files
* ptex-fontmaps-macos : only the support (map) files for
macOS-specific fonts
と書かれていました。
ptex-fontmaps-macos も見なきゃならなかったのですね…。こちらでは:
・ hiragino-elcapitan
・ hiragino-elcapitan-pron
・ hiragino-highsierra
・ hiragino-highsierra-pron
・ toppanbunkyu-highsierra
・ toppanbunkyu-sierra
というフォルダに分けて、それぞれ用の map が配布されていました。
昨夜(2023年 03月 14日(火曜日) 00:22)の投稿の趣旨をもう少し
ちゃんと説明させてください:
私は Windows ユーザーなので、私の手元のヒラギノは「基本 6 書体
セット」の、「HiraMinPro-W3.otf」等です。
map ファイルについては、手元の W32TeX に収録されているものと、
CTAN の ptex-fontmaps を参照していました。
そのため:
Re: uplatexでU+7157を使いたい
2023年 03月 11日(土曜日) 17:32 - ut の投稿
Re: uplatexでU+7157を使いたい
2023年 03月 12日(日曜日) 09:03 - ut の投稿
では、otf-hiragino.map を元にテストをして、それで、うまくいき
ましたと申し上げ、また:
Re: uplatexでU+7157を使いたい
2023年 03月 13日(月曜日) 09:22 - ut の投稿
では、フォント名が HiraMinPro-W3.otf 等とは違っているように見
えますと申し上げてしまいました。
ところが、その後、Z. R. さんが:
Re: uplatexでU+7157を使いたい
2023年 03月 13日(月曜日) 23:04 - Z. R. の投稿
というご投稿をなさったのを拝見して、それで、ptex-fontmaps-macos
というのがあると気付きました。
ということは、私がこれまで otf-hiragino.map を元に申し上げて
いたことが、質問者の方のお手元では当てはまらないということ
です。
hiragino-highsierra フォルダの map を見ますと、フォント名の
指定はちゃんと(HiraMinPro-W3.otf 等ではなく):
:1:HiraginoSerif.ttc
等になっていました。
以上長々と申し訳ありません。