そのファイルの中に pbpaste なる文字列が入っているのだと想定しています。
VSCODE で実行する前に latexmk で PDF が作成されるか否か以下のコマンドで確かめておくことをお勧めします。現在の設定ではこの段階でエラーになると思います。
latexmk Untitled-1.tex
今回 latexmk を利用する環境を作成して検証したファイルなどを示しておきますので参考にしてください。
■検証用のテストファイル $HOME/Untitled-1.tex
\documentclass{jsarticle}
\begin{document}
ヤッホ
\end{document}
■ $HOME/.latexmkrc
#!/usr/bin/env perl
$latex = 'platex -synctex=1 -halt-on-error';
$bibtex = 'pbibtex -kanji=utf8';
$dvipdf = 'dvipdfmx %O -o %D %S';
$max_repeat = 5;
$pdf_mode = 3;
$pdf_update_method = 4;
■ LateX Works の setting.json (必要な latexmk のみ)
{
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"%DOC%"
]
},
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
}
}
{
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"%DOC%"
]
},
],
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
],
"files.autoSave": "afterDelay",
}
見せていただいた .latexmkrc も特に問題はないようですが、お試しにいなったファイルと同じフォルダ(あるいはディレクトリ)に .latexmkrc などは置いていないですよね。
それと提示された .latexmkrc をコマンド実行すると問題なくpdf はできるのですが、vscode の 保存時の動きに連動させると途中でエラーになってしまいます。
これから、出勤なので対応は夜になります
VScodeのバージョンは 1.44.2
OSのバージョンは10.15.2
です。
- latexmk のバージョンが違っていたのでこちらも tlmgtr でアップしたところ同じになりました。
ヤッホー
が出ているところを見ると2020年 04月 21日(火曜日) 23:33 - 和田 勇 の投稿
の内容を使われているのですね。- この日のものは次のふたつの問題がありました
- settings.json を添付する際、重要な行までも削除してしまった
- 坂田さんが回答された
.latexmkrc
はuplatex
- 和田は
platex
で検証していた
- その改定版を
2020年 04月 22日(水曜日) 23:57 - 和田 勇 の投稿
として投稿しました。 - この Untitled-1.tex は、4/21 の不具合を直し、坂田さんが使われている uplatex に環境を調整してテストしたものをインデントなどが崩れないように添付ファイルとして投稿 ということなので 4/22 投稿の Untitled-1.tex を参考にして欲しいのですが。
とは言え、どうやら
.latexmkrc
の設定が私が投稿したものと違っているようですね。> Rule 'pdflatex': The following rules & subrules became out-of-date: 'pdflatex'
と表示されているところからを見ると
- 少なくとも
.latexmkrc
ファイルは存在する - $pdf_mode = 1 になっているので
pdflatex
を使う設定だと解釈されている - しかしタイプセットしようとしているファイルの documentclass が処理できなくエラーになっている
- 少なくとも
と長々書きましたが
- 4/22 の和田の投稿した Untiled-1.tex に記載した
.latexmkrc
を使って試していただくか- もしこちらの方法でというなら VScode だけでなく以下を試していただき結果を教えていただけると不具合点が発見しやすくなる場合もあります。
- Terminal.app で
Desktop/名称未設定フォルダ
に移動して latexmk -c Untitled-1
latexmk Untitled-1
- Terminal.app で
- もしこちらの方法でというなら VScode だけでなく以下を試していただき結果を教えていただけると不具合点が発見しやすくなる場合もあります。
- 以下の情報を提示して下さい
- 現在のホームディレクトリにある
.latexmkrc
- 坂田さんがタイプセットされようとしている代表的な latex のソース
- まだないと言われるのでしたらタイプセットしようとしたファイル
- → 提供していただいと情報をもとに .latexmkrc を調整してどうやったらエラーがなく処理できるか方法を検討したいと思います。
- 現在のホームディレクトリにある
- 4/22 の和田の投稿した Untiled-1.tex に記載した
Last login: Fri Apr 24 23:33:26 on ttys000
?@?noMacBook ~ % Desktop/卒論
zsh: permission denied: Desktop/卒論
?@?noMacBook ~ % latexmk -c Untitled-1
Rc files read:
NONE
Latexmk: This is Latexmk, John Collins, 17 Apr. 2020, version: 4.69a.
------------
Latexmk: Could not find file 'Untitled-1'.
-- Use the -f option to force complete processing.
?@?noMacBook ~ % latexmk Untitled-1
Rc files read:
NONE
Latexmk: This is Latexmk, John Collins, 17 Apr. 2020, version: 4.69a.
------------
Latexmk: Could not find file 'Untitled-1'.
-- Use the -f option to force complete processing.
?@?noMacBook ~ %
NONE と表示されているところ見るとホームディレクトリに .latexmkrc は存在しないあるいは見え無い状態のようですね
坂田さんのレポートその1
Rc files read:
NONE
Latexmk: This is Latexmk, John Collins, 17 Apr. 2020, version: 4.69a.
Rule 'pdflatex': The following rules & subrules became out-of-date:
'pdflatex'
- なぜ pdflatexが使われるかわかりませんが
- もしかしたら VScode の拡張パッケージの影響かもしれません。
- 和田は LaTeX Workshop 8.8.0 を使っています。坂田さんはどんな拡張パッケージを利用されていますか?
- 拡張パッケージによっては
.latexmkrc
が存在し無い、見え無いなど利用できない時は pdflatex に fallback するのかもしれません。
坂田さんのレポートその2
zsh: permission denied: Desktop/卒論
Latexmk: Could not find file 'Untitled-1'.
もしかしたら以下で解決できるかもしれませんが
macOS zsh: permission denied:
で検索して見て下さいhttps://djeeeno.blogspot.com/2019/12/20191227-01-wireshark-permission-denied.html
番外
ターミナルでプロプトに自分の名前が出ているのをインターネットに晒したくない時 (bash, zsh)
PS1="ありゃ % "
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
:
ありゃ $ /usr/libexec/path_helper -s
Wireshark: Permission denied
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/djeeno/google-cloud-sdk/bin:/Users/djeeno/.asdf/shims:/Users/djeeno/.asdf/bin:/Users/djeeno/.asdf/installs/golang/1.13.5/go/bin:/Users/djeeno/go/bin"; export PATH;
zsh: command not found: $
zsh: command not found: Wireshark:
ありゃ
名前の伏せ方を教えていただきありがとうございます。
質問は、「ありますけど」っていうこと?
検証はしてい無いけど VScode で latexmk と連携する際、坂田さんがお使いの環境では zsh を介在するように動くのではと思いす。
つまりzsh を介して latexmk を動かそうとしたが、
→ zsh のアクセス権限が不足していて $HOME/.latexmkrc を読めない
→ それを検知して pdflatex へfallback して無理やりコンパイル試みたけど失敗
という状況なので
zsh の権限を直す・調整するのが第一というのが現在の和田の見解です。
が、申し訳ないが私は基本 bash なので catalina からデフォルトの shell が zsh になったのになぜ今回の事象が発生するのか現在頭を悩ませています。
ですので インターネット検索してねとお願いしたつもりです。
坂田さんの 2020年 04月 25日(土曜日) 01:44 投稿の記事でを見直ししました。
結論から言えば zsh のアクセス権の懸念は無くなりました。
- zsh: permission denied: Desktop/卒論 は Desktop/卒論 といコマンドを実行した
- Desktop/卒論 に移動したい場合は cd Desktop/卒論 というように cd というコマンドを前置して使って下さい
- 移動できたか否かは以下のようなコマンドで確認可能です。
- pwd ... 今どのディレクトリにいるか表示してくれます
- ls ....... 今いるディレクトリに存在するファイルやディレクトリを表示してくれます
Rc files read: NONE はホームディレクトリに .latexmlrc が存在していないようです
.latexmkrc のアクセス権を全て剥奪した場合でも以下のようなメッセ字を表示します。
- Latexmk: I cannot read the rc-file '/Users/i-wada/.latexmkrc'
- 存在するか否かは以下のコマンドを実行すれば判明します
- cat ~/.latexmkrc #左の赤い部分だけをコピペして実行して下さい
存在しなければ以下のように表示されます
cat: /Users/ユーザ名/.latexmkrc: No such file or directory
- Latexmk: Could not find file 'Untitled-1'. は最初に行ったコマンドで移動したつもりで実行しているのでファイルはないと言われても当然です。
ということでまずはホームディレクトリに .latexmkrc が存在するか再確認をお願いします。 ちょっと難しいコマンドですが赤字のところだけコピペして結果を見せて下さい
ホームディレクトリに移動
cd
隠しファイルから tex に関係しそうなものを抜き出す
find . -maxdepth 1 -name '.*' | grep -i tex
私の環境では今回の検証用も含んでいるので以下のように表示されます。
./.CFUserTextEncoding
./.latexmkrc.wada
./.latexmkrc
./.texlive2019
ホームディレクトリに .latexmkrc を配置
- 次のステップは .latexmrc を作ることなですが、もう作成されましたか?作り方がわからなければ、今まで坂田さんとやりとりして検証に利用してきた .latexmkrc をこの投稿に添付しますのでダウンロードしてホームディレクトリに配置して下さい。
- 2020年 04月 24日(金曜日) 23:59 に投稿された時 .latexmkrc を設置されたとのことでしたが、それでもホームディレクトリやコンパイルを試みた /Users/?/Desktop/卒論 には存在しなかったようなのでダブルチェックお願いします。
- latexmk はホームディレクトリとコンパイルするディレクトリの両方の .latexmkrc を読み込もうとし 読み込んだファイル名 あるいは どちらもなかったら NONE を表示します。 ですので以降でテストする際、このことを覚えておいて下さい。
latexmk が ~/.latexmkrc を取り込むかテスト
2020年 04月 24日(金曜日) 23:59 に投稿された時の状況からテスト用のファイルは ~/Desktop/卒論/卒論.tex だとしてコマンド例を記述します。
コマンドは % の行で % を含まないところをコピペするなどして利用して下さい。
テスト用ファイルがおいてあるディレクトリに移動
% cd ~/Desktop/卒論
テスト用ファイルの確認
% ls
卒論.tex
latexmkrc でコンパイル 確認ポイントは Rc files read: の次の行が NONE 出ないこと
% latexmk 卒論.tex
Rc files read:
/Users/i-wada/.latexmkrc
どんなファイルが作成されているか 卒論.pdf が作成されていること
% ls
卒論.aux 卒論.dvi 卒論.fdb_latexmk 卒論.fls 卒論.log 卒論.pdf 卒論.synctex.gz 卒論.tex 卒論.toc
PDF を表示してみる
% open -a Preview 卒論.pdf
あるいは
% open 卒論.pdf
三つ目の項目でNONEが出ないもののエラーが出てしまうようです。
ホームディレクトリ に配置というのは.latexmkcファイルを卒論フォルダ内に配置するということなのでしょうか?
ありゃ cd ~/Desktop/卒論
ありゃ ls
卒論.aux 卒論.log
卒論.fdb_latexmk 卒論.tex
卒論.fls 名称未設定.code-workspace
ありゃ latexmk 卒論.tex
Unquoted string "book" may clash with future reserved word at (eval 7) line 1, <GEN0> chunk 1.
Latexmk: Initialization file '.latexmkrc' gave an error:
syntax error at (eval 7) line 1, at EOF
Latexmk: Stopping because of problem with rc file
ありゃ ls
卒論.aux 卒論.log
卒論.fdb_latexmk 卒論.tex
卒論.fls 名称未設定.code-workspace
ありゃ open -a Preview 卒論.pdf
The file /Users/?/Desktop/卒論/卒論.pdf does not exist.
ありゃ
- 確かにNONEが出なければと書きましたが、Rc files read: が表示されていないし、表示されている内容から Unquated Clash error Stopping などの文字列が表示されているので設定がおかしいと判断して下さい。
表示された内容から判断できませんか?
Unquoted string "book" may clash with future reserved word at (eval 7) line 1, chunk 1.
Latexmk: Initialization file '.latexmkrc' gave an error:
syntax error at (eval 7) line 1, at EOF
Latexmk: Stopping because of problem with rc file
上記メッセージの概要は .latexmkrc に記述ミスあり処理できません
- 覚えてますか? latexmk はホームディレクトリと今回のカレントディレクトリ ~/Desktop/卒論 の .latexmkrc を読み込もうとします。
- おそらく後者だと思いますが ~/Desktop/卒論/.latexmkrc の 1行目 にbookらしき latexmk が理解できない文字列がありクラッシュしたのでStop
ということでこの時点で行うべき作業はホームディレクトリとカレントディレクトリの .latexmkrc の確認です。昨日の find コマンドを応用し以下のコマンドを実行します。(氏名情報などを表示されたくないことなのでいったんホームディレクトリに移動して行います)
% cd
% find . Desktop/卒論 -maxdepth 1 -name '.*' | grep tex
./.latexmkrc
Desktop/卒論/.latexmkrc
上記のように Desktop/卒論/.latexmkrc が表示されたら今は不要ですので以下のコマンドで削除
% rm ~/Desktop/卒論/.latexmkrc
- ./.latexmkrc だけであれば後段に記述してある方法を参考にその内容を VScode で正しく修正して下さい
Desktop/卒論 ディレクトリに移動して latexmkrc 卒論 でタイプセットの再開です
- まず 卒論.tex をタイプセットした際に作成される不要なファイルのクリーニング
副次効果として読み込んだ .latexmkrc が表示されるので次のような三行が表示されれば良い
% cd ~/Desktop/卒論 % latexmk -C 卒論.tex Rc files read: /Users/i-wada/.latexmkrc Latexmk: This is Latexmk, John Collins, 17 Apr. 2020, version: 4.69a.
- ダブルチェックするなら ls コマンドで 卒論.tex 以外の 卒論関連以外のファイルが存在しないこと
準備が整ったので以下のコマンドを実行
% latexmk 卒論.tex
- Unquoted string "book" may clash 云々 が表示されたら ~/.latexmkrc を今までのやりとりを見直しして修正しましょう。幸い VScode をお使いになっているので隠しファイルの表示操作をしてファイルを開いて編集・保存して下さい。
それでもエラーを回避できなければ以下のコマンドで ~/.latexmkrc をもう一度見せて下さい。
% cat ~/.latexmkrc
Q1 [NONEが表示される場合の対処法はどのようにすればいいのでしょうか?]
以前の回答で 「ホームディレクトリに .latexmkrc は存在しないあるいは見え無い状態のようですね」 と回答して頂いているのですがアプリケーション内に.latexmkrcは半透明の状態で存在しています。
ファイル名のスペルはあっていますか?
2020年 04月 25日(土曜日) 19:41 - 坂田 銀時 の投稿 の回答では tex の文字列を含む隠しファイル存在していない となっている報告されています。
この状態では.latexmkrcは存在しないものとして判断されてしまうのでしょうか?
ではもう少し広く探すようコマンドオプションを調整しホームディレクトリと Desktop/卒論 ディレクトリ直下にある tex の文字列を含むファイルを探すコマンドを示しますので表示結果を教えて下さい。(この処理だけでははユーザ名などは隠せませんので適宜編集して下さい)
% cd % find . Desktop/卒論 -maxdepth 1 | grep -i tex | xargs ls -l
検証のために設定している私の結果も参考に示しておきます。
-r-------- 1 i-wada staff 7 12 21 11:27 ./.CFUserTextEncoding -rw-r--r-- 1 i-wada staff 451 4 29 08:58 ./.latexmkrc ← ホームディレクトリのもの -rw-r--r-- 1 i-wada staff 451 4 22 22:58 ./.latexmkrc.sakata -rw-r--r-- 1 i-wada staff 366 4 22 22:37 ./.latexmkrc.wada -rw-r--r-- 1 i-wada staff 0 4 29 09:18 ./LATEXMKRC 今回のテストのため -rw-r--r-- 1 i-wada staff 0 4 29 09:02 Desktop/卒論/.LATEXMKRC ← Desktop/卒論 で作業時に参照 -rw-r--r-- 1 i-wada staff 695 4 25 20:51 Desktop/卒論/卒論.tex
Q2 [ホームディレクトリ とはアプリケーションも含むのでしょうか?]
- アプリケーションとは latexmk のことかな? VScode なのかな?いずれにしても含みません
念のためホームディレクトリは
- コンピュータにログイン・ログオンした時にそのユーザのベースとなる場所
一般に HOME という環境変数に自動で設定されていますので以下のように確認できます。
% echo $HOME
/Users/i-wada
Q2-2 つまり前述したようにアプリケーション内に.latexmkrc配置した場合これはホームディレクトリ に配置したということになるのでしょうか?
- この質問が出るということはアプリケーションとは「Desktop/卒論」と理解されているのかな?
- そうであれば、私はそれを「カレントディレクトリ」と称しています。
- そうであれば2、Q1 の結果で Desktop/卒論/.latexmkrc が存在すれば意図されたことだと思います。
- 予備知識 ... 通常 macOS はファイル名の大文字小文字を同一視していますので .LATEXMKRC でも .LaTeXMKrc でも .latexmkrc として処理されます
Q3 [.latexmkrcファイルと~/.latexmkrcは異なるものなのでしょうか?]
再掲ですが、latexmk はまずホームディレクトリに .latexmkrc を読みにゆきあれば読み込み、その後カレントディレクトリのを読み込みます。 簡単にその動きがわかるのは以下のコマンドを実行した時です。この情報もできれば教えて下さい。
% cd ~/Desktop/卒論/ % latexmk -C 卒論.tex Rc files read: /Users/i-wada/.latexmkrc ← これがホームディレクトリのを読み込んだという証拠 .latexmkrc ← こっちはカレントディレクトリ Latexmk: This is Latexmk, John Collins, 17 Apr. 2020, version: 4.69a.
Q3-2 2020年 04月 26日(日曜日)の和田さんの返答内の文末に「それでもエラーを回避できなければ以下のコマンドで ~/.latexmkrc をもう一度見せて下さい。」とありますがこの二つは違うものなのでしょうか
質問の直接の答えにはなっていないかもしれませんが、どうして二つ読み込もうとしているか説明します。
- ホームディレクトリの .latexmkrc
- ユーザがどこで作業しても共通になる設定
- カレントディレクトリの .latexmkrc
- 一般には一つのディレクトリで複数の書式(主に documentclass )やタイプセット方法は一種類にした方がわかりやすいが、他の作業ディレクトリとは異なる場合、その差分などを追加設定するため。
とういことで回答は 同じであっても良い し 異なっても良い ですが、カレントディレクトリのものがあれば、追加設定できたり、置き換えたりすることが可能になります。
- ホームディレクトリの .latexmkrc
私の現在の見解では ホームディレクトリに .latexmkrc は存在しない と判断していますが Q1 の結果で存在が確認でき、 Q3 の latexmk -C 卒論.tex で読み込まないとすると macOS catalina のファイルアクセス制限とかも調べなければいけなくなりそうな感じがしています。