Windows10でTeX Live 2022のlatexmk 65485(4.79)を使っています。
見出し等のフォントを一部変更するため、変更するフォントを記載したmymap.mapをカレントディレクトリに置いてあります。
.latexmkrcにこのmapファイルを使用してPDFを作成するようにと
$dvipdf = 'dvipdfmx "-f mymap.map" -o %D %S';
を記述しました。
この状態でlatexmkにて処理するとPDFの作成まで行われるのですが、mymap.mapの内容が反映されていません。
dvipdfmx -f mymap.mapで処理すると期待通りのフォントが埋め込まれたPDFとなります。
以上から、latexmkにおけるdvipdfmxのオプションの記述を誤っていると思われますが、正しくはどのように記述すべきなのでしょうか。
× $dvipdf = 'dvipdfmx "-f mymap.map" -o %D %S';
○ $dvipdf = 'dvipdfmx -f mymap.map -o %D %S'; # 二重引用符を除去
コマンドプロンプトか Powershell のコンソールで実行される
以下のような警告メッセージが表示されていませんか?
Running 'dvipdfmx "-f mymap.map" -o "XXX.pdf" "XXX.dvi"'
------------
dvipdfmx:warning: Couldn't open font map file " mymap.map".
XXX.dvi -> XXX.pdf
上記のメッセージから推測すると空白のついた「 mymap.map」を
map ファイルとしてオープンしようとしています。
この動きから -fmymao.map でも良いようですが、
一般的には空白で分けた方が見やすく感じますので冒頭の回答です。
○ $dvipdf = 'dvipdfmx -f mymap.map -o %D %S'; # 二重引用符を除去
コマンドプロンプトか Powershell のコンソールで実行される
以下のような警告メッセージが表示されていませんか?
Running 'dvipdfmx "-f mymap.map" -o "XXX.pdf" "XXX.dvi"'
------------
dvipdfmx:warning: Couldn't open font map file " mymap.map".
XXX.dvi -> XXX.pdf
上記のメッセージから推測すると空白のついた「 mymap.map」を
map ファイルとしてオープンしようとしています。
この動きから -fmymao.map でも良いようですが、
一般的には空白で分けた方が見やすく感じますので冒頭の回答です。
では、以下の情報を提供してください。
1) latexmk を実行すると、以下のように読み込んだ .latexmkrc が表示されます
Rc files read:
ホームディレクトリ\.latexmkrc
.latexmkrc ← .latexmkrc と latexmkrc が両方あると .latexmkrc を読み込みます
表示された latexmk の読み込んだファイルをパスのわかる形で提供してくさい。
2)使用されている map ファイル
3).tex ファイル
これは 以下のものが含まれていれば良いです
\documentclass{使用されているもの}
フォントを変更するための最低限の usepackage などの設定
\begin{document}
フォントを変える記述
\end{document}
1) latexmk を実行すると、以下のように読み込んだ .latexmkrc が表示されます
Rc files read:
ホームディレクトリ\.latexmkrc
.latexmkrc ← .latexmkrc と latexmkrc が両方あると .latexmkrc を読み込みます
表示された latexmk の読み込んだファイルをパスのわかる形で提供してくさい。
2)使用されている map ファイル
3).tex ファイル
これは 以下のものが含まれていれば良いです
\documentclass{使用されているもの}
フォントを変更するための最低限の usepackage などの設定
\begin{document}
フォントを変える記述
\end{document}
# もうご覧になってらっしゃらないと思われますし、私自身は latexmk
# を使ったこともないので、自分でもでしゃばりだなとは思うのですが。
latexmk(version 4.79)のマニュアル(7 January 2023)を見てみま
すと、まず、Configuration/Initialization (rc) Files については:
------------------------------------------------------------
CONFIGURATION/INITIALIZATION (RC) FILES
Latexmk can be customized using initialization files, which are read at
startup in the following order:
1) The system RC file, if it exists. . . .
2) The user's RC file, if it exists. . . .
3) The RC file in the current working directory. This file can be
named either "latexmkrc" or ".latexmkrc", and the first of these to be
found is used, if any.
4) Any RC file(s) specified on the command line with the -r option.
------------------------------------------------------------
と説明されています。
また、$dvipdf の設定については、マニュアルと、latexmk.pl とを
見てみますと:
------------------------------------------------------------
LIST OF CONFIGURATION VARIABLES USABLE IN INITIALIZATION FILES
Default values are indicated in brackets.
$dvipdf ["dvipdf -dALLOWPSTRANSPARENCY %O %S %D"]
Command to convert .dvi to .pdf file. A common reconfiguration
is to use the dvipdfm command, which needs its arguments in a
different order:
$dvipdf = "dvipdfm %O -o %D %S";
------------------------------------------------------------
latexmk.pl
## Command to convert dvi file to pdf file directly.
# Use option -dALLOWPSTRANSPARENCY so that it works with documents
# using pstricks etc:
$dvipdf = 'dvipdf -dALLOWPSTRANSPARENCY %O %S %D';
# N.B. Standard dvipdf runs dvips and gs with their silent switch, so for
# standard dvipdf $dvipdf_silent_switch is unneeded, but innocuous.
# But dvipdfmx can be used instead, and it has a silent switch (-q).
# So implementing $dvipdf_silent_switch is useful.
------------------------------------------------------------
となっています。
(デフォルトは:
dvipdf -dALLOWPSTRANSPARENCY %O %S %D
となっているとのことですが、dvipdfm を使用する場合には:
dvipdfm %O -o %D %S
という順番に変更してください、と説明されています)
"Standard dvipdf runs dvips and gs with their silent switch"
ということなので "-dALLOWPSTRANSPARENCY" は gs 用のオプショ
ンみたいですが、%D、%O、%S については、それぞれ:
------------------------------------------------------------
FORMAT OF COMMAND SPECIFICATIONS
%D destination file (e.g., the name of the postscript file when
converting a dvi file to postscript).
%O options
%S source file (e.g., the name of the dvi file when converting a
.dvi file to ps).
------------------------------------------------------------
という意味とのことです。
# を使ったこともないので、自分でもでしゃばりだなとは思うのですが。
latexmk(version 4.79)のマニュアル(7 January 2023)を見てみま
すと、まず、Configuration/Initialization (rc) Files については:
------------------------------------------------------------
CONFIGURATION/INITIALIZATION (RC) FILES
Latexmk can be customized using initialization files, which are read at
startup in the following order:
1) The system RC file, if it exists. . . .
2) The user's RC file, if it exists. . . .
3) The RC file in the current working directory. This file can be
named either "latexmkrc" or ".latexmkrc", and the first of these to be
found is used, if any.
4) Any RC file(s) specified on the command line with the -r option.
------------------------------------------------------------
と説明されています。
また、$dvipdf の設定については、マニュアルと、latexmk.pl とを
見てみますと:
------------------------------------------------------------
LIST OF CONFIGURATION VARIABLES USABLE IN INITIALIZATION FILES
Default values are indicated in brackets.
$dvipdf ["dvipdf -dALLOWPSTRANSPARENCY %O %S %D"]
Command to convert .dvi to .pdf file. A common reconfiguration
is to use the dvipdfm command, which needs its arguments in a
different order:
$dvipdf = "dvipdfm %O -o %D %S";
------------------------------------------------------------
latexmk.pl
## Command to convert dvi file to pdf file directly.
# Use option -dALLOWPSTRANSPARENCY so that it works with documents
# using pstricks etc:
$dvipdf = 'dvipdf -dALLOWPSTRANSPARENCY %O %S %D';
# N.B. Standard dvipdf runs dvips and gs with their silent switch, so for
# standard dvipdf $dvipdf_silent_switch is unneeded, but innocuous.
# But dvipdfmx can be used instead, and it has a silent switch (-q).
# So implementing $dvipdf_silent_switch is useful.
------------------------------------------------------------
となっています。
(デフォルトは:
dvipdf -dALLOWPSTRANSPARENCY %O %S %D
となっているとのことですが、dvipdfm を使用する場合には:
dvipdfm %O -o %D %S
という順番に変更してください、と説明されています)
"Standard dvipdf runs dvips and gs with their silent switch"
ということなので "-dALLOWPSTRANSPARENCY" は gs 用のオプショ
ンみたいですが、%D、%O、%S については、それぞれ:
------------------------------------------------------------
FORMAT OF COMMAND SPECIFICATIONS
%D destination file (e.g., the name of the postscript file when
converting a dvi file to postscript).
%O options
%S source file (e.g., the name of the dvi file when converting a
.dvi file to ps).
------------------------------------------------------------
という意味とのことです。