sillsdev / ptx2pdf

XeTeX based macro package for typesetting USFM formatted (Paratext output) scripture files
23 stars 8 forks source link

Output fails with complaint: Illegal unit of measure (pt inserted). #277

Closed viverechristus closed 4 years ago

viverechristus commented 4 years ago

In two different configurations, I'm getting similar (but not identical) problems. Both are connected to units of measure. Here's one, related to \r (the other complains about \s -- same text, but different configuration).

The relevant part of the log:

Baselineskip for p undefined, set to 18.0pt
topskip=18.0pt
\openout0 = `ptxprint-Default-MATJraKhmr.parlocs'.

(no adjustment list "../shared/ptxprint/Default/AdjLists/41MATJraKhmr-Default.S
FM.adj" found)
(no picture list "41MATJraKhmr-Default.SFM.piclist" found)
(./41MATJraKhmr-Default.SFM
! Illegal unit of measure (pt inserted).
<to be read again> 
                   <
\p@ram ->4 <
            -4 is the value set in usfm.sty
\p@rstyle ...fhe@dings \nobreak \fi \vskip \p@ram 
                                                  \verticalsp@ceunit \fi \re...
l.12 \r
        (លុក 3:23-38) 
Here is how much of TeX's memory you used:

I have turned off the extra stylesheets in Advanced, and I'm not including pictures or doing anything unusual. I have not edited the default settings in the new Styles tab. Our USFM.sty is (I think) "out of the box".

I'll send a zip by email.

Josh

davidg-sil commented 4 years ago

Did you edit that log, particularly the '4 is the value...' bit? If not, well.... that has no business being in a parameter!

viverechristus commented 4 years ago

No, that's a straight copy paste job. Do you want a full log?

On Wed, Oct 28, 2020, 6:39 PM davidg-sil notifications@github.com wrote:

Did you edit that log, particularly the '4 is the value...' bit? If not, well.... that has no business being in a parameter!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sillsdev/ptx2pdf/issues/277#issuecomment-717877328, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAG7N3SNPNA463CJJNPLE7TSM77IFANCNFSM4TBZMNHA .

davidg-sil commented 4 years ago

I think I've seen enough of the log... I'd like to see any style files the job calls in, though, or at least, the line where that comment is from. My guess is that someone has put a comment in the file after what they consider the value, but the code is taking the whole line after the marker as the value. The question from me, thus is actually whether the comment is user-generated or machine-generated....

viverechristus commented 4 years ago

I think I've seen enough of the log... I'd like to see any style files the job calls in, though, or at least, the line where that comment is from. My guess is that someone has put a comment in the file after what they consider the value, but the code is taking the whole line after the marker as the value. The question from me, thus is actually whether the comment is user-generated or machine-generated....

Do you need anything that wasn't in the archive zip that I sent by email? The job shouldn't be calling any extra style sheets:

image

davidg-sil commented 4 years ago

It probably was in the zip file, but I don't get the support emails... 11 hour time differences don't help either.

davidg-sil commented 4 years ago

OK, I have the zip file. I see the following in your [project]/shared/ptxprint/Default/ptxprint.sty:

image

Without rewriting the macros to allow multi-word input on some lines but not others, there is no way for the code to deal with such corrupt input.

I have checked the code history, 'is the value' was never in any part of the code, so I think it must have been a bad manual edit of some style file in the project's history.

The following seems to deal with it: 1) close ptxprint (skipping this step doesn't work, ptxprint seems to remember the file contents). 2) edit the above-mentioned file and remove the extraneous input 3) restart ptxprint.

If this doesn't solve it, then I would assume the offending problematic file is still on your computer, probably called something-or-other.sty

If you know/suspect who might have corrupted the file, please let them know that comments should be preceded by # (in style files) or % (in style files or tex files).

markpenny commented 4 years ago

@viverechristus - is this issue now resolved for you? If so, please close it.

viverechristus commented 4 years ago

Resolved. I deleted all my configurations and started fresh, copying back in the piclist, changes file, and configuration file. (I tried getting rid of the offending lines in various .sty files, but they kept coming back.) So consider this fixed.

However, it seems that there's an underlying problem. I have sometimes commented out stylesheet lines and added comments explaining what they were doing. So:

%\SpaceAfter 4 <-4 is the value set in usfm.sty

When PTXprint runs, it puts in a linebreak after %, so that the commented out line becomes active. This seems like a bug to me. Or maybe I'm commenting lines out incorrectly?

Thanks for your follow-up with this. (Sorry for the delay replying. We just made a temporary move to Phnom Penh for my wife to give birth, so the last week I've been away from PTXprint.