Subarquivos no subdiretório, arquivo não encontrado

Subarquivos no subdiretório, arquivo não encontrado

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:

  1. 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.
  2. 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)
  3. 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{})
  4. 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.

informação relacionada