Sublime Text 2: Работа с несколькими документами, создание мастер-файла


9

В настоящее время я работаю с LaTeX. У меня есть большой документ, разделенный на несколько вложенных документов. Когда я работаю над вложенным документом, я хотел бы скомпилировать мастер-файл при нажатии Ctrl + B, а не файл, в котором я сейчас нахожусь. Как мне это сделать?

Ответы:


9

Я просто нашел ответ сам! Как упомянуто здесь , нужно просто поставить %!TEX root = protokoll.tex в качестве первой строки вложенных документов!


Я очень ценю это!!! Эта проблема смутила меня некоторое время.
Чжигун Ли

1

Если у вас есть 3 разных файла, которые вам нужны, вы можете использовать комментарии первой строки (или секунды, если вам нужны файлы utf8). Я использую его для компиляции основного файла 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.