Se você tem 3 arquivos diferentes que você precisa, você pode usar comentários de primeira linha (ou segundos, se precisar de coisas utf8). Eu uso para compilar o arquivo TeX principal de um dos filhos.
%!../main_file.tex
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[czech,english]{babel}
Eu tenho um script, que analisa a primeira linha:
match='head -n1 $1 | grep %!'
if [[ $match ]]
then
# do stuff with the parent's name, which is ${match:2:100}
else
# no match :/
fi
e um arquivo de compilação simples com o objetivo de meu script personalizado:
{
"cmd": ["/path/to/build/script.sh", "$file"],
"selector": "whatever"
}
Dessa forma, você pode ter quantas "referências" em seus arquivos desejar. Basta mudar o valor de head -n1
.
Em XML, você provavelmente usaria <!--%somefilename -->
com head -n1 $1 | grep '<!--%'
e ${match:5:100}
.
Para finalizar, eu apresento a você meu script de construção 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