llmk 1.2.0 で latex magic 書式で--output-directory を指定したい

llmk 1.2.0 で latex magic 書式で--output-directory を指定したい

- 和田 勇 の投稿
返信数: 3
.tex ファイルの一行目に以下のような latex magic を書いて llmkに
解釈して処理してもらうようにしていたましたが ...

  %#! cluttex --engine=platex --max-iterations=4 --makeindex='mendex -c -g -l -r -s jpbase.ist' --output-directory=out

昨日 llmk が 1.2.0 にアップデートされたら「--output-directory=.」も
latex magic 行のイメージに続いて生成されるようになり
二つの「-output-directory」オプションを指定してるとのエラーになってしまうようになった。

対策として
atex magic の行から  --output-directory=out を取り除いて llmk すると
--output-directry で処理されることを前提としている cluttex  が
最後に.pdf と .synctex.gz は同じディレクトリにある必要があるとのことで
コピーをしようと「cp ./xxx.synctex.gz  xxx.synctex.gz を実行しようとして
エラーとしてしまいます。

このエラー自体は、原因がわかっているので無視でも良いのですが、
何か対策はあるのでしょうか?

確か latex magic 行があると llmk.toml は読み込まなかったようなので
無理なら、別の方法を検討したいと思います。

このような方法を採用している理由:

 latexmk でも良かったが、
 llmk と tex magic 行の組み合わせで latexmk の煩雑さが解消できないかという
 目論見の元に llmk を利用しています。
 現在 目次、索引ありの ptex2pdf だけでは処理しきれないので
    llmk.toml での運用も考えましたが、中間ファイルディレクトリを
 指定できた cluttex を利用することにしました。
 今回は、その対処が仇になってしまった感があります。

 いっそ makefile 運用 に戻ろうかとも思いあぐねています。
和田 勇 への返信

Re: llmk 1.2.0 で latex magic 書式で--output-directory を指定したい

- ワトソン の投稿

llmkのshebang風マジックコメント(先頭行冒頭における%#!)はlatexキーの値として扱われます。cluttexは部分的にlatexコマンドと互換なコマンドラインオプションを受け付けるかもしれませんが、今回ケースのように複雑になるともはや「latexコマンドと互換なもの」としては扱えないように思われます。

llmkはファイル名を指定して起動した場合にはllmk.tomlは読み込みません。しかし、対象ファイル内に(shebang風マジックコメントではなく)TOMLフィールドを置くことでllmk.tomlを使う場合と同様にほぼ完全な制御を行うことが可能です。

今回の利用ケースでは、処理したいLaTeXソースファイルの中に、以下のようなTOMLフィールドを記載すれば目的の動作を得られるように思います。

% +++
% sequence = ["cluttex"]
% [programs.cluttex]
% command = "cluttex"
% opts = [
%   "--engine=platex",
%   "--max-iterations=4",
%   "--makeindex='mendex -c -g -l -r -s jpbase.ist'",
%   "--output-directory=out"
% ]
% +++
ワトソン への返信

Re: llmk 1.2.0 で latex magic 書式で--output-directory を指定したい

- ワトソン の投稿
まあただ、このぐらいTOMLフィールドが複雑になってしまうと「latexmkの煩雑さ解消」という目的を達成できるかは不明です。llmkの主な想定利用ケースは、今回利用事例よりももっとシンプルなケースであるためです。このあたりは、好み次第という面もありそうです。明確にメリットがあるとしたら「LaTeXソースファイル内で色々な指定を完結できる」という点ぐらいでしょうか。
ワトソン への返信

Re: llmk 1.2.0 で latex magic 書式で--output-directory を指定したい

- 和田 勇 の投稿
ありがとうございました。
サンプルをそっくりソースに埋め込み、
無事、想定した通りビルドできるようになりました。

サンプルの利用法を教えていただき、
今までマニュアルを見ていて
  なぜ「シェバング設定」と「toml 設定」が並んでいるのかな?
という??が解消しました。
toml ファイルを各ディレクトリに置くのは避けたかったので
半分無視はしていたのですが、ソースに記述すれば良いのですね。


以下閑話休題
◆ latexmkの煩雑さ解消
 紹介される設定の多くが Windows と非Winows 対応として延々となっているのと
 いろいろなエンジンに対応しつつ、簡略設定ができるいるようにとモードスイッチど導入したのが
 複雑さを助長しているように思います。
 大抵はプレビューア以外はほぼほぼ同じなのにな

 サポートで latexmk の質問も結構あるので
   ホームに .latexmkrc を置きたくないし、
   またいろいろなところに.latexmkrc をおきたくないし
 と常々思っていたのですが、、、
 シェバング風な処理をしてくれる llmk を知ってからは、
 積極的に利用するようになりました。

 特に『明確にメリットがあるとしたら
   「LaTeXソースファイル内で色々な指定を完結できる」』
 は、私は非常に買っています。

 そういうように書き込んでくれれば TeXworks のタイプセットメニュや
  vscode のビルドのレシピの簡略化ができるのではと思っています。
 
ではでは