Apache OpenOffice (AOO) Bugzilla – Issue 13540
Make cross-reference between different documents possible
Last modified: 2013-02-07 22:34:42 UTC
When using Master- and Subdocuments it is needed to cross-reference to other (sub-)documents. This doesn't work at the moment. At least that's what Masterdocumets are for, divide big documents in smaler pieces without loosing the ability to treat it as one document.
Reassigned to BH
I think this issue should be listed as a DEFECT not ENHANCEMENT. Elsewhere I had written: You cannot create a cross-reference between files (whether those files are part of a master document or not). You can create a hyperlink, but that does not do what I want. The purpose of a cross- reference to, say, the title of another chapter (or a figure number in another chapter), is to change the text of the cross-reference automatically if you change the title or figure number in the other chapter. Someone pointed me to the help file, which says: --------- Insert reference Inserting a referenced field to another position in the document. The corresponding text passage has to be defined with "Set Reference" first. Otherwise, inserting a reference by choosing a field name under Selection is not possible. In master documents, you can also reference from one sub-document to another. Note that the reference name will not appear in the selection field and has to be entered "by hand". --------- However, I have been unable to do this in OOo1.0.3 or beta versions up to and including 1.1RC3. Here's what happens. If the subdocs are write-protected in the master doc, then I must open one of the subdocs to edit it. If I do this, I cannot insert an x-ref to a reference name in another subdoc -- I can type it into the selection field, but it is ignored when I click Insert. If the help file means something else when it says "enter by hand," I can't figure out what I'm supposed to do. If I remove the write-protection on the subdocuments and work on them within the master document, I can insert a cross-reference from one subdoc to another just the same as I would within one subdoc (and the reference name does appear in the selection list, contrary to what the help file says) and it all works just as it should. The problem is: When I save the master file and reopen it, if I choose to update the links, the cross-reference has disappeared. If I reopen the master doc and do not update the links, the cross- reference remains, but that defeats the purpose of the links. So I'm stumped. Either the help file is wrong, or it doesn't explain what to do clearly enough, or the program has a bug.
What is needed is some way to insert a cross-reference between the MD and a sub-document or between sub-documents in an MD so that a change in pagination (for example) results in a change in the cross-reference, or a change in the order of chapters carries over the correct cross-reference. After all, what good does it do to reference Chapter 3 when that is no longer Chapter 3 or page 15 when the pagination has changed and it is now page 18? I can do it in a single document, but not in a MD.
I've now discovered how to do this. It works just like the help file says, and produces the results that Robert Black Eagle and I (and many others) want, but until I discovered the secret, I didn't understand what the help file was telling me. Obviously I'm not the only person who had trouble with this, because I've now tested it in 1.0.3 and it works there too. However, although it works, it's cumbersome to do and not at all user- friendly. Because many academics and others who use OOo want to x-ref between files, an improvement in the way of doing it would enhance the product immensely. For the benefit of others, the secret lies in working out what is meant by 'entered "by hand".' Here's what I found. 1. When you set references in each subdoc, keep a list of what you've named them, and be sure every name is unique. I think the names are case-sensitive, but I haven't tested this. 2. Open the Master Document. Select a subdoc and click the Edit icon. 3. In the subdoc, place the cursor where you want the x-ref to appear. Click Insert > Cross Reference. 4. In the Fields dialog, on the References page, select Insert Reference in the Type list on the lefthand side. The Selection list in the middle column shows only the reference field names for the subdoc you're using, so ignore that list and use the list you created in step 1. 5. In the Name field in the lower righthand column, type the name of the reference you set in the subdoc you're referring to. Click Insert. Nothing will appear in the subdoc except a tiny grey bar indicating a field. If you hover the mouse pointer over this field, you should see the field name. 6. Save and close the subdoc and return to the master doc window. Within the master doc, navigate to the page of the subdoc on which you inserted the x-ref field. You should now see the text of the cross-reference appear in the spot where you inserted it, because within the master doc, the subdoc can find the target of that field reference. The above also works if you open a subdoc directly -- that is, not from within the master doc --(in step 2) and insert an x-ref field. To test whether this x-ref changes as it should when the target text changes, do this: 1. Save and close the master doc. 2. Open the Master Document. Select the subdoc containing the referenced text and click the Edit icon. 3. Find the referenced text and change it in some way. Save and close the subdoc. 4. Within the master doc, navigate to the page of the subdoc on which you inserted the x-ref field. You should now see the changed text of the cross-reference. It worked for me. It's cumbersome, but at least it worked. Jean Hollis Weber
*** Issue 107540 has been marked as a duplicate of this issue. ***
This is not an enhancement. It's a defect that when breaking a document up into sub-documents with a master document, the functionality of cross-references is severely limited. I have an openoffice book with 20 subdocuments. When, from inside one of the subdocuments, I try to insert a reference to a heading in another subdocument, only the headings for the current subdocument show up! When the document was flat all the references for the document showed up in the insert other fields dialog. (When the document was flat, it took 6 minutes to do an autosave, which is why I broke up the document.) ALL of the references for the main document should show up in the dialog for inserting cross-references. There is a hack shown at http://wiki.services.openoffice.org/wiki/Documentation/OOo3_User_Guides/Writer_Guide/Cross-referencing_between_subdocuments which is not acceptable. I'm desperate, so I have to use the workaround, but if someone is coming from FrameMaker or Microsoft, I don't think you have to go through all that work. I'm stuck, because saves and autosaves for my flat document take over five minutes! Otherwise, I wouldn't be using sub-documents for the following reasons: First of all, it's a work-around for the lack of functionality that's available for a flat document and within a sub-document. Second, it's tedious and error-prone, having to keep a separate document where you manually keep track of the references that you create. That tedium should be done by OpenOffice, not the user. Thirdly, the same user interface should be available whether a reference is being made within a sub-document or across sub-documents in a book. Fourth, the inter-document cross-references aren't expanded within a sub-document, and changed text doesn't show up in the master document. This means we can't publish a version of a document with change bars and all the references resolved.
To grep the issues easier via "requirements" I put the issues currently lying on my owner to the owner "requirements".