Sublime Text 2: Travailler avec plusieurs documents, créer un fichier maître


9

Je travaille actuellement avec LaTeX. J'ai un gros document divisé en plusieurs sous-documents. Lorsque je travaille dans un sous-document, j'adorerais compiler le fichier maître en appuyant sur ctrl + b, pas sur le fichier dans lequel je suis actuellement. Comment faire?

Réponses:


9

Je viens de trouver la réponse moi-même! Comme mentionné ici , il suffit de mettre %!TEX root = protokoll.tex en première ligne des sous documents!


J'apprécie vraiment cela!!! Ce problème m'a dérouté pendant un certain temps.
Zhigong Li

1

Si vous avez 3 fichiers différents dont vous avez besoin, vous pouvez utiliser des commentaires de première ligne (ou deuxièmes si vous avez besoin de choses utf8). Je l'utilise pour compiler le fichier TeX principal de l'un des enfants.

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

\usepackage[czech,english]{babel}

J'ai un script, qui regarde la première ligne:

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

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

et un simple fichier de construction visant mon script personnalisé:

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

De cette façon, vous pouvez avoir autant de "références" dans vos fichiers que vous le souhaitez. Changez simplement la valeur de head -n1.

Pour finir, je vous présente mon script de build 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.