
Estou escrevendo um longo documento com outras duas pessoas usando o Dropbox como mecanismo de armazenamento de arquivos. Quero que cada pessoa possa trabalhar em sua peça individualmente. Portanto, quero poder compilar cada documento separadamente, bem como compilar o documento principal. O pacote subfiles parecia perfeito para isso.
Tentei seguir o exemplo para documentos modulares emWikilivros, mas não está funcionando para mim. O documento de nível superior será compilado, mas os de nível inferior terão erros de arquivo não encontrado.
Aqui está minha configuração:
- Pasta de imagens
- pasta tex
- principal.tex
- estilos.sty
Dentro de main.tex:
\documentclass[11pt,letterpaper]{article}
\usepackage{styling} %includes \usepackage{subfiles}
\begin{document}
\maketitle
\tableofcontents
\subfile{./tex/subpiece1}
\end{document}
Dentro de subpiece1 na pasta tex:
\documentclass[../main.tex]{subfiles}
\graphicspath{ {Images/subpiece1/} }
\begin{document}
\section{sectiontitle}
%Images and text
\end{document}
O erro ao construir o subarquivo separadamente: ../main.tex:4: Erro LaTeX: Arquivo `styling.sty' não encontrado. [^^M]
Responder1
Me deparei com o mesmo problema que você encontrou quando compilei meu primeiro documento com vários arquivos usando o pacote subfiles.
Como não sou um usuário de látex de longa data, não entendo completamente a mecânica do problema, mas suspeito que o problema é que quando você compila o arquivo "escravo" (no seu caso, 'subpiece1.tex'), seu compilador procura o arquivo personalizado pacote no mesmo diretório que 'subpiece1.tex' e os outros diretórios tex padrão.
Consegui resolver o problema alterando o comando \usepackage{} para incluir também um caminho relativo que será comum para os arquivos .tex "mestre" e "escravo".
O que você precisa fazer:
- Adicione uma pasta em seu diretório inicial para o documento mestre. ou seja, seu diretório inicial deve ter pastas: pasta master (contendo main.tex), pasta tex, pasta de imagens.
- Edite sua pasta main.tex para que o comando \usepackage{} inclua o caminho relativo para 'styling.sty' (deve ser \usepackage{../styling} sem extensão de arquivo)
- Se você executou o primeiro passo corretamente, 'styling.sty' terá o mesmo caminho relativo de 'main.tex' e 'subpiece1.tex' (o caminho relativo para ambos é uma pasta acima. Isso é conseguido por '../' em o comando \usepackage{})
- Atualize todos os outros caminhos de arquivo relativos para que sejam lidos conforme necessário.
main.tex agora lê
\documentclass[11pt,letterpaper]{article}
\usepackage{../styling} %includes \usepackage{subfiles}
\begin{document}
%\maketitle (I just removed these because for the demonstartion i didnt actually need them)
%\tableofcontents
\subfile{../tex/subpiece1}
\end{document}
subpiece1 agora lê
\documentclass[../master/main.tex]{subfiles}
% again I just removed the graphics path because I have no need for it
\begin{document}
\section{sectiontitle}
%Images and text
\end{document}
Pessoalmente, prefiro agrupar meu preamble.sty na mesma pasta que meu main.tex, mas a ideia básica é a mesma. Acredito que qualquer caminho seria adequado, desde que os caminhos relativos fossem os mesmos para os arquivos 'main.tex' e 'subpiece1.tex'.
Também suspeito que existam maneiras melhores/mais elegantes de contornar esse problema, mas funcionou para mim até agora.