Tinderbox Forum

Organizing footnotes

In the container for the text of a book, there is a note for each chapter and within chapter containers a note for each section. Sections have footnotes. There are several hundred, distinguished by three prototypes. All footnotes are created as siblings. In Map view, the display is very messy. Cleanup makes it worse with footnote notes showing up far from the sections they’re linked to and the lines impossible to follow. Dance is a little better but still not good. I can resolve the problem by moving each footnote into the section it relates to. I sort the section containers, using their prototype, by the prototypes of the contained notes and then by Name. Not only orderly, but makes it easy to move between the Text pane of a section and the footnotes. Also provides nicely organized Hyperbolic views of the section.

Given the quantity of footnotes, I would like to include a rule in each footnote prototype that would move each instance into its section container. It would be a simple rule: "$Container = Container + the attribute that identifies a link source if I could find that attribute . But the only thing I find in the list of system attributes are the various link counts. BrowseLinks and Roadmap clearly make use of link attributes, but don’t indicate how to identify or designate them. I tried using a relative reference: when a footnote is created the source section shows up as its nextSibling, but that creates a mess when another footnote executes the rule, even with the rule ending with $RuleDisabled=true.

Any suggestions?

My guess is that this might best be done manually. You only need to do this reorganization once; it’s a bit tedious, but it sounds like it’s a dull afternoon. (In normal times, I’d suggest that this is a fine task for the proverbial expendable graduate student, but that’s probably impractical right now.)

But if you really want to automate it, you’ll need to consider some details and edge cases. For example:

  • What would you do if a note was linked from two different notes?

I’m not sure I’ve followed exactly what you want to do, but perhaps this will help. I have a TBX with a similar structure, roughly chapters as containers, sections as containers, then notes that are either pages or footnotes (like you, three different kinds distinguished by prototype). In each section, I have three smart adornments, one for each (proto)type of footnote. These are positioned below the pages. This means that my footnotes are always neatly organized by prototype inside the smart adornments, themselves positioned beneath the pages. As it happens, I have the hover expression set to the $Text of the footnote, so that I can hover over any footnote to check the content quickly.

Thanks for the suggestion. I don’t think it would work in this case simply because there are, thus far, almost 700 footnotes. I am curious about the statement that the footnotes are “positioned beneath the pages.” Does this refer to their position at the bottom of the screen or is there some specific alignment between a page and the notes that relate to it? If so how is this achieved?

So, you have 700 footnotes, each of which in the worst case needs to be moved by hand. I think almost all the moves you’ve described are going to require little judgment, but let’s say each takes, on average, 30 seconds. That’s 100/hr, with a nice 10 minute break. So this is a day’s work. Not great, but not completely out of the question.

Actually, I’m still experimenting with moving the draft book from Pages, Numbers & DevonThink into Tinderbox. For the great majority of footnotes (one type), I need to do manual entry for every Tbx footnote. So dragging each one into the Section container is a minor effort. I have included in this type of footnote an edict that, if the material referenced in the footnote exists in another type of note, stored in a “ReferencedWorks” container, copies the actual text of the referenced material into the Text field of the footnote. This is quite useful as I’m developing and revising the text.

Out of curiosity, given that “source” and “destination” are Link designators, why can’t they be used in expressions such as $Name(source)?

Suppose a note has three incoming links — from Winken, from Blinken, and from Nod.

Which name is $Name(source)?

At bottom that issue doesn’t seem to be any different than the situation where there are multiple notes in the same document with the same name: ambiguity is resolved by additional specifications, such as user defined link types.

Sorry, I was not very clear. There is a note for each page. On the map, beneath each of these notes (i.e. pages) are the smart adornments. The footnotes are distinct notes on the smart adornments.

Thanks for the insights. I’ve developed a variant on your approach. In the top container for the contents of the book, I created an adornment for each type of footnote. Since it doesn’t seem possible to create a group of adornments, similar to a composite, I also create a general footnotes adornment, place the 3 specialized ones inside it and make it sticky. Then I can select all four, copy and paste in the map of each text section.
I’ve avoided the need to move footnotes inside text sections by not using the Tbx footnote option. Instead I create a note in the map for the section, apply a footnote prototype, then select text in the text pane of the section and link it to the footnote.
Each specialized footnote adornment has a query that moves footnotes of that type onto it. I’ve made each adornment tall and just wide enough for one note. That way the footnotes line up vertically next to the text pane so that its easy to associate them with the linked text.

Could you post a generic (not private) image of how a typical map with the adornments / notes appears?

1 Like

Of course, here is an actual page that should illustrate what I mean. The adornments are usually completely transparent, but they nonetheless keep the footnotes orderly. In this screenshot, I’m hovering over a note, thus showing the text that allows me to check notes quickly.


Very clever @entropydave.

Thank you for sharing this!

Not at all. I plan to answer my own topic from a month or two back with a long post about using Tinderbox for translation, sort of in the spirit of another example of “here is one way to use Tinderbox”. But I’d like to get another couple of months real-world use and refinement beforehand.


In your last screen grab, is the main top part one note showing an embedded image, or two notes (with images?) side by side? Only asking out of interest as I can’t figure it from the picture alone.

1 Like

There are two notes, bound together into a composite, the left note having a background tint. At an earlier stage the composite contains a third element which is an image, generated from scanning the primary source, attached as a smaller note on the bottom right… While translating, I sometimes refer to the image to correct the OCR I used to populate the source text. Later, when the translation is complete, I delete the image from the composite. That is why the row of notes starts a bit lower.

This last deletion step is to keep down the overall size of the Tinderbox file. One Tinderbox file will contain more than 200 pages of text, drawn from source typeset as A5 at around 11pt. If there were were also 100+ scanned pages, the file size would be several hundred megabytes.

The quantity of text visible in each of the two notes is approximately 80% of the total quantity in each note. The underlying text is 16pt Mercury SSm which is good for my eyes when editing. If MapBodyTextSize were working properly, I’d set it to around 12 point, which I think would allow me to see the whole of the text of each note. That would be a convenience but is not a central part of my workflow.

When I complete a “chapter” of the translation, I archive an export in .doc format of a series of pages.

More than you asked, but I have found it very helpful when other people have spelled out elements of their “process” for using Tinderbox.

Thanks - that wan’t too much at all. For me it is always interesting to hear some background detail.

This is especially interesting:

It is useful for those prone to drag any old thing into their app then wonder why it begins to slow up. In fairness, it can be hard—without background tech understanding—to figure what scales and what doesn’t.