The conditional build tagging would go like this:
1. Tag user-specific topics as "Student," "Teacher," or
"Principal," as appropriate.
2. Leave untagged any topics that are common to all.
3. Specify three different single source layouts (SSLs):
- The Student SSL should have the build expression NOT
Teacher AND NOT Principal.
- The Teacher SSL should have the build expression NOT
Student AND NOT Principal.
- The Principal SSL should have the build expression NOT
Student AND NOT Teacher.
All untagged topics will be included in the output.
4. The TOC might be trickier; it depends on your structure.
Tag user-specifi books in the TOC as Student, Teacher, or
Principal. Leave common material untagged. Do the absolute minimum
tagging here that you can get away with, and try to keep the tags
simple and high-level. It's too easy to lose them in a complex TOC.
The thing to remember here is that if a topic in not included in
the output, it will automatically be excluded from the TOC. This
means that if you have tagged a topic as Teacher, it will not show
up in the Student TOC, even though you did not specifically exclude
the TOC entry.
5. Following the reasoning in number 4 above, the index
should take care of itself, and I think the glossary will, too,
although I haven't played with glossaries much.
-----------------------
I think you have the right idea on how to do the merge. I
don't have access to RH at the moment to check.
If all three projects have the same glossary definitions,
then you should put them into the common child project, not
duplicate them in the user-specific projects.
HTH,
G