src
세 개의 디렉토리 , aux-dir
, 및 가 out-dir
모두 동일한 작업 공간 디렉토리에 있고 work
독립적이지만 비슷한 형식의 파일 bleb1.tex
, bleb2.tex
, ... 이 에 있다고 가정해 보겠습니다 src
. 보조 파일이 의 하위 디렉토리에 기록되고 출력 파일(예: ) 이 의 하위 디렉토리에 기록 되도록 latexmk
일부를 컴파일하도록 bleb<i>.tex
구성 하고 싶습니다 . 많은 파일이 있을 것이기 때문에 각 .bleb<i>.pdf
bleb<i>
aux-dir
bleb<i>.pdf
bleb<i>
out-dir
bleb<i>.tex
bleb<i>.tex
이를 위해 사용자 정의 latexmk
구성 파일을 정의했습니다 . 구성 파일 내에서 보조 파일 대상과 출력 파일 대상 은 각각 및 work
변수를 통해 지정할 수 있으며 변수가 아직 존재하지 않는 경우 변수에 지정된 경로를 생성하는 것이 훨씬 편리하다는 것을 알고 있습니다. 하지만,$aux_dir
$out_dir
latexmk
내가 모르는 것은 bleb<i>
소스 .tex 파일의 기본 이름에 따라 하위 디렉터리 이름을 얻는 방법입니다.
명령 변수(예: )를 덮어쓰는 것 외에는 구성 파일에서 자리 표시자 변수 %A
, 등 중 어느 것에도 액세스할 수 없는 것 같습니다 . 나의 첫 번째 시도는 로 변경하여 소스 파일 이름에 액세스하고 이를 내 서브루틴 에 삽입하는 것이었습니다 . 두 번째 시도는 후크 에서 호출할 사용자 정의 서브루틴에서 제공한 파일 이름이 포함된 경로에 변수를 설정 하는 것이었습니다 . 이 두 가지 시도 모두 기본적 으로 모든 보조 및 출력 파일을 토하기 전의 변경 사항을 선택하지 않습니다 . 문서에는 구성 파일에서 latexmk가 다른 방식으로 전달한 명령줄 인수(특히 소스 파일 이름)에 액세스하는 방법을 지정하지 않는 것 같습니다. 세 번째 시도에서는 and 를 변경하는 대신 첫 번째 시도에서 서브루틴 내부 에 대한 Perl 호출 에서 해당 및 플래그를 변경하려고 시도했지만 이번에도 이러한 플래그를 무시하고 파일을 .%R
$latex = "latex %O %S"
$latex
internal mylatex %A
$aux_dir
$out_dir
mylatex
$aux_dir
$out_dir
$$Pbase
before_xlatex
latexmk
$aux_dir
$out_dir
work
latexmk
$aux_dir
$out_dir
-aux-directory
-output-directory
system
latex
mylatex
latexmk
work
work
이 시점에서 나는 에 대한 원래 계획된 디렉토리 구조가 예를 들어 에서 발생할 수 있는 문제로 인해 시작하기에 이상적이지 않다는 것을 깨달았습니다 bibtex
. 가능한지 궁금하거나 latexmk
.
답변1
현재 요청하신 내용은 latexmk에서 지원되지 않습니다. 구현하는 것이 가능할 것입니다. 이는 latexmk가 tex 파일 처리를 시작하기 전에 사용하는 코드의 변경을 수반합니다. 현재
당신이 시도한 것은 필요한 일을 하기에는 너무 늦었습니다. 해당 .tex 파일에 대한 초기화가 완료된 후 디렉터리 $aux_out
와 디렉터리는 $out_dir
고정된 상태로 유지되어야 하며 latexmk에 알려져야 합니다.