Suggestion: a good start for footnotes Insert > Char > Footnote#

Previous topic - Next topic

jack_cat

Being my first post, I put this in the general discussion before I realized I should have put it here in "features". Sorry.
So, this is my second post, same as the first.

I am working on a book with many end-notes. Scribus is generally lame in processing footnotes / endnotes AFAIK.
A very useful feature which would get us half-way there, and probably not need much programming time (??), would be

Insert > Character > Footnote Number
All this would do is put a superscript number in the text. Then, when another footnote is added ahead of it,
the numbers would update automatically throughout the file in ALL text boxes. Shouldn't be much tougher than page numbers to implement. That would certainly save re-numbering 75 superscript footnote marks in the main text every time I stick another one in!!! Yaaahhggg!!! (Tears out handfuls of hair...) I sure would like to be able to mark the end note numbers in the text as I go, instead of going back and doing it after I'm sure (ha!) that the file is finished (Murphy's law: right after I do that I will make another change. Anyway, the after-the-file-is-finished method causes text box overflows and more formatting work.)

For extra bells and whistles, the function could output a report of all footnotes and their page numbers, a snippet of x characters of text just before the mark, and any other useful info (?). It might even output this report to an SLA file template which could become the end-notes section. (I'm dreaming...?)

Of course, the end-note counting function would also have to be able to deal with moving the sequence of the text boxes around in revising the material, cutting a text box out and re-pasting it later in the Chapter, or dragging it from one page to another with the mouse. Therefore the end-note counting engine would have to verify the absolute position of the text box in the file as it will be read, and not be based on the sequential numbers of the text boxes in the order they are created. 

Because the work I am doing is graphics-heavy, I use a separate file for each Chapter, as the file cludges down after about 50 pages. If I were not doing this, I would want to also be able to define sections in which the footnote count could be started afresh for each Chapter.

While I'm at it: another possible, and similar, routine, would be to highlight a word in the text and click:
Insert > Character (?) > Index reference.
Then a report would output all index references with their page numbers and maybe a text snippet of x characters, to a separate file, to be processed into an Index.

I wouldn't mind doing the extra work of creating the notes and index as separate files, if these useful features were present. By the way, I am composing text directly in Scribus as the text and graphics are so closely related, and so it is pointless for me to compose text in OO and then import it. The graphics, of course, require a separate work flow and then I import them.

Thanks for all the great help, everybody. Scribus is a great tool, I am very happy with it.


a.l.e

hi jack,

the development version 1.5 does have footnotes and endnotes.

they are still an unstable feature but they are in tthere!

if you want to test them, you can download scribus 1.5 from the scribus download page and install it alongside the stable version.

ciao
a.l.e

p.s.: it's not so important in which category you post... this is no high traffic forum... but having two times the same topic is a bit of awkward, so i deleted your other post : - )

jack_cat

Thanks a.l.e.

All of my many files (accumulated last 3 years) are made with 1.4.6, and I understand that 1.5 uses a new file format not backwardly-compatible; this and the report that the footnote functions are still incomplete has discouraged me from making an experiment. What I have been able to find and read on the new version shows only a footnote function, in which the footnote # is directly tied to a linked footnote text box at the bottom of the page, and I find nothing about end notes - if you can point me to the documentation on end notes it would at least be informative, thanks.

In any case, my end notes will of necessity be in a different .sla file in assembling my final draft, because of the main chapters being so graphics-heavy that each must be a separate file. To make an assembled draft, I collate the PDF files which I export. Therefore, a function which produces linked end notes in the same file does not promise to be terribly useful for my purpose, as I would have to cut them out and move them to the back of the book by putting them in a separate file.

I had the same graphics-heavy cludge factor when I tried to do an early version in OO, which is why I searched for and found Scribus when friends told me only InDesign or Quark would do the job; I was disappointed but not terribly surprised to find the same memory issue with Scribus, even with a relatively new computer with what used to be an unimaginable amount of memory. It seems to me that the developers (bless their little open source volunteer hearts doing such a wonderful job, and I don't complain, merely comment on my findings) need to stay aware that a Scribus project such as mine - which I naively thought that I could do with a word processor in the beginning - must involve a number of different .sla files which there is no way to link together dynamically, because of the memory issues. Yet I do require end notes - which at this time, AFAICT, can only be done with individually written and painfully re-numbered individual super-script numbers in the text, and the end notes themselves simply written in another file. I don't have a problem with re-numbering the notes in the end-note file on revision, because they are all just one-line references, with the numbers at the beginning of the line; although it is a pain, it can be done in a relatively short time. I did complete TOC, end notes, bibliography and index on an early draft, all non-dynamically by hand, and I can do it again, but it takes two or three days.

The periodic (ahem, I know I ought to be able to do it just once, but I revise a lot after I think I'm done) re-numbering of the super-script numbers embedded in the text, however, is a royal pain, like hunting rats on the screen, with the added fact that it is very easy to get careless and lose their font attributes in doing so, whether on the main screen or in the story editor. The footnote function in 1.5 as far as I have read the documentation so far, appears to be based on some concept which is (a) so complex as to be a programming challenge, (b) doesn't account for the necessary multi-file work flow, and (c) isn't pointed toward the simple and direct function which I propose, which I believe (although I never programmed anything that worked, myself) should be almost as simple to implement as the page number function (I was amused to find the funky-but-nifty workaround for using the page numb function to number 10-to-a-page tickets), and if I could find a way to just get any kind of consecutively-numbered "element" that I could adapt for my purpose, I would be happy!!!!!!

!!!!! Yes, I would. Just a simple self-updating numbering function, no other dynamic linking required.

I got as far as Document-Setup > Document Item Attributes > Name: Endnote > Type: Integer, and couldn't figure out how I could go any farther - if this is indeed a possible way to get consecutively-numbered dynamically updated number sequences into the text, please tell me how to do it.

Thanks very much! Back to work now!
jc

jack_cat

a.l.e. :
You wrote in another thread:

"if you can put up a list of features you would like to have in master pages, i can check what i can do with a python script...
"

Can you make a python script to do dynamic numbers such as I proposed above ? ? ? just dreaming out loud...
thanks
by the way I think the master document idea is wonderful but that's another story...
jc

a.l.e

Footnotes: the menu entry is called "insert foot/end note"...

As said, I don't use it myself, even if I must have tested it at sometimes in the past.
Here is a hint: I think that you have to first create a note style to be able to create end notes.

The feature -- as programmed in Scribus -- is very powerful but -- if i recall correctly -- needs some more work for usability and for stability.

jack_cat

This page:
https://wiki.scribus.net/canvas/Footnotes
does show one screenshot in which there is a checkbox for either footnotes or end notes, with "footnotes" checked.
The procedure for footnotes is explained, the procedure for end notes is not mentioned again.

OK, I understand that in order to find out how it works, I will have to download 1.5x and check it out for myself.
Thanks!
jc

dragonfly

As I have written in other threads I now use an external toolchain, including Atom editor plus Markdown Packages, for external preparation of content to inject into Scribus using Scribus as a layout engine rather than prime editor.

To address your example requirement I have just run an experiment in Atom to inject footnotes into a markdown document.  I installed Atom package markdown-footnote and I believe this might meet your requirement to automatically reorder footnote references.

Here is reference to the package.

https://atom.io/packages/markdown-footnote

The Atom packages in use include:

Markdown Footnote (Ctrl+Shift+F adds footnote)
Markdown Preview Enhanced
Markdown Writer
and others to support my workflow.

This approach should work with an earlier version of Scribus since latest Scribus footnote feature is not used. All content editing is external and finished objects are imported into Scribus.

[Later edit]

I now see that Markdown Writer package has the same feature but does not provide hot keys for this function. However, probably hot keys binding could be added so that you only need Markdown Preview Enhanced and
Markdown Writer
to be installed.
Plus Pandoc.

jack_cat

Thank you, Dragonfly.
I am very grateful to receive a suggestion for a working procedure.
I have high hopes and have downloaded and installed Atom.
So, learning curve ahead. I am reading the documentation, (but I won't finish today as I have a work day.)
So far I am not yet clear on how this workflow is going to go or how Scribus is going to read Atom's markup, and hope that this will become apparent. And so this post is written from a place of just beginning to find my way in the dark.

So of course I may answer these preliminary questions just by reading the docs, hope so. And if you think it will be obvious, then I will probably get it in a day or two. But, first question:

Does this then require one continuous text file to be imported into Scribus so that all of the footnote code to be included in a single Scribus file is contained within a single Atom file? I ask this because in that case I will have to plan the work flow somewhat differently (which is perhaps lame and ad hoc anyway, so suggestions welcome). Much of my text consists of captions for graphical information, with source notes, which consist of individual snippets like this:

Ex. 2.02     Graphic showing blah-blah-blah from Source XYZ [end note # superscript]

which I typically put in a text box that does not flow to another and group with the graphic so as to move them around. If these must be all in a single file flowing from one text box to the next, that will be interesting, not impossible, I'm sure.
And then, in between the examples, I have blocks of explanatory text which often have a note at the end of each sentence.

(When I started on this set of related projects several years ago, I tried composing text apart from the graphics with the purpose of assembling later, when it became apparent that simultaneous text and graphics together were unmanageable in a word processor, but I found it much more convenient to use Scribus as a WYSIWYG, outputting it to PDF frequently to get a better visual check, as the visual composition of each page affects the order of material in order to take advantage of the layout of facing pages. I have so far not been able to plan all of this outside of Scribus and just dump it in and arrange it. If this is turns out to be an obstacle to this footnote add-on then I will reconsider it, and suggestions are of course welcome.)

Could you be so kind as to provide a sample of the output including the markdown-footnote code?
And maybe a screen shot of it from within Atom?

Anyway, I am working on it and perhaps by Tuesday or Wednesday I will have made some progress.

Thanks!!
jc

jack_cat

Dragonfly, I am hunting up your other posts re Atom on the scribus forum, to see what I can learn.
So far it is mostly Greek, as I am not a programmer! (sorry) (I can write raw HTML however if that will be useful.)
I do have Atom installed with the several packages you mentioned.

here is a preliminary effort:
temp.txt generated with Atom:

This is a sample footnote [^9685]
[^9685]: source: blah blah etc.
text continues with second footnote [^eb6b]
[^eb6b]: source two blah blah

I don't yet know how to use this. Clearly I have to do something else with it than just dump it into Scribus.
I put it in a text box in Scribus using "get text", and it does ahem nothing... yet, anyway... except print as is,
with brackets and markup code.

thanks
jc

dragonfly

I have started you along this path and I hope you will find the exercise useful.
First question: are you using Windows/Linux/Mac?
My advice refers to Linux notation but the tools I refer to can be used across Window/Linux/Mac.

The reason I decided to adopt a toolchain integrated with Scribus was to develop a more agile workflow to accommodate frequent changes in documents to be published.  As you know Scribus can be used as a dedicated content editor but it is not ideal since we have to dive into properties windows when significant changes are required.  It was for this reason that I decided for my purposes to leverage Scribus as a layout engine and not as a content editor.

You have started by installing Atom.  It is quite easy to install Atom packages which extend Atom's functionality.   At current count there are over 7,800 packages to choose from.

...

Now to first answer your immediate questions.

(1) Any markdown file should end with the extension *.md and not *.txt. You will see no effect with a text file.

(2) You need to install an Atom package - Markdown Preview Enhanced.

(3) Although you may have installed packages you will need to Toggle to see the Preview Window (WYSIWYG) in the right pane before it will be sent to Scribus.

(4) Note the advice below to run Window:Reload after installation of packages to refresh Atom, before the packages are seen in Packages menu. And packages need to be toggled to enable them.

(5) Be patient about the final stage pushing Atom content into Scribus. Learn the pre processing stages first. Further advice will follow on Atom -> Scribus link.

...

Let us start by installing a few useful Atom packages.

In addition to Atom you are recommended to install Pandoc which is a generic document converter.

It is helpful if you start by installing the Atom package Project Manager Project Viewer.  This allows multiple project assets to be viewed in Atom left pane.

You can navigate through all Packages by going to Atom topbar > Packages and using the search facility.

And here .. https://atom.io/packages

But with the large number of packages available to choose from it is easier for a new user to narrow down the search options by a google search for a required feature. Use a google pattern in your browser .. some examples follow ...

Atom NEAR markdown .. you will also find a galaxy of tutorials
Atom NEAR footnote
Atom NEAR endnote
Atom NEAR snippets

If you navigate to topbar View > Toggle Tree View you can show/hide the left navigation panel.

Referring to my own history of installation commands I had installed Project Manager Project Viewer by running this command ..

apm install project-manager

apm install project-viewer

Late edit: Advice later in this thread was updated to install packages project-viewer and atom-material-ui


In the command terminal the installation is confirmed.

Now after installation of any package the Atom instance has to be reloaded before the installed package is seen in the topbar Packages menu.

In Linux we can reload by hitting the hot keys [Ctrl + Shift + P]
or in Atom .. topbar > Packages > Command Palette > Toggle

Either usage will bring up a package search window.

Now type in "Window" and choose the option Window:Reload

This will reload Atom and now the package Project Manager Project Viewer will be seen to be added to the Packages menu.
The submenus are ..
List Projects
Save Project
Edit Project
Edit Projects
Update Projects



If you choose the submenu "Edit Projects" this opens a configuration file where paths to different projects can be defined.  The path to this file is

/home/username/.atom/projects.cson


This gives you the project management framework to create folders and files for one or more projects.

...

Next we add Packages for using markdown. We use the same procedure as above.

apm install markdown-preview-enhanced
apm install markdown-writer
apm install markdown-footnote

And after installation .. again .. Window:Reload    (n.b. not Windows)
...


You might create a new project folder named "test" to experiment with features.

In project folder "test" (seen in left navigation panel) you can create a new file .. example.md

At the top of every markdown file a metadata block is inserted. Follow the markdown syntax guide.

A basic block might be for starters ..

---
title: 'Integrate Atom with Scribus'
author: 'jack_cat'
date: '26th August 2018'
---

Now you can experiment with the basics of markdown syntax.
Refer to markdown guide.

The key package to enable (after you have installed it) is Markdown Preview Enhanced.
Look at topbar Packages > Markdown Preview Enhanced > Toggle
and you will see a content preview window in right pane.

Any content you insert into your markdown file will be seen in the Preview pane.

...

To go to the completion, in the Preview window right click on the content and you will see

Open in Browser
HTML
Chrome (Puppeteer)
PhantomJS
PDF (prince)
eBook
Pandoc
Save as Markdown
Image Helper
Sync Source


You can start with "Open in Browser" but later you can try the advanced features available in Pandoc (more on that later).  You can output to web or to Scribus. Pass over the other options while you are learning.

...

To avoid composing large documents you can structure your document into a tree structure in Project Manager.

test >

    merge.md    (concatenating the assets below using @import)
   
       sections>
           section01.md
           section02.md
           section03.md
           section04.md
           
      images>
          image01.jpeg
          image02.jpeg
          image03.jpeg
          image04.jpeg
                   
      vectors>
          image01.svg
          image02.svg
          image03.svg
          image04.svg
         
Now in merge.md you can concatenate content (text and images) by using a series of @import commands embedded in merge.md.

@import "/sections/section01.md"
@import "/images/image01.jpeg"

@import "/sections/section02.md"
@import "/images/image02.jpeg"   


Note that sections might also contain @import commands so you can build a tree structure of imports.  In merge.md you can for test purposes also comment out entire blocks of @import commands (wrapped in HTML comments tags .. <!-- ... -->) so that they are not concatenated and reduce processing/memory load while previewing.

<!--
@import "/sections/section02.md"
@import "/images/image02.jpeg"
-->
...

Turning now to the topic of this thread you wll have installed the package Markdown Footnote.

https://atom.io/packages/markdown-footnote

You will find different approaches from different developers but this is a good start.

At any point in a section of the main markdown document apply the hotkeys [Ctrl + Shift + B] or use the package menu.

This inserts a footnote and the references are seen in the Preview page.

Note that link and notes are seen in same page.  You require all footnotes to be concatenated at the end of your book but we will address that later.

This should give you enough to get started.  The final stages will address pushing the previewed content into Scribus.
       

jack_cat

"This should give you enough to get started.  The final stages will address pushing the previewed content into Scribus."

Hoo ah... I will require a little bit of time to digest this, D-fly!
I will copy it to my desktop and chew on it.
Thank you for your time, and going a little bit above & beyond.
over and out for now.

almost forgot the question: I have Windows 7 Pro version 6.1.
jc

jack_cat

Hi Dragonfly,
I have installed the packages and have successfully followed your instructions as far as the section beginning:

<snip>
To avoid composing large documents you can structure your document into a tree structure in Project Manager.
test >
    merge.md    (concatenating the assets below using @import)
</snip>

... and at this point I am slowing down...
I'm going to create "merge.md" and put it in the "test" folder... (done)
the instruction " (concatenating the assets below using @import)" OK, got that.
So, I'm going to create a series of .md files and concatenate them by using @import commands in the merge.md file.

BUT first,
could you also please give me a broader overview of what is to be accomplished as though describing to a blind man how to find the bathroom?
Is it this? :
textfile1.md + textfile2.md + ... > concatenated to merge.md > ? > scribus

Will these .md files then serve as containers for all the text that I want to place in Scribus?
How much text might each .md file best contain?
How much content should the merge.md file concatenate?
How many .md files and merge1.md ... merge2.md files might I be contemplating creating and using?
What should NOT be in a .md file?
Should I point Atom's project directory to the folder I am keeping my Scribus project in and make folders there to keep the .md files in?
Or is there any reason to keep this inside the atom directory as the default has it? (just checking)
Other than specifically for this task of footnotes, what advantage is there to Markdown? Is it what you use for all text?

I feel like I am inside a black box with gloves on handling unknown objects, and I need some more orientation.
This seems like the same kind of problem I faced trying to use Lilypond for music notation - I need WYSIWYG for that, and have difficulty visualizing abstract output or even keeping track of things.
Just for the sake of overview, so that if I take my head out of the black box I know where I might be going.

Anyway, I will continue to work through (and experiment with) your instructions regardless, and will check back later.
Got a few error messages already!
thanks
jc
   

jack_cat

Now I have two files,
/markdown_text-files/markdown-test.md (in subdirectory)
and
merge_01.md (in parent directory to /markdown_text-files/ )

However, I am having trouble getting the merge file to refresh its content when I make changes to the source file and save them...

Update: found the refresh button in the markdown preview enhance screen, solved.
Probably ready for the next step now... knock on wood.

jc


dragonfly

Interim answers to your questions.

Quotecould you also please give me a broader overview of what is to be accomplished as though describing to a blind man how to find the bathroom?
...

textfile1.md + textfile2.md + ... > concatenated to merge.md > ? > scribus

That is the general idea although I have deliberately left out the final stage of pushing content into Scribus since that is work in progress.

merge.md will be the clearing house for all content to go into a book or a chapter.

You could have a merge.md for each chapter for example. Then a root merge.md which imports all your chapter merge.md files.

As explained you can build up a tree of merge.md files.  You can preview any of these merge.md files.

One tip. You can quickly inject lorem ipsum test text by typing in a blank file .. lorem .. at beginning of a line then after typing lorem hit tab key.  This is a default snippet.  Later you can add your own snippets.  Edit > Snippets ...

QuoteHow much text might each .md file best contain?

That is up to you.  You might wish to hold an entire chapter in a *.md file, or fragments of a chapter.

QuoteHow much content should the merge.md file concatenate?

You write "the" merge.md file but there can be multiple merge.md files.  The limitations are the amount of memory consumed.   And remember that you can comment out @import lines while previewing.  It is pointless previewing your entire book while you are focussed on writing a chapter. You referred in an earlier fragment of this thread to "memory issues".  So adjust the size of files to remove this memory issue.

QuoteHow many .md files and merge1.md ... merge2.md files might I be contemplating creating and using?

You have not explained how many pages will be in the final publication. But one might assume from your earlier writing .. "All of my many files (accumulated last 3 years) are made with 1.4.6" .. that this could run into many pages. Certainly others in this forum refer to hundreds of pages. This requires a a design of fragments of documents to be concatenated into end product. We have not yet considered how to include legacy *.sla files in this workflow.

As a rough rule of thumb you might hold just twenty or so @import lines in a merge.md. That is, one merge.md serving twenty imported files. But after practice you will find your own workable ratio.

QuoteWhat should NOT be in a .md file?

Nothing that I can think of, right now. You can mix text, images, svg.
As a foretaste of what will follow, you will later learn that custom commands can be added to markdown to route (push) content into Scribus document objects.

QuoteShould I point Atom's project directory to the folder I am keeping my Scribus project in and make folders there to keep the .md files in?

Avoid mixing *.md and *.sla files.

In Atom go to Packages > Project Manager Project Viewer > Edit Projects Utilities > Open database file... and in the file projects.cson project-viewer.json add a path to your Scribus project folder. Now go back to Project Manager > List Projects and click on the newly added path. You should see your Scribus repository folder in the projects directory.

Late edit: Apologies for confusion in this thread by later changing from using Project Manager to Project Viewer.

Now if in Atom you click on any of your *.sla files you will see the content as raw text (no syntax colour). This is because at this point Atom does not recognise *.sla files as *.xml files.

To correct this, view any *.sla file in Atom and go to Edit > Select Grammar and in the popup window type .. XML.

The xml syntax should now be coloured as in *,xml for any *.sla file you open.   This will take you into another world of xml syntax which we will consider later. You will see your text embedded in PAGEOBJECTS.

QuoteOther than specifically for this task of footnotes, what advantage is there to Markdown? Is it what you use for all text?

In a word - agility. And yes, it can be used for all content, freeing you from proprietary applications.

The benefits of markdown cannot be adequately summarised in this post.

Think of each of your *.md files as a parcel in the context of a post office.  Each parcel will be addressed to an address associated with postcode.  We need a routing system for such delivery of hundreds of parcels addressed to Scribus end document template(s).

Basically the markdown documents will (later) have routing commands embedded in syntax to route the parcels (document fragments) into target frames in a Scribus template or templates previously prepared in Scribus (but empty of content).

Meanwhile the markdown files can be exported using Markdown Preview Enhanced into chosen formats such as EPS or PS exactly as if you were importing (say) InDesign content into Scribus.  More on this later.

You will have no further need to go into Scribus document textframes and "import" text. Instead the content will be "pushed" from Atom into target frames.  The Scribus document styles will also be specified in markdown syntax.


jack_cat

Hi Dragon fly -
Last week I got heavy into learning Atom (went to youtube for tutorials) and then a lightning surge took out my computer's power supply, so I have had no computer for a week, and just got it back today. Fortunately, no data loss. I know this is up there with "the dog ate my homework".

Anyway, the Atom project is very interesting and I will take some more time next week to work on it.
I do see that Atom is a very interesting tool (with far more capacities than I am likely to use)
and I have a much better idea of how a reorganized work flow could go through it.
I do have my doubts - that is, of course, whether the required learning curve is worth the benefits, and whether it isn't going after a fly with a blunderbuss, but there do appear to be some possible benefits beyond the footnote issue, and considering the vast amount of time I have put in already on various aspects of my writing project, a little detour to learn another program is not unreasonable.

you wrote:
"You have not explained how many pages will be in the final publication. But one
might assume from your earlier writing .. "All of my many files (accumulated last 3
years) are made with 1.4.6" .. that this could run into many pages. Certainly
others in this forum refer to hundreds of pages. This requires a a design of
fragments of documents to be concatenated into end product. We have not yet
considered how to include legacy *.sla files in this workflow."

The draft I printed in April was about 250 pages with all the front & back matter, and
had eleven chapters; I have been busy pruning it to get it under 200. A chapter has
10 to 40 pages of text and graphics, all b + w only; each chapter is a separate .sla file, plus
more files for the front matter, index, notes, appendices.

As far as legacy .sla docs to be recycled into a new work flow, it probably wouldn't be any worse than
any other major revision, I could just copy the text in chunks as necessary from the PDF output from scribus.
I don't see that it's a major issue at this point but thanks for thinking of it.
The only thing really in front of my face right now is to study the input and output routine from Atom.
Apparently it exports in a lot of possible formats, so for instance I could output HTML for practice and view
it in the browser while I am just practicing the merge.md routine. I got the idea that it might even conceivably
bypass Scribus by using some other format. I am just playing with it now.

Thank you for your answers to my questions, and maybe about next Tuesday I should have another report.
In the meantime I am copying your post above and will chew on it.
j.