This problem is fairly picayune, but nevertheless it is frustrating. I had just added Death Record fact to a person. I was doing my thing to run a quick one generation Descendant Narrative report to be sure the added information appeared correctly in in the report. The added information looked just fine. But I noticed a strange problem in some data that had been added to the person years ago. Namely, there is a blank line between the 1880 Census fact and the 1900 Census fact that shouldn’t be there. The yellow box in the image is not part of the report. It’s just annotation I added to the image to point to where the blank line that shouldn’t be there is located.
My sentence templates all start with a carriage return. It turns out that the note for the 1880 Census fact exactly fills its line. If I add one extra character to that note so that it will not fit on one line, the blank line disappears. If I remove one character from the that note so that it does not quite file the line, the blank line disappears.
If I print the report from RM8, the extra blank line is still there.
If I save the report as a PDF file, the the extra blank line is still there.
If I save the report as a DOCX file, the extra blank line is not there.
If I create the report in RM7, the extra blank line is not there on the screen nor no matter what else I do with the report.
The frustration is that I spent about 45 minutes trying to figure out what I had done wrong to create the problem in RM8. Apparently, I had not done anything wrong. Instead, I think it’s a bug.
I tried to recreate the problem within a note by creating text which exactly filled a line and by having the next character in the note be a carriage return. That doesn’t create the problem. The problem only seems to appear when a note exactly fills its last line and when a hard carriage return comes from the sentence template for the next fact.
I suspect very strongly that the bug is in a software library that RM8 is using to create reports rather than in the RM8 code itself. If so, that would make getting a fix very problematic.
I have been programming since 1965. As such, I’m very familiar with this kind of bug, and such bugs can be the devil to fix. It’s similar to the problem of writing code that produces a report. After filling a page with text, does the report proceed to the next page after the page is full or when the first character is produced for the next succeeding page. It may sound like a distinction without a difference, but I know from painful coding experience that there is a difference. Another variation on the same theme is the following. Suppose you load 10 pages of paper into a printer and print a 10 page report. Does the printer know it’s out of paper right then? Or does the printer wait until it needs to print the first page from another report before knowing that it is out of paper? I’ve seen printers that do it both ways.
So in this case, instead of filling a page, RM is filling a line after which it outputs a soft carriage return. So should it output the soft carriage return at exactly the time it detects the line is full, or should it wait until there is one more character to go on the line which would force it to the next line? And what if that “one more character” actually is a hard carriage return from the next sentence template as in my case?
Right now, I don’t see a good workaround. And remember that changing fonts or point sizes or anything like in the report that can change where the soft carriage returns need to go, irrespective of the text that’s actually in the note.