Tables of Contents, Indexes and Other Special Tables in Scribus
Creating special tables in Scribus is not a straightforward task. The controls are scattered, and few users are likely to decipher the necessary steps or their necessary order without help. However, each step in creating a table of contents (TOC), index, or frame is simple in itself, and, once one is added, you can edit the result exactly as you would the contents of any text frame.
Because a special table depends on the information in the rest of the document, you need to add it after you are finished the document. Otherwise, you will simply have to regenerate it more than once. Avoiding this extra work means either leaving space on a page for adding the special table, or adding pages at the start or end of the document. For an index, whose entries are often short but numerous, you may want to create a two or three column layout, with connected text frames on two or more pages.
In addition, for a TOC and many indexes -- especially in a technical document -- you consider using sub-headings, each in a separate text frame, formatted with a paragraph style named something like Heading1 or Sub-Head. If you do, then finding the text frames you want to add to the special table will be easier.
Just as importantly, you won't need to come up with a meaningful tag as you create the special table, which can be mentally challenging, especially if you are adding the table after long hours of writing and editing. You can simply copy the text of the sub-heading.
Before you begin to create the special table, you will also need at least one paragraph style for its contents. If you have several levels of sub-headings, and want them to be visible in the special table, then you should also create a paragraph style for each level, even though initially only one will be used in the special table. Should you want leader dots to connect a table entry and its page number, you can edit the paragraph styles for the table so that the tabs use a fill character -- although this is a sloppy layout habit that you should avoid if at all possible.
Creating a special table
Creating a special table takes four steps:
- Press the T key to add a text frame for the special table to the document. Then press F2 to give it an easily identifiable name in the Properties window, such as TOCFrame.
- Select File -> Document Setup -> Document Item Attributes -> Add. Give the attribute a name such as TOC or Index, and click the OK button. You have just created a tag that can be applied to objects in the rest of the document.
- Select File -> Document Setup -> Table of Contents and Indexes -> Add to set up the special table. In the version of Scribus I am using, this procedure always produces something whose title is Table of Contents followed by a number (for instance, Table of Contents 2), but, despite the title, the special table can be of any sort you choose. On the right side of the window, set:
- Item Attribute Name to the one you created in step 2 of this prodcedure.
- Destination Frame to the text frame you have prepared for the special table.
- Page Placement to End, Beginning or Not Shown.
- Paragraph Style to the top level paragraph style created for the special table, such as TOC1. You will only be able to add the other paragraph styles after the special table is created.
When you are finished, click the OK button to exit Document Setup.
Adding and laying out the special table
With these preparations, you are ready to build the special table. Go to each text frame that you want listed in the special table, selecting the frame, then choosing Item -> Attributes. In the name column, select the tag you created in Document Item Attributes (for instance TOC) to add the text frame to the special table.
You also need to provide some text to display in the special table under Value. If you are using sub-headings and creating a TOC, you can simply enter the text of the sub-heading. If you are building an index, you might want to create multiple entries for some text frames, or reworded versions of the tag, such as "adding a text frame" and "text frame, adding."
When you are finished tagging paragraphs, select Extras -> Generate Table of Contents. The result displays in the text frame you designated in Table of Contents and Indexes, regardless of whether it is currently selected or not.
Unless you have created a special table in Scribus before, the result may not be exactly what you want, especially since a single paragraph style is used for the entire special table. You may need to experiment with the special table's paragraph styles, adjusting them in Edit -> Styles.
If you want multiple levels of sub-headings to use different styles in the special table, you will need to select its text frame and click Edit Text to open the Story Editor and apply the appropriate styles. Note, however, that if you ever need to regenerate the special table, this extra formatting is over-ridden, so you may want to delay this final bit of formatting until everything else is to your satisfaction. You may also want to place the heading for the special table in a separate text frame, since it, too, disappears with each regeneration.
Creating a special table that looks the way you want it to is not nearly as hard as you might first expect. However, it does require an understanding of both paragraph styles and of attributes if you are to automate the process as much as possible, and can be time-consuming, particularly if you are not familiar with the process.
For this reason, I suggest creatng a document that has a table of contents, index, list of illustrations, or any other special table that you use regularly setup, and save it has a templates. Templates are often important ways to minimize duplication of work in Scribus, and, if you create all the special tables you need in one, you can sidestep much of the drudgery involved in their creation.
-- Bruce Byfield (nanday)
- Transitioning to Python 3
- Progress on Privacy
- Returning Values from Bash Functions
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Tech Tip: Really Simple HTTP Server with Python
- A Better Raspberry Pi Streaming Solution
- Downloading an Entire Web Site with wget
- Linux Journal December 2016
- Raspberry Pi: the Perfect Home Server
- Parrot S.L.A.M.dunk