система управления документами

система управления документами

Я пишу технические документы с математикой/диаграммами/графиками/кодом и т. д. Я хочу скомпилировать их в один документ, а также должен иметь возможность запускать каждый из них независимо. Эти технические документы, относящиеся к каждой теме, находятся в своих папках. Может ли кто-нибудь подсказать мне, как лучше управлять этим и сделать его переносимым? Например, я работаю над теми же документами на Mac OSX/MS Windows.

решение1

Если я правильно понял вопрос, то решением может быть использование пакета subfiles.

Допустим, main.texэто ваш основной файл, и file1.tex, file2.tex, и file3.tex— это те, которые вы хотите включить. Тогда ваш основной документ будет выглядеть примерно так:

основной.txt:

\documentclass[a4paper]{article}
<your preamble>
\usepackage{subfiles}

\begin{document}

\subfile{file1}

\subfile{file2}

\subfile{file3}

\end{document}

где вы можете разместить текст везде, где захотите, как если бы вы использовали \includeили \inputвместо \subfile. Содержимое file1.texтогда будет выглядеть примерно так

файл1.tex

\documentclass[main.tex]{subfiles}
\begin{document}

<your document goes here>

\end{document}

Такая же структура должна применяться к файлам file2.texи file3.tex.

Теперь, когда вы компилируете main.tex, то содержимое файлов, то есть то, что я обозначил <ваш документ будет здесь> будет включен в ваш документ, и если вы скомпилируете, скажем file1.tex, , то содержимое file2.texбудет скомпилировано так, как если бы оно имело спецификации documentclass и преамбулу main.tex.

Итак, теперь все файлы в проекте можно скомпилировать по отдельности, но для компиляции одного из них вам необходимо иметь подфайлы main.texв одном каталоге.

документация и установка пакета

Я не уверен, subfilesидет ли он в стандартном пакете. Мне он не подошел, поэтому в зависимости от того, насколько вы опытны в установке пакетов, я хотел сказать, что пакеты можно найти на

http://www.ctan.org/tex-archive/macros/latex/contrib/subfiles/

где также есть документация пакета, а именно pdf-документ subfiles.pdf. Если вы не знаете, как обращаться .insс .dtxфайлами, то есть небольшое руководство на

http://en.wikibooks.org/wiki/LaTeX/Packages/Установка_дополнительных_пакетов

и если вы хотите, вы можете поместить файлы subfiles.clsи subfiles.sty, которые генерируются при сборке пакета, в тот же каталог, что и main.tex, так что вы не будете зависеть от того, будет ли установлен пакет в следующей системе, на которой необходимо будет скомпилировать файлы subfiels.

РЕДАКТИРОВАТЬ

Отвечать

У меня есть три уровня каталогов, 1 - верхний уровень, который содержит rootfile.tex, 2- уровень глав, который содержит основной файл каждой главы, 3- уровень разделов, который содержит фактическое содержимое этой главы. Я создаю экземпляр 3 в 2 с помощью \include{./Sections/part1}. Как можно управлять такой системой с помощью подфайлов? – avlsi

Предположим, что у вас есть файлы

./rootfile.tex
./chapter/chap1.tex
./chapter/chap1/section1.1.tex
./chapter/chap1/section1.2.tex
./chapter/chap2.tex
./chapter/chap2/section2.1.tex
./chapter/chap2/section2.2.tex
./chapter/chap3.tex
./chapter/chap3/section3.1.tex
./chapter/chap3/section3.2.tex

и вы хотите включить файлы sectionX.1.texи sectionX.2.texв файл chapX.texдля X=1,2 и все еще иметь возможность компилировать оба ваших файла раздела, ваши chapterfiles и ваш корневой файл. Это можно сделать, если ваши файлы будут выглядеть примерно так:

корневой файл.tex:

\documentclass[a4paper]{article}
<your preamble>
\usepackage{subfiles}

\def\dirlevel{../}

\begin{document}
\def\dirlevel{}

\subfile{./chapter/chap1}
\subfile{./chapter/chap2}
\subfile{./chapter/chap3}

\end{document}

chapX.tex:

\documentclass[./../rootfile.tex]{subfiles}
\begin{document}

\subfile{./\dirlevel chap/chapX/sectionX.1}
\subfile{./\dirlevel chap/chapX/sectionX.2}

\end{document}

sectionX.Y.tex:

\documentclass[./../../rootfile.tex]{subfiles}
\begin{document}

<your section goes here>

\end{document}

Хитрость в том, что \def\dirlevel{}он читается только в том случае, если вы его компилируете rootfile.tex, тогда как \def\dirlevel{../}он читается независимо от того, какой файл вы компилируете, поэтому независимо от того, какой файл вы компилируете, LaTeX все равно сможет найти ваши файлы.

Связанный контент