web-dev-qa-db-ja.com

崇高なテキスト2:複数のドキュメントを操作し、マスターファイルを作成する

私は現在LaTeXを使用しています。大きなドキュメントがいくつかのサブドキュメントに分割されています。サブドキュメントで作業しているとき、現在いるファイルではなく、ctrl + bを押したときにマスターファイルをコンパイルしたいのですが、どうすればよいですか?

9
elumbella

自分で答えを見つけました!前述のように ここ 、サブドキュメントの最初の行として%!TEX root = protokoll.texを入力するだけです!

9
elumbella

必要な3つの異なるファイルがある場合は、1行目(またはutf8のものが必要な場合は2行目)のコメントを使用できます。私はそれを使用して、子の1つからメインのTeXファイルをコンパイルします。

%!../main_file.tex
\documentclass[12pt,a4paper]{scrartcl}

\usepackage[czech,english]{babel}

私は最初の行を見るスクリプトを持っています:

match=`head -n1 $1 | grep %!`

if [[ $match ]]
    then
        # do stuff with the parent's name, which is ${match:2:100}
    else
        # no match :/
fi

そして、私のカスタムスクリプトを対象とした単純なビルドファイル:

{
    "cmd": ["/path/to/build/script.sh", "$file"],
    "selector": "whatever"
}

このようにして、ファイルに必要な数の「参照」を含めることができます。 head -n1の値を切り替えるだけです。

最後に、XeLaTeXビルドスクリプトを紹介します;)

#!/bin/bash
file="$1"
flag="-halt-on-error"

match=`head -n1 $file | grep %!`

if [[ $match ]]
    then
        if [ ${match:2:3} = ../ ]
            then
                cd .. &&
                target=${match:5:100}
            else
                target=${match:2:100}
        fi
    else
        target=$file
fi
rubber -c 'set arguments -Shell-escape' -f -m xelatex -W all $target

exit 0
1
mreq