GNU bug report logs - #27088
11.90; preview-latex fails for file names of certain length

Previous Next

Package: auctex;

Reported by: Ikumi Keita <ikumi <at> ikumi.que.jp>

Date: Fri, 26 May 2017 15:22:01 UTC

Severity: normal

Tags: fixed

Found in version 11.90

Done: Ikumi Keita <ikumi <at> ikumi.que.jp>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 27088 in the body.
You can then email your comments to 27088 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-auctex <at> gnu.org:
bug#27088; Package auctex. (Fri, 26 May 2017 15:22:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ikumi Keita <ikumi <at> ikumi.que.jp>:
New bug report received and forwarded. Copy sent to bug-auctex <at> gnu.org. (Fri, 26 May 2017 15:22:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ikumi Keita <ikumi <at> ikumi.que.jp>
To: bug-auctex <at> gnu.org
Subject: 11.90; preview-latex fails for file names of certain length
Date: Sat, 27 May 2017 00:14:45 +0900
[Message part 1 (text/plain, inline)]
Remember to cover the basics.  Including a minimal LaTeX example
file exhibiting the problem might help.

Preview-latex fails if the length of the file name or the amount of the
document is sufficiently large.

[How to reproduce]
(0) Enable preview-latex.
(1) Save the attached file "preview-section-test.tex" in /tmp/ and open it.
(2) Type C-c C-p C-d and answer with "n" to "Cache preamble?" question.
(3) The ghostscript process hangs with error message "No bounding box"
and the process buffer is displayed.  Only the partial "\section{xxx}"
are covered by the expected images and rests remains icons of road
construction sign.  See the attached screenshot.

It is really strage to me that the length of the file name seems to be
related to this symptom.  If the *same* file is saved under the file
name "xxxxxxxxxxxxxxxxxx.tex" (18 x's), no errors occur and all
"\section{xxx}" are covered by suitable images after C-c C-p C-d.  But
the symptom occurs again if the file name is "xxxxxxxxxxxxxxxxxxx.tex"
(19 x's).

The amount of the document (or the number of pieces to be covered by
images in the buffer?) seems to be related, too.  If all the
"\section{xxx}" but the first "\section{abc}" are commented out in
"preview-section-test.tex", C-c C-p C-d runs without any problems.

Caching preamble also seems to be related.  If I answer with "y" to
"Cache preamble?" in "preview-section-test.tex", it doesn't exhibit any
problem.

Emacs  : GNU Emacs 25.2.1 (x86_64-unknown-freebsd11.0, GTK+ Version 3.18.8)
 of 2017-05-12
Package: 11.90

Run buffer contents:

Running `Preview-LaTeX' on `preview-section-test' with ``pdflatex  -file-line-error   "\nonstopmode\nofiles\PassOptionsToPackage{active,tightpage,auctex}{preview}\AtBeginDocument{\ifx\ifPreview\undefined\RequirePackage[displaymath,floats,graphics,textmath,sections,footnotes]{preview}[2004/11/05]\fi}" "\input" preview-section-test.tex''
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
LaTeX2e <2017/01/01> patch level 3
Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.

No auxiliary output files.

(./preview-section-test.tex
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size10.clo))
No file preview-section-test.aux.
(/usr/local/texlive/texmf-local/tex/latex/preview/preview.sty
(/usr/local/texlive/texmf-local/tex/latex/preview/prtightpage.def)
(/usr/local/texlive/texmf-local/tex/latex/preview/prauctex.def
No auxiliary output files.


(/usr/local/texlive/texmf-local/tex/latex/preview/prauctex.cfg))
(/usr/local/texlive/texmf-local/tex/latex/preview/prfootnotes.def)
Preview: Fontsize 10pt
Preview: PDFoutput 1
)
./preview-section-test.tex:4: Preview: Snippet 1 started.
<-><->
      
l.4 \section
            {abc}
Preview: Tightpage -32891 -32891 32891 32891
./preview-section-test.tex:4: Preview: Snippet 1 ended.(655359+0x22609920).
<-><->
      
l.4 \section{abc}
                 
[1{/usr/local/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
./preview-section-test.tex:6: Preview: Snippet 2 started.
<-><->
      
l.6 \section
            {def}
./preview-section-test.tex:6: Preview: Snippet 2 ended.(655359+0x22609920).
<-><->
      
l.6 \section{def}
                 
[2]
./preview-section-test.tex:8: Preview: Snippet 3 started.
<-><->
      
l.8 \section
            {ghi}
./preview-section-test.tex:8: Preview: Snippet 3 ended.(655359+183500x22609920)
.
<-><->
      
l.8 \section{ghi}
                 
[3]
./preview-section-test.tex:10: Preview: Snippet 4 started.
<-><->
      
l.10 \section
             {jkl}
./preview-section-test.tex:10: Preview: Snippet 4 ended.(655359+183500x22609920
).
<-><->
      
l.10 \section{jkl}
                  
[4]
./preview-section-test.tex:12: Preview: Snippet 5 started.
<-><->
      
l.12 \section
             {mno}
./preview-section-test.tex:12: Preview: Snippet 5 ended.(608173+0x22609920).
<-><->
      
l.12 \section{mno}
                  
[5]
./preview-section-test.tex:14: Preview: Snippet 6 started.
<-><->
      
l.14 \section
             {pqr}
./preview-section-test.tex:14: Preview: Snippet 6 ended.(608173+183500x22609920
).
<-><->
      
l.14 \section{pqr}
                  
[6]
./preview-section-test.tex:16: Preview: Snippet 7 started.
<-><->
      
l.16 \section
             {stu}
./preview-section-test.tex:16: Preview: Snippet 7 ended.(608173+0x22609920).
<-><->
      
l.16 \section{stu}
                  
[7]
./preview-section-test.tex:18: Preview: Snippet 8 started.
<-><->
      
l.18 \section
             {vwx}
./preview-section-test.tex:18: Preview: Snippet 8 ended.(608173+0x22609920).
<-><->
      
l.18 \section{vwx}
                  
[8]
./preview-section-test.tex:20: Preview: Snippet 9 started.
<-><->
      
l.20 \section
             {yz}
./preview-section-test.tex:20: Preview: Snippet 9 ended.(608173+183500x22609920
).
<-><->
      
l.20 \section{yz}
                 
[9]
./preview-section-test.tex:22: Preview: Snippet 10 started.
<-><->
      
l.22 \section
             {123}
./preview-section-test.tex:22: Preview: Snippet 10 ended.(608173+0x22609920).
<-><->
      
l.22 \section{123}
                  
[10] )
(see the transcript file for additional information)</usr/local/texlive/2016/te
xmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb>
Output written on preview-section-test.pdf (10 pages, 16440 bytes).
Transcript written on preview-section-test.log.

TeX Output exited as expected with code 1 at Fri May 26 23:43:25
Running `Preview-PDF2DSC' with ``pdf2dsc preview-section-test.pdf preview-section-test.prv/tmp37532N8D/preview.dsc''

Preview-PDF2DSC finished at Fri May 26 23:43:25
Running `Preview-Ghostscript' with ``/usr/local/texlive/2016/bin/amd64-freebsd/rungs -dOutputFile\=\(preview-section-test.prv/tmp37532N8D/pr1-\%d.png\) -q -dDELAYSAFER -dNOPAUSE -DNOPLATFONTS -dPrinted -dTextAlphaBits\=4 -dGraphicsAlphaBits\=4 -sDEVICE\=png16m -r108.606x108.587''
Ghostscript filter: No bounding box
Ghostscript filter: No bounding box
Ghostscript filter: No bounding box
Ghostscript filter: No bounding box


current state:
==============
(setq
 AUCTeX-version "11.90"
 LaTeX-command-style '((""
			"%(PDF)%(latex) %(file-line-error) %(extraopts) %S%(PDFout)")
		       )
 image-types '(svg png gif tiff jpeg xpm xbm pbm postscript)
 preview-image-type 'png
 preview-image-creators '((dvipng
			   (open preview-gs-open preview-dvipng-process-setup)
			   (place preview-gs-place)
			   (close preview-dvipng-close))
			  (png (open preview-gs-open) (place preview-gs-place)
			   (close preview-gs-close))
			  (jpeg (open preview-gs-open)
			   (place preview-gs-place) (close preview-gs-close))
			  (pnm (open preview-gs-open) (place preview-gs-place)
			   (close preview-gs-close))
			  (tiff (open preview-gs-open)
			   (place preview-gs-place) (close preview-gs-close))
			  )
 preview-dvipng-image-type 'png
 preview-dvipng-command "dvipng -picky -noghostscript %d -o \"%m/prev%%03d.png\""
 preview-pdf2dsc-command "pdf2dsc %s.pdf %m/preview.dsc"
 preview-gs-command "/usr/local/texlive/2016/bin/amd64-freebsd/rungs"
 preview-gs-options '("-q" "-dDELAYSAFER" "-dNOPAUSE" "-DNOPLATFONTS"
		      "-dPrinted" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4")
 preview-gs-image-type-alist '((png png "-sDEVICE=png16m")
			       (dvipng png "-sDEVICE=png16m")
			       (jpeg jpeg "-sDEVICE=jpeg")
			       (pnm pbm "-sDEVICE=pnmraw")
			       (tiff tiff "-sDEVICE=tiff12nc"))
 preview-fast-conversion t
 preview-prefer-TeX-bb nil
 preview-dvips-command "dvips -Pwww -i -E %d -o %m/preview.000"
 preview-fast-dvips-command "dvips -Pwww %d -o %m/preview.ps"
 preview-scale-function 'preview-scale-from-face
 preview-LaTeX-command '("%`%l \"\\nonstopmode\\nofiles\\PassOptionsToPackage{"
			 ("," . preview-required-option-list)
			 "}{preview}\\AtBeginDocument{\\ifx\\ifPreview\\undefined" preview-default-preamble "\\fi}\"%' %t")
 preview-required-option-list '("active" "tightpage" "auctex"
				(preview-preserve-counters "counters"))
 preview-preserve-counters nil
 preview-default-option-list '("displaymath" "floats" "graphics" "textmath"
			       "sections" "footnotes")
 preview-default-preamble '("\\RequirePackage["
			    ("," . preview-default-option-list)
			    "]{preview}[2004/11/05]")
 preview-LaTeX-command-replacements nil
 preview-dump-replacements '(preview-LaTeX-command-replacements
			     ("\\`\\([^ ]+\\)\\(\\( +-\\([^ \\\\\"]\\|\\\\\\.\\|\"[^\"]*\"\\)*\\)*\\)\\(.*\\)\\'" "\\1 -ini -interaction=nonstopmode \"&\\1\" " preview-format-name ".ini \\5")
			     )
 preview-undump-replacements '(("\\`\\([^ ]+\\) .*? \"\\\\input\" \\(.*\\)\\'"
				"\\1 -interaction=nonstopmode \"&"
				preview-format-name "\" \\2")
			       )
 preview-auto-cache-preamble 'ask
 preview-TeX-style-dir nil
 )

Output from running `/usr/local/texlive/2016/bin/amd64-freebsd/rungs -h':
GPL Ghostscript 9.16 (2015-03-30)
Copyright (C) 2015 Artifex Software, Inc.  All rights reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
 -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
 -g<width>x<height>  page size in pixels   | -r<res>  pixels/inch resolution
 -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
 -sOutputFile=<file> select output file: - for stdout, |command for pipe,
                                         embed %d or %ld for page #
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PostScriptLevel3 PDF
Default output device: bbox
Available devices:
   alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 ap3250 appledmp atx23
   atx24 atx38 bbox bit bitcmyk bitrgb bj10e bj10v bj10vh bj200 bjc600
   bjc800 bjc880j bjccmyk bjccolor bjcgray bjcmono bmp16 bmp16m bmp256
   bmp32b bmpgray bmpmono bmpsep1 bmpsep8 ccr cdeskjet cdj1600 cdj500 cdj550
   cdj670 cdj850 cdj880 cdj890 cdj970 cdjcolor cdjmono cdnj500 cfax chp2200
   cif cljet5 cljet5c cljet5pr coslw2p coslwxl cp50 cups declj250 deskjet
   devicen dfaxhigh dfaxlow display dj505j djet500 djet500c dl2100 dmprt
   dnj650c epag epl2050 epl2050p epl2120 epl2500 epl2750 epl5800 epl5900
   epl6100 eplcolor eplmono eps2write eps9high eps9mid epson epsonc escpage
   faxg3 faxg32d faxg4 fmlbp fmpr fs600 gdi hl1240 hl1250 hl7x0 ibmpro ijs
   imagen inferno inkcov iwhi iwlo iwlq jetp3852 jj100 jpeg jpeggray la50
   la70 la75 la75plus laserjet lbp310 lbp320 lbp8 lex2050 lex3200 lex5700
   lex7000 lips2p lips3 lips4 lips4v lj250 lj4dith lj4dithp lj5gray lj5mono
   ljet2p ljet3 ljet3d ljet4 ljet4d ljet4pjl ljetplus ln03 lp1800 lp1900
   lp2000 lp2200 lp2400 lp2500 lp2563 lp3000c lp7500 lp7700 lp7900 lp8000
   lp8000c lp8100 lp8200c lp8300c lp8300f lp8400f lp8500c lp8600 lp8600f
   lp8700 lp8800c lp8900 lp9000b lp9000c lp9100 lp9300 lp9400 lp9500c lp9600
   lp9600s lp9800c lq850 lvga256 lxm3200 lxm5700m m8510 mag16 mag256
   md1xMono md2k md50Eco md50Mono md5k mgr4 mgr8 mgrgray2 mgrgray4 mgrgray8
   mgrmono miff24 mj500c mj6000c mj700v2c mj8000c ml600 necp6 npdl nullpage
   oce9050 oki182 oki4w okiibm omni oprp opvp paintjet pam pbm pbmraw pcl3
   pcx16 pcx24b pcx256 pcxcmyk pcxgray pcxmono pdfwrite pdfwrite pdfwrite
   permute pgm pgmraw pgnm pgnmraw photoex picty180 pj pjetxl pjxl pjxl300
   pkm pkmraw pksm pksmraw plan plan9bm planc plang plank planm plib plibc
   plibg plibk plibm png16 png16m png256 pngalpha pnggray pngmono pnm pnmraw
   ppm ppmraw pr1000 pr1000_4 pr150 pr201 ps2write psdcmyk psdrgb pxlcolor
   pxlmono r4081 rpdl sgirgb sj48 spotcmyk st800 stcolor sunhmono t4693d2
   t4693d4 t4693d8 tek4696 tiff12nc tiff24nc tiff32nc tiffcrle tiffg3
   tiffg32d tiffg4 tiffgray tifflzw tiffpack tiffsep uniprint vgalib xcf
   xcfcmyk xes
Search path:
   /usr/local/share/ghostscript/9.16/Resource/Init :
   /usr/local/share/ghostscript/9.16/lib :
   /usr/local/share/ghostscript/9.16/Resource/Font :
   /usr/local/share/ghostscript/fonts :
   /usr/local/share/fonts/default/ghostscript :
   /usr/local/share/fonts/default/Type1 :
   /usr/local/share/fonts/default/TrueType : /usr/local/share/cups/fonts
Ghostscript is also using fontconfig to search for font files
For more information, see /usr/local/share/ghostscript/9.16/doc/Use.htm.
Please report bugs to bugs.ghostscript.com.


[preview-section-test.tex (text/x-tex, attachment)]
[screenshot.png (image/png, attachment)]

Information forwarded to bug-auctex <at> gnu.org:
bug#27088; Package auctex. (Fri, 22 Sep 2017 06:08:02 GMT) Full text and rfc822 format available.

Message #8 received at 27088 <at> debbugs.gnu.org (full text, mbox):

From: Ikumi Keita <ikumi <at> ikumi.que.jp>
To: 27088 <at> debbugs.gnu.org
Cc: 20773 <at> debbugs.gnu.org
Subject: Re: bug#27088: 11.90;
 preview-latex fails for file names of certain length
Date: Fri, 22 Sep 2017 15:07:15 +0900
[Message part 1 (text/plain, inline)]
Hi all,

At last I managed to figure out the roots of this wierd symptom.  And it
also turned out that bug#20773 has the same origin, so I'm cc'ing to
20773 <at> debbugs.gnu.org, too.

>>>>> Ikumi Keita <ikumi <at> ikumi.que.jp> writes:

> Preview-latex fails if the length of the file name or the amount of the
> document is sufficiently large.

> [How to reproduce]
> (0) Enable preview-latex.
> (1) Save the attached file "preview-section-test.tex" in /tmp/ and open it.
> (2) Type C-c C-p C-d and answer with "n" to "Cache preamble?" question.
> (3) The ghostscript process hangs with error message "No bounding box"
> and the process buffer is displayed.  Only the partial "\section{xxx}"
> are covered by the expected images and rests remains icons of road
> construction sign.  See the attached screenshot.

> It is really strage to me that the length of the file name seems to be
> related to this symptom.  If the *same* file is saved under the file
> name "xxxxxxxxxxxxxxxxxx.tex" (18 x's), no errors occur and all
> "\section{xxx}" are covered by suitable images after C-c C-p C-d.  But
> the symptom occurs again if the file name is "xxxxxxxxxxxxxxxxxxx.tex"
> (19 x's).

[Analysis]
When LaTeX runs it always outputs a lot of messages to console and log
file, and it inserts line breaks in the 80th column when it outputs long
messages.  Here are some samples:
----------------------------------------------------------------------
./preview-section-test.tex:10: Preview: Snippet 4 ended.(655359+183500x22609920
).
----------------------------------------------------------------------
./xxxxxxxxxxxxxxxxxxxABC.tex:8: Preview: Snippet 3 ended.(655359+183500x2260992
0).
----------------------------------------------------------------------
./formalism_atranslation.tex:1: Preview: Snippet 1 ended.(541848+14544x15728640
).
----------------------------------------------------------------------

It is this line break that makes preview-latex to fail.  The part which
parses the LaTeX messages in `preview-parse-messages' of preview.el is:
----------------------------------------------------------------------
		(if (looking-at "\
\\(?:Preview\\|Package Preview Error\\): Snippet \\([---0-9]+\\) \\(started\\|ended\\(\
\\.? *(\\([---0-9]+\\)\\+\\([---0-9]+\\)x\\([---0-9]+\\))\\)?\\)\\.")
		    (progn
... (snip) ...
		      (setq snippet (string-to-number (match-string 1))
			    box (unless
				    (string= (match-string 2) "started")
				  (if (match-string 4)
				      (mapcar #'(lambda (x)
						  (* (preview-get-magnification)
						     (string-to-number x)))
					      (list
					       (match-string 4)
					       (match-string 5)
					       (match-string 6)))
				    t))
----------------------------------------------------------------------
Comparing the regexp and the examples quoted above, you can tell that
the regexp fails to pick up the numbers embedded in the LaTeX messages
such as "655359+183500x22609920" due to the extra line break.  This the
reason that preview-latex cannot provide the necessary information to
ghostscript and complains that "No bounding box".

[Solution]
Thanks to
https://tex.stackexchange.com/questions/52988/avoid-linebreaks-in-latex-console-log-output
, I learned that we can (effectively) inhibit to insert extra line
breaks by setting environment variable max_print_line to sufficiently
large value.

I confirmed that the attached patch solves the both bug#20773 and
bug#27088.  I will install this fix in a week or so.  According to the
article above, MikTeX also understands max_print_line, so I think this
fix is effective regardless of TeX distribution.  As always, any
comments and suggestions are welcome.

And I also expect that the same prescription can be applied to solve
reliably similar problem handled in `TeX-format-filter' at the part
"Remove line breaks at columns 79 and 80" comment.  We can get rid of
heuristic logic used there.

Regards,
Ikumi Keita

[preview-latex-fix (text/x-diff, attachment)]

Information forwarded to bug-auctex <at> gnu.org:
bug#27088; Package auctex. (Fri, 29 Sep 2017 08:12:02 GMT) Full text and rfc822 format available.

Message #11 received at 27088 <at> debbugs.gnu.org (full text, mbox):

From: Ikumi Keita <ikumi <at> ikumi.que.jp>
To: 27088 <at> debbugs.gnu.org
Cc: 20773 <at> debbugs.gnu.org
Subject: Re: bug#27088: 11.90;
 preview-latex fails for file names of certain length
Date: Fri, 29 Sep 2017 17:01:28 +0900
Hi all,

> According to the article above, MikTeX also understands
> max_print_line, so I think this fix is effective regardless of TeX
> distribution.

Sorry, this statement seems to be wrong.  I misread the description in
the article
https://tex.stackexchange.com/questions/52988/avoid-linebreaks-in-latex-console-log-output
.  After installing MikTeX 2.9 on my windows 10 home edition, in addtion
to TeXLive 2017, it turned out that MikTeX doesn't see the environment
variable max_print_line.
According to the above article, MikTeX needs either of the two:
(1) Add command line option --max-print-line=1000 to latex.
(2) Edit the config file and modify max_print_line parameter.

In addtion, if my installation of MikTeX is correct (I'm not 100% sure
that some interfere between MikTeX and TeXLive occurs), preview-latex
does not support MikTeX in the first place even when the extra line
breaks do not appear.  The (pdf)latex included in MikTeX outputs
messages like this:
----------------------------------------------------------------------
circ.tex:49: Preview: Snippet 2 started
circ.tex:49: Preview: Snippet 2 ended.(651269+183455x14483456)
----------------------------------------------------------------------
Because of the absence of a period at the end of these lines, the regexp
I mentioned before does not match and preview-latex ends up with a
message "error in process sentinel: LaTeX found no preview images".

Even when I modified the regexp to allow that the period at EOL is
optional, another error "error in process sentinel: Wrong type argument:
number-or-marker-p, nil", after Preview-PDF2DSC is killed, keeps
preview-latex from working.

I don't want to play with MikTeX further, so I'll leave the matters
concerned with MikTeX and preview-latex untouched.

Therefore, I'm afraid that the perspective
> And I also expect that the same prescription can be applied to solve
> reliably similar problem handled in `TeX-format-filter' at the part
> "Remove line breaks at columns 79 and 80" comment.  We can get rid of
> heuristic logic used there.
would not apply for non-preview-latex runs in AUCTeX.  The heuristic
logic is still necessary due to MikTeX.

Regards,
Ikumi Keita




Added tag(s) fixed. Request was from Ikumi Keita <ikumi <at> ikumi.que.jp> to control <at> debbugs.gnu.org. (Wed, 31 Oct 2018 13:35:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 27088 <at> debbugs.gnu.org and Ikumi Keita <ikumi <at> ikumi.que.jp> Request was from Ikumi Keita <ikumi <at> ikumi.que.jp> to control <at> debbugs.gnu.org. (Wed, 31 Oct 2018 13:35:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 29 Nov 2018 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 121 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.