Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
返信数: 28
普段,自宅ではMacを使ってLaTeXのコードを書き,外出先ではwindows11のノートパソコンでLaTeXのコードを書いています。そのとき,両者のデータ共有とスマホからそのpdfを確認することを目的にOneDriveにデータを保存しています。

Macもwindowsもlatexmkを使ってLuaLaTeXでコンパイルするようにしたいのですがMacではコンパイルできwindowsではコンパイルできません。試しに保存場所をOneDriveからダウンロードに変えるとWindowsでもコンパイルできるようになりました。おそらく,OneDriveにファイルを保存したときパス上に日本語が含まれるのが原因だと思うのですがなんとかすることはできないのでしょうか。

なお,settings.jsonは,添付のようにしています。もし,おかしなところがあればご指摘いただけますと幸いです。

よろしくお願いします。
伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- Takashima Jun の投稿
vscode 日本語path などで検索してみた結果ですが、
"%DOC%"はフルパスを含むのに対して
"%DOCFILE%"はファイル名だけになるので大丈夫なはず。
Takashima Jun への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
Takashima Jun 様
ご返信ありがとうございます。

いただいたアドバイスを反映して,windowsのシステムロケールをUTF-8にしたところコンパイルが通るようになりました。
伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
Windows 11 で cp932 のままで
%USERPROFILE%\OneDrive\ドキュメント\test.tex を作成して
試してみましたが、問題なく PDF は作成できる様です。

ログを見ているとあちこちで「ドキュメント」の部分が
文字化け表示されますが、ビルド作業は行われています。

ファイルシステムの文字コードが気になるのであれば

Document を作成して バツバツプロジェクト のようなショートカット作成

にしてみてはいかがでしょうか。
動きを見ていると「シートカットのパス」は「通常のパス」
に置き換えている様なので。

また、%USERPROFILE% にノンアスキー文字が含まれているならば
C:\My-Document などとショートカットを貼る方法もあると思います。

さて、vscode などで latex ファイルのビルドを行うには、今回の場合

latexmk オプションなどなど ファイル名

を発行します。この latexmk を起動した時のパラメータ情報は、
latexmk が perl スクリプトなので、当該ディレクトリに
latexmkrc (テストなので .(dot) をつけない)を以下の様に
設置することでどのようなパラメータが渡ってきているか
確認可能です。

use Cwd;

print "DEBUG PWD " . Cwd::getcwd() . "\n";
while ( my( $index, $argc ) = each @ARGV ) {
print "DEBUG ARG[$index] = $argc\n";
}

参考になれば幸いです。
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿

和田様

ご返信ありがとうございます。そして返信が遅くなり申し訳ございません。

Takashima Jun様への返信でコンパイルが完全に成功したかのように書いていますが返信する時に検証したのとは別のファイルで検証するとエラーが出ながらもpdfが表示される状況になってしまいました。

さて,和田さんはWindows11でcp932のままで%USERPROFILE%\OneDrive\ドキュメント\test.texを作成して試されたということですが私がコンパイルしようとしたファイルは,およそ次のようなパスにあります(パスに個人情報が含まれるのでその部分を置換,usernameは,アスキー文字です,所属組織名は削除できません)。C:\Users\asciiusername\OneDrive - 所属組織名\2021\ほげ\ハンドブック\Ver.2\handbook\ハンドブックVer.2.tex

>それとlatexmkrc (テストなので .(dot) をつけない)を以下の様に設置することでどのようなパラメータが渡ってきているか確認可能です。・・・ とのことですがそれをどう確認するのか分かりませんでした。

乱文の返信となりますがよろしくお願いします。

伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
◆別のファイルで検証するとエラーが出ながらもpdfが表示される状況 云々
ログファイルを見ると原因がわかると思います。
あるいはシステムの文字コードを utf-8 にした影響かもしれません。


◆ vscode 内でコマンド発行された latexmk のパラメータなどの確認方法(添付画像を参考にしてください)
「表示」→「出力」と進み、ちょっとわかりにくいけど右側にプルダウンメニューがありますので
今回のケースだと「LaTeX Compiler」を選ぶと、cmd プロンプト実行時のように出力されたものが表示できます。
文字化けしたように表示されています。おそらく latexmk の中では単なるバイト列として
ファイル操作しているので問題なく処理できると考えています。
なお、その上に LaTeX workshop もありますのでそちらも参考にされると良いでしょう。

これらの情報で、先頭の問題の現象も掴めると良いのですが。
添付 スクリーンショット 2022-10-24 18.58.29.png
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿

和田様

再度のご返信ありがとうございます。

LaTeX Compilerの出力を添付させていただきます。

そして,問題が発生するファイルと同じディレクトリで和田さんが検証されたのと同じようなtexファイルをコンパイルしたところ問題なく完了しました。

また,問題が発生するファイルの保存場所をOneDriveからダウンロードに変えるとやはりコンパイルできるようになりました。

問題となるファイルは,ファイルはほかのファイルをincludeしたりしているのでそういったことが関係しているのかもしれませんが(そのファイルを公開出来たらいいのですがかなり個人的な内容になるので...)。

またもや乱文での返信になってしまったように思いますがよろしくお願いします。

伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
◆ 「問題となるファイルは,ファイルはほかのファイルをincludeしたりしているのでそういったことが関係しているのかもしれませんが(」とのこと

latexmk はスクリプトとしては内部的にはファイルパスは、単なるバイト列の様ですが、
それから起動される子プロセスが関係すると S-JIS utf-8 の問題が生じる様ですね。
この辺がクリアできればエクスプリメンタルな utf-8(65001) 問題がクリアになりそうですね。
可能であれば、その辺の状況をレポートしていただければ、windows の full-utf-8 化に
貢献しそうだと思うのは考えすぎかな?

ということで、TeXlive の発展のため、Windows の full-utf-8 化のためにも
可能な限り、情報を公開していただけると助かります。
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿

和田様

「問題となるファイルは,ファイルはほかのファイルをincludeしたりしているのでそういったことが関係しているのかもしれませんが...」というように予想しておりましたがふと思い立って以下のような簡単なソースに変更してコンパイルをしてみたところ問題のファイルと同様にエラーが表示されるがpdfが表示されるという状態になります。ただ,これも別のディレクトリに移動するとエラー無くコンパイルが完了しました。

\documentclass[paper=a4,fontsize=12pt,head_space=20mm,foot_space=20mm,line_length=180mm,book,openany]{jlreq}
\usepackage{hanb}
\begin{document}
おはようございます。

こんにちは。

こんばんは。
\end{document}

一連のファイル等を含めたものをzipファイルで添付させていただきます(問題となる元のファイルを添付することも考えましたが内容が多く,一部私以外の個人情報が含まれるので勝手ながら控えさせていただきまました)。

よろしくお願いします。

P.S. 最初の投稿で空のzipファイルを投稿してしまいました。申し訳ございません。

伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
昨夜の検証時、もっと分析すべきだと反省

さて、「エラーになるけどPDF ができている」に関してですが、
昨夜のログを再度眺めたところ
相互参照を行なっているので、何度か lualatex を起動しているが
相互参照問題が解決できていないためにエラーになっているように
思えます。

まずとりあえずコンパイルして pdf 作ってみる

Running 'lualatex -synctex=1 -interaction=nonstopmode -file-line-error -recorder "./ハンドブックVer.2.tex"'
LaTeX Warning: Citation `10029838636' on page 4 undefined on input line 33.
LaTeX Warning: Reference `eq:rpm' on page 5 undefined on input line 21.
LaTeX Warning: There were undefined references.
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
Output written on ハンドブックVer.2.pdf (7 pages, 358836 bytes).
Latexmk: Log file says output to 'ハンドブックVer.2.pdf'

相互参照されている箇所があるので、も一回コンパイル

Running 'lualatex -synctex=1 -interaction=nonstopmode -file-line-error -recorder "./ハンドブックVer.2.tex"'
LaTeX Warning: Citation `10029838636' on page 4 undefined on input line 33.
LaTeX Warning: There were undefined references.
Output written on ハンドブックVer.2.pdf (7 pages, 359668 bytes).

pdf は作ったけどまだ相互参照に問題ありエラーに

Failure to make 'ハンドブックVer.2.pdf'
Latexmk: Log file says output to 'ハンドブックVer.2.pdf'
Latex failed to resolve 1 citation(s)
lualatex: failed to create output file

C:\texlive\2022\bin\win64\runscript.tlu:915: command failed with exit code 12:

上記ファイルの 915 行目は 「 local ret = assert(os.spawn(ARGV))」となっているので
2回目のコンパイルがエラーと判定されているのだと思います。

ですので、お試しのソースに \ref{eq:rpm} を入れるとエラーになると思います。

IDE だとなんとなくうまくいっているように思えますが、ログをチェックする癖をつけると良いと思います。

ちょっと専門的になりますが、この手のものを検出するとき ripgrep (コマンドは rg) を
使うと思わぬものを見つけることが可能です。

今回は、以下のようなコマンドで調べました。

rg -e Citation -e Running -e Warning -e exit -e failed -e 2.pdf

ripgrep は mac では homebrew などで、windows は chocoletty とか scoop で導入できます。
以上、参考までに
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
和田様

ご返信ありがとうございます。

>相互参照問題が解決できていないためにエラーになっているように思えます。
とのことですが別ディレクトリに移動したときエラーが出ずpdfが表示される(画面上に赤い警告のポップアップが表示されない)。
さらにhttps://okumuralab.org/tex/mod/forum/discuss.php?d=3458#p21071にあるように相互参照していないものでもエラーが出る(画面上に赤い警告のポップアップが表示される)。

そのため,保存場所に問題があるのではないかと思っています。私の浅い知識からの発言ですのでお気を悪くされたら申し訳ございません。
伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- Takashima Jun の投稿
実際の検証なしに解決にならないことを述べた手前、検証したことについて
参考になるように述べておきます。

latexmk.pl について
設定ファイル latexmkrc などの位置を確定するために、 abs_pathを使用して
起動ディレクトリの存在しているpathを探索している。
これがtexliveやstrawbery Perlなどの実装でCP932に正しく対応していないので
「ソ表構」など5cをsjisの2バイト目に含むpathで実行できない。
カレントディレクトリを問題のないpathに設定した場合には、絶対pathで対象ファイル
を指定することになるが、「ファイルが見つかりません」とopenに失敗する。
https://winperler01.com/article/post-1238
によるとActivePerl 5.16までの実装では問題なかったが現在では同じエラーとのこと。

CP932のままでの解決策は管理者としてmklink /D alphaname Kanjiname
等の形でシンボリックリンクを作成すること(ショートカットではない)

vs-codeはCP932で5cを含むディレクトリが含まれていても問題なく動作する。

ところで伊藤さん、「画面上に赤い警告のポップアップが表示される」というのは
なんなのか想像がつきませんが、具体的に中身を説明してください。
Takashima Jun への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
Takashima Jun 様

ご返信ありがとうございます。

>「画面上に赤い警告のポップアップが表示される」というのは
なんなのか想像がつきませんが、具体的に中身を説明してください。
分かりにくい表現となってしまい申し訳ございません。実際に表示されるものについて画像を添付させていただきます。この表示はありますが生成されるpdfに特に問題はありません。

また,Takashima様にして頂いた検証はシステムロケールがCP932の時だと思いますので現在のUTF-8から戻して検証してみたいと思います。的外れなことを言っていたらすみません。

>「ソ表構」など5cをsjisの2バイト目に含むpathで実行できない。
とのことですが私が実行しようとしているパスに[構」という文字が含まれていました。ただ,これは[構」という文字が含まれている別のpathで実行すると添付のようなエラーのポップアップ表示が出ないのでなぜだろうと思っています。





添付 221031.png
伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
Takashima さんがお忙しいそうなので。。。

◆ 「構」という文字が含まれている別のpathで実行すると添付のようなエラーのポップアップ表示が出ないのでなぜ

    「表示」→「出力」(Ctrl+Shift+U) で表示される情報に何か記録されていると推測しています。
  可能な範囲で Ctrl+Shift+U とお試しになったソースの提供お願いできませんか?

◆ UTF-8 → CP932 について

 「構」のほか、「\」(0x5c) を含む SJISの文字は以下を参考にしてください。
   https://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp

    CP932 配下で latexmk を使う限り、上記に示した文字をもつファイル名は
    ビルドできませんので lualatex かptex2pdf などを使うように settings.json
    のビルドルールを作り直す必要があると考えています。

#私のところでは、別の問題「latexmk から未初期化変数使用してるっていう警告メッセージ」
 が大量発生し、調査中。
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- Takashima Jun の投稿
伊藤さん
和田さんのおっしゃるように、
seetings.jsonを変更(追加)することを強くおすすめします。

"latex-workshop.latex.recipes": [ の直後(メニューのトップ)に
{
"name": "lualatex",
"tools": [
"lualatex",
]
},

"latex-workshop.latex.tools": [ のどこかに
{
"name": "LuaLaTeX",
"command": "lualatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},

latex-workshopがエラーとワーニングの区別なしに「通知」を出しているのも
困ったものですが、表示されている右下の一番下は
Retry と言っていて,相互参照のワーニングは2回目のコンパイルをすると解消することが
多いですよ、ということが含意されています。それ以外の場合はくり返しても無駄ですが。
その上に、Open compiler log というボタンがあってクリックするとログファイルが
開くわけですが、コンパイラがlatexmkの場合直接の原因を表示しません。
自分でmain.logのようなファイルを開く必要があるわけです。
ですから最初のうちはlatexmkを使わずに直接lualatexで処理することを強くおすすめします。

なお左パネルのTeXをクリックするとlatexworkshopのサイドパネルが開き、
そこの
Build LaTeX Projectからのrecipeの選択
View Log massagesからの二つのログを参照すること
が使い方の基本となります。
Takashima Jun への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
和田様,Takashima Jun様

ご返信ありがとうございます。

和田さん,Takashimaさんからご教授いただいたseetings.jsonを変更(追加)をしてlualatexを直接呼び出す(?)ようにしたところCP932,UTF-8の両方で赤いポップアップは,表示されずコンパイルが完了されました。(実はこの質問させていただく前は,ご教授いただいたようにlualatexを直接呼び出して(?)コンパイルをしていました。ですがMacではlatexmkを使っているのでなんとなく統一したいと思ったのとlatexmkは,必要な回数コンパイルしてくれるという便利さからWindowsでもlatexmkを使おうと思って切り替えました。そのとき,lualatexを直接呼び出す(?)設定は消してしまっていました。)

また,latexmkでは,CP932ではエラーで全く進めず,UTF-8では以前と同じですが赤いポップアップが表示されながらもpdfが表示されました。

それらについて,「表示」→「出力」(Ctrl+Shift+U) で表示される情報とlogファイル,自作のstyを添付させていただきます。

CP932,UTF-8とも試したソースは次のものです。
\documentclass[paper=a4,fontsize=12pt,head_space=20mm,foot_space=20mm,line_length=180mm,book,openany]{jlreq}
\usepackage{hanb}
\begin{document}
こんにちは。
\end{document}

よろしくお願いします。
伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- Takashima Jun の投稿
伊藤さん
latexmkでエラーが表示される理由は
Latexmk: Failure in processing file 'ハンドブックVer.2':
*LaTeX didn't generate the expected log file 'ハンドブックVer.2.log'
ということですが、これはlatexmkのバグといって良いのか
「ドブ」の濁点の正規化で濁点が独立コードのMac風の正規化と
windows風の濁点付きで一文字との相剋ではないかと推測します。
Takashima Jun への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
Takashima さんのと被らないようにします。

参考URL
- https://www.sanei-fcg.com/blog/2019/09/18/1239/
 MacOS環境からWindows環境へファイルを横断する際に発生する文字化け問題について
- https://takuya-1st.hatenablog.jp/entry/2021/10/22/041811
  macOS で作られたファイルの濁点半濁点問題。
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
Takashima Jun様,和田 勇様

ご返信ありがとうございます。

Takashimaさん,和田さんからいただいた情報を私なりに咀嚼するとwindowsとMacの根本的な違いのため,基本的にどうすることもできないので今回のファイルに関して,windows環境で赤いポップアップが出るのは我慢することにして,次からはなるべくファイル名に日本語を使わないようにしたいと思います。

そして,和田さんには,2022年 10月 25日(火曜日) 21:16の私の投稿において,浅い知識で失礼なことを申し上げましたこと,深くお詫び申し上げます。
伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
もう fix のようですが、ちょっとまとめてみました。

◆Windows CP932 の問題点
  CP932 で表される感じの2バイト目に「0x5c」(\)となる文字がいくつかある。
 →「”」を二重引用符で囲う場合「"\""」のように所謂エスケープ処理対象と考える
   プログラムがいくつか存在する
 また Windows のディレクトリー識別子は「\」あるいは「/」であることも遠因として
 ファイルパス上のバイト列にある「\」を「/」に強制変換するプログラムもいくつかある。

◆macOS のファイル名パスはUTF-8  であるが、linux 系 OS で持ちられている UTF-8
 とはちょっと違う。大きな違いは濁点半濁点。linux 系では例えば「ば」は「ば」であるが
 macOS では ぶっちゃけ「は」と「゛」を合わせて表示するので。macOS と他の OS で
 ファイル共有する場合は注意が必要である。

◆「私へのムニュムニュ‥」
 お気になさらず。face to face でないので、
 文字面だけなのでなかなか意図が伝わらないのはお互い様ですから。 
 私は、伊藤さんが、よく調べて回答されているの見ていて「Good Jobs 」と
 いつも応援しています。これからも、当フォーラムのサポートよろしくお願いします。

◆今回の教訓
 以下のような環境で運用する場合は latexmk の使用は極力避ける。
 - Windows で cp932 で日本語をファイル名パスとするような状況
 - macOS でファイル名パスに  UTF-8 ベースの日本語が含まれる場合
 なお、Takashima さんがおっしゃっているように、
 プリミティブなコマンドを cmd プロンプトのような端末コンソールで
 検証してから、latexmk や vscodde texworksなどの統合環境に取り込むべし。

 最後に、1日もは早く Windows のシステムロケールが
 65001 ベースな文字コードになりますように!!
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
和田様

今回の件に関してまとめていただきありがとうございました。私に限らず,同様のことに悩まれている方の助けになる大変有意義なものだと思います。

また,私のTeXフォーラムへの参加姿勢に対してお褒めの言葉をいただきありがとうございます。このフォーラムは,眺めているだけでもLaTeXにかぎらず勉強になることが多く,その中で私にもできそうな部分は,自分の勉強も兼ねて回答させていただいています。それに関しては,このフォーラムを維持・管理していただいている奥村先生に感謝しながら今後も続けていきたいと思っています。

この度は大変お世話になりました。
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 奥村 晴彦 の投稿

> macOS では ぶっちゃけ「は」と「゛」を合わせて表示するので

これは昔のHFS+ファイルシステムの話で、新しいAPFSではNFCのはずです:

% touch パンダ
% ls
パンダ
% ls | hexdump -C
00000000  e3 83 91 e3 83 b3 e3 83  80 0a                    |..........|
0000000a
奥村 晴彦 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
補足ありがとうございます。

では fish スクリプトでですが確認 。。。

  for t in ハ バ パ ゛ ゜
        printf "        %s %s\n" $t (printf $t | hexdump -C | xargs )
  end
        ハ 00000000 e3 83 8f |...| 00000003
        バ 00000000 e3 83 90 |...| 00000003
        パ 00000000 e3 83 91 |...| 00000003
        ゛ 00000000 e3 82 9b |...| 00000003
        ゜ 00000000 e3 82 9c |...| 00000003

なるほど、納得。

https://jp.minitool.com/data-recovery/apfs-vs-mac-os-extended-difference-and-format.html
などをみたら 10.13 以降からなんですね。

思えば、いつだったか忘れたのですが
emacs  の起動設定でその辺の対処していた設定を修正してたこと思い出しました。
また、それ用の変更スクリプトを使わなくなっていましたね。
和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- Takashima Jun の投稿
伊藤さん
和田さん
コードの問題ではなさそうということで、latexmkを
読んでみますと、logファイルのtimestampが起動時よりも
新しくないとlogファイルと認めていません。
普通ならば問題を起こすはずがありませんが、
https://groups.google.com/g/fastcopy/c/sUtLkva1yTo
によるとonedriveの同期において秒以下を切り捨てる場合があるとのこと。
私のonedriveでは再現しませんが、221025のファイルを見ると
(CP932の環境に展開してファイル名が化けたのは切ってあります)
Ver.2.aux 585 Archive 2022/10/25 16:35:48.000000
Ver.2.fls 33972 Archive 2022/10/25 16:35:48.000000
Ver.2.log 51213 Archive 2022/10/25 16:35:48.000000
Ver.2.pdf 8003 Archive 2022/10/25 16:35:48.000000
Ver.2.synctex.gz 2923 Archive 2022/10/25 16:35:48.000000
秒以下が切り揃えられています。
もしもこれが原因だとするとコンパイルに1秒以上かかるものなら
大丈夫ということになりますね。
Takashima Jun への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
奥村さんの指摘後、濁点半濁点以外の問題があるか思いあぐねています。

Takashimaさんのおっしゃるのは、
7032~7046行 あたりの
        sub test_gen_file {
          ...
          ...  ( get_mtime( $file ) >= $$Prun_time)) ..
          }
ですよね。どちらも、秒までのようです。

$$Prun_time .... time() で取得(秒未満は扱わないようです)
get_mtime( $file ) ... stat で取得した 9 番目の mtime で秒数

参考 URL
        https://perldoc.jp/func/time
        https://perldoc.jp/func/stat

何が原因なんだろう??

和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- Takashima Jun の投稿
和田さん
onedriveの仕様がwebdavということならFAT同様に更新時刻を2秒単位で管理していることになります。
2秒切り上げられるとtime()が秒単位でも過去と判定される可能性はあるかと。
latexmkrc にprint time()を記述してファイルのtimestampと比較してもらってはどうでしょうか?
Takashima Jun への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿

和田様,Takashima様

和田さんとTakashimaさんに役立つ情報か分かりませんが以下の点について検証してみました。

コンパイル時間の問題

2022年 11月 1日(火曜日) 21:22 - Takashima Jun の投稿の投稿において「もしもこれが原因だとするとコンパイルに1秒以上かかるものなら大丈夫ということになりますね。」ということで2022年 10月 31日(月曜日) 17:53 - 伊藤 直人 の投稿にあるソースでMeasure-Commandを使ってコンパイル時間を計測してみました。すると以下のような結果になりました。

何かのお役に立てれば幸いです。

 Measure-Command {latexmk -lualatex ハンドブックVer.2.tex}
Failure to make 'ハンドブックVer.2.pdf'
Latexmk: If appropriate, the -f option can be used to get latexmk
  to try to force complete processing.
C:\texlive\2022\bin\win64\runscript.tlu:915: command failed with exit code 12:
perl.exe c:\texlive\2022\texmf-dist\scripts\latexmk\latexmk.pl -lualatex ハンドブックVer.2.tex


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 8
Milliseconds      : 898
Ticks             : 88984732
TotalDays         : 0.000102991587962963
TotalHours        : 0.00247179811111111
TotalMinutes      : 0.148307886666667
TotalSeconds      : 8.8984732
TotalMilliseconds : 8898.4732

濁点・半濁点の問題

問題が発生するファイルのあるディレクトリであいうえお.texがぎぐげご.texという名前でファイルを作成し,コンパイルをするとどちらも赤いポップアップが表示されずコンパイルが完了しました。

何かのお役に立てれば幸いです。

伊藤 直人 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 和田 勇 の投稿
Takashima さんへ、私の環境では「高負荷マシン」で検証していることと、
インタネット回線もそんなに速くないので、想定される事象の再現は今のところ無理ですが、
とりあえず検証してみました。 md ファイルに変更してあるので、vscode などで
プレビューしながら参考にしてください。

伊藤さんへ、濁点・半濁点のファイルはだいぶ古い macOS の環境で作成したファイルのように
ファイル名の文字列を変え、それを OneDrive 経由などで windows で操作というようなことが
できれば良いのですが ... このような状況はレアだと思うので、この懸念はとりあえず無視しています。


和田 勇 への返信

Re: Windows環境のOneDrive上でlatexmkによるコンパイルをしたい

- 伊藤 直人 の投稿
和田様

ご検証いただきありがとうございます。
濁点・半濁点の問題はとりあえず無視するとのこと承知しました。