I work for a publisher who is primarily specializing in educational publications, offering final exams with sample solutions, exercise books and so on. The company is start-up and we write everything in LaTeX. Now the files and folders are getting more and more and I ask myself how to keep it smart with all the dependencies. Some facts:

  • every final exam of a particular year must be accessible as a standalone version with its (nearly) original layout from the ministry of education
  • and every final exam must be accessible for a book accumulating the exams of the last 5 years having the corporate layout of our publishing company
  • there are different states all with their own exams
  • in the different states are different schooltypes all with their own original layout

Now some (LaTex)nical facts so far:

  • every single year is coded as a sub-file with the subfiles package
  • a book will be typeset in the root file
  • the root file includes (via \input) the specific needs of the state and schooltype (including packages)

The File structure at the moment looks like this:

|   own_layout.tex
|   own_math_commands.tex
|   own_tikz_sets.tex
|   +---schooltype1
|   |   +---subject1
|   |   |   +---2013
|   |   |   +---2014
|   |   |   .
|   |   |   .
|   |   |   +---Root
|   |   +---subject2
|   |   |   .
|   |   |   .
|   +---schooltype2
|   .
|   .

So what I am asking for?

old question: I need some hints or advices from people, having experience in managing things like that or having a good idea to improve the structural concept. Is there a better way of the whole story? Furthermore it is hard to keep things unitized (the head in this particular file needs this layout another file needs another layout, but in the book there should be neither head1 nor head2 and so on)

new questions:

  1. Are there any examples of other publishers to watch and learn from?
  2. What is a good way to make a single file accessible with two different layouts?
  3. I thought to extract the code, which includes the packages for each root file, in one single file and include therefore this file into the root files, to avoid overhead. But sometimes a specific root file may need a package with other options. Is there a way to override the old options with new options?
  4. Maybe could ConTeXt be a better alternative for this purpose?
  5. If someone has something to say to the structure, feel free.
  • 1
    Hi! I do have some experience with large and complicated multi-part works. However, I don't think it's possible to pass this experience by answering this question, for several reasons: (1) The question is way too complicated to answer, there's too much into it, many technical details involved etc. (2) I'm not willing to spend so much time over it, excuse me for that, we all only volunteer here with no profit from that. (3) I don't think that trying to answer such a complicated thing would be any effective in the sense that you would gain the necessary knowledge. – yo' Sep 10 '14 at 14:51
  • So maybe a hint, where or how to gain more knowledge? Communicating with others seemed to me a good way. – Rafael Wörner Sep 10 '14 at 15:05
  • Difficult to say quite. Most people that need something like this code it themselves in low-level LaTeX (this includes me, but as well large organizations like AMS who have their own TeX specialists). I don't have any sources of knowledge for this, sorry. – yo' Sep 10 '14 at 15:30
  • Here is how I handle conditional layouts (your question #2): tex.stackexchange.com/questions/127851/…. I've used that approach to make a single document, for example, look like either a journal manuscript or alternately an organizational tech report with covers, distribution lists, etc. – Steven B. Segletes Sep 10 '14 at 16:43
  • 1
    since @tohecz has mentioned the ams, ..., some projects (like monographs) are processed as a single latex unit (which may be a composite of many files, but the files don't run through latex individually). other projects are processed in multiple pieces, and combined later via an external (non-tex) script, which may also do things like replace page numbers (in which case, cross-references by page must be prohibited, since they won't yield accurate results); this is the mechanism for producing journal issues. – barbara beeton Sep 10 '14 at 21:19