Subject: bug#51610: 13.0.14; PGF background interferes with preview background

From: Marten Lienen <[email-masked]>
Date: Fri, 5 Nov 2021 14:42:37 +0100

The example latex document that I have pasted below contains a simple PGF
figure (just an empty square background) that I generated with matplotlib.
If you set your emacs to a dark theme, you will see that the previews are
dark-on-light if the preview includes the figure but light-on-dark if it is
not included. So `preview-region` with the region just including the
\section and first equation environment generates exactly the expected
preview, but `preview-buffer` inverts the colors in *all* previews, i.e.
the section header and equation are now dark on light background, which
does not mesh well with a dark emacs theme.

Best,
Marten

\documentclass{article}
\usepackage{tikz}
\begin{document}
\section{PGF screws up Background}
\begin{equation*}
  f(x) = \int_{0}^{\infty} \exp(-x^{2}) \mathrm{d}x
\end{equation*}
\begin{figure}[htbp]
  \centering \begingroup%
  \makeatletter%
  \begin{pgfpicture}%
    \pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{1.666667in}{1.000000in}}%
    \pgfusepath{use as bounding box, clip}%
    \begin{pgfscope}%
      \pgfsetbuttcap%
      \pgfsetmiterjoin%
      \definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}%
      \pgfsetfillcolor{currentfill}%
      \pgfsetlinewidth{0.000000pt}%
      \definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
      \pgfsetstrokecolor{currentstroke}%
      \pgfsetstrokeopacity{0.000000}%
      \pgfsetdash{}{0pt}%
      \pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}%
      \pgfpathlineto{\pgfqpoint{1.666667in}{0.000000in}}%
      \pgfpathlineto{\pgfqpoint{1.666667in}{1.000000in}}%
      \pgfpathlineto{\pgfqpoint{0.000000in}{1.000000in}}%
      \pgfpathclose%
      \pgfusepath{fill}%
    \end{pgfscope}%
  \end{pgfpicture}%
  \makeatother%
  \endgroup%
  \caption{A PGF figure.}
  \label{fig:pgf-figure}
\end{figure}
\begin{equation*}
  f(x) = \int_{0}^{\infty} \exp(-x^{2}) \mathrm{d}x
\end{equation*}
\end{document}

---------------------------

Emacs  : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.20, cairo version 1.16.0)
 of 2020-09-19
Package: 13.0.14

Run buffer contents:

Running `Preview-LaTeX' on `example' with ``pdflatex
-interaction=nonstopmode -file-line-error \&prv_example "/AUCTEXINPUT{"
example.tex "}"''
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian)
(preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-01-09> xparse <2020-03-03>
CUSTOMISED FORMAT. Preloaded files:
        .
 article.cls    2020/04/10 v1.4m Standard LaTeX document class
  size10.clo    2020/04/10 v1.4m Standard LaTeX file (size option)
    tikz.sty    2020/12/27 v3.1.8b (3.1.8b)
     pgf.sty    2020/12/27 v3.1.8b (3.1.8b)
  pgfrcs.sty    2020/12/27 v3.1.8b (3.1.8b)
pgfrcs.code.tex
 pgfcore.sty    2020/12/27 v3.1.8b (3.1.8b)
graphicx.sty    2020/09/09 v1.2b Enhanced LaTeX Graphics (DPC,SPQR)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
graphics.sty    2020/08/30 v1.4c Standard LaTeX Graphics (DPC,SPQR)
    trig.sty    2016/01/03 v1.10 sin cos tan (DPC)
graphics.cfg    2016/06/04 v1.11 sample graphics configuration
  pdftex.def    2020/10/05 v1.2a Graphics/color driver for pdftex
  pgfsys.sty    2020/12/27 v3.1.8b (3.1.8b)
pgfsys.code.tex
pgfsyssoftpath.code.tex    2020/12/27 v3.1.8b (3.1.8b)
pgfsysprotocol.code.tex    2020/12/27 v3.1.8b (3.1.8b)
  xcolor.sty    2016/05/11 v2.12 LaTeX color extensions (UK)
   color.cfg    2016/01/02 v1.6 sample color configuration
pgfcore.code.tex
pgfcomp-version-0-65.sty    2020/12/27 v3.1.8b (3.1.8b)
pgfcomp-version-1-18.sty    2020/12/27 v3.1.8b (3.1.8b)
  pgffor.sty    2020/12/27 v3.1.8b (3.1.8b)
 pgfkeys.sty
pgfkeys.code.tex
 pgfmath.sty
pgfmath.code.tex
pgffor.code.tex
tikz.code.tex
        .
(./example.tex
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
No file example.aux.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
(/home/ml/.emacs.d/straight/build/auctex/latex/preview.sty
(/usr/share/texlive/texmf-dist/tex/generic/luatex85/luatex85.sty)
(/home/ml/.emacs.d/straight/build/auctex/latex/prtightpage.def)
(/home/ml/.emacs.d/straight/build/auctex/latex/prauctex.def
No auxiliary output files.

(/home/ml/.emacs.d/straight/build/auctex/latex/prauctex.cfg))
(/home/ml/.emacs.d/straight/build/auctex/latex/prfootnotes.def)
Preview: Fontsize 10pt
P...

[...]

....9 \begin{equation*}

./example.tex:10: Missing $ inserted.
<inserted text>
                $
l.10   f(x) = \int
                  _{0}^{\infty} \exp(-x^{2}) \mathrm{d}x
./example.tex:11: Missing $ inserted.
<inserted text>
                $
l.11 \end{equation*}

./example.tex:11: Preview: Snippet 2 ended.(563432+233020x6750219).
<-><->

l.11 \end{equation*}

[2]
./example.tex:13: Preview: Snippet 3 started.
<-><->

l.13 \begin{figure}
                   [htbp]
./example.tex:41: Preview: Snippet 3 ended.(6305509+0x22609920).
<-><->

l.41 \end{figure}

[3]
./example.tex:43: Preview: Snippet 4 started.
<-><->

l.43 \begin{equation*}

./example.tex:43: Undefined control sequence.
\equation* ...oindent }{\endgroup }\pr@\equation*

l.43 \begin{equation*}

./example.tex:44: Missing $ inserted.
<inserted text>
                $
l.44   f(x) = \int
                  _{0}^{\infty} \exp(-x^{2}) \mathrm{d}x
./example.tex:45: Missing $ inserted.
<inserted text>
                $
l.45 \end{equation*}

./example.tex:45: Preview: Snippet 4 ended.(563432+233020x6750219).
<-><->

l.45 \end{equation*}

[4] )
(see the transcript file for additional
information)</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb>
Output written on example.pdf (4 pages, 61267 bytes).
Transcript written on example.log.

TeX Output exited as expected with code 1 at Fri Nov  5 14:33:08
Running `Preview-PDF2DSC' with ``pdf2dsc example.pdf
example.prv/tmpo0zR3C/preview.dsc''

Preview-PDF2DSC finished at Fri Nov  5 14:33:08
Running `Preview-Ghostscript' with ``/usr/bin/rungs
-sOutputFile\=example.prv/tmpo0zR3C/pr1-\%d.png -q -dDELAYSAFER -dNOPAUSE
-DNOPLATFONTS -dPrinted -dTextAlphaBits\=4 -dGraphicsAlphaBits\=4
-sDEVICE\=png16m -r244.974x244.343 -dDELAYBIND''

Preview-Ghostscript finished at Fri Nov  5 14:33:08

current state:
==============
(setq
 AUCTeX-version "13.0.14"
 LaTeX-command-style '((""
                        "%(PDF)%(latex) %(file-line-error) %(extraopts)
%(output-dir) %S%(PDFout)")
                       )
 image-types '(svg png gif tiff jpeg xpm xbm pbm)
 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 %(O?pdf) %m/preview.dsc"
 preview-gs-command "/usr/bin/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 'cqql-preview-scale-up
 preview-LaTeX-command '("%`%l
\"\\nonstopmode\\nofiles\\PassOptionsToPackage{"
                         ("," . preview-required-option-list)

 "}{preview}\\AtBeginDocument{\\ifx\\ifPreview\\undefined"
                         preview-default-preamble
                         "\\fi}\"%' \"\\detokenize{\" %(t-filename-only)
\"}\"")
 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
                             ("\\`\\([^ ]+\\)\\(?: +\\(?:\\(--?kanji[= ][^
]+\\)\\|\\(--?output-directory[= ][^ ]+\\)\\|-\\(?:[^
\\\"]\\|\\\\.\\|\"[^\"]*\"\\)*\\)\\)*\\(.*\\)\\'" "\\1 -ini \\2 \\3
-interaction=nonstopmode \"&\\1\" " preview-format-name ".ini \\4")
                             )
 preview-undump-replacements '(("\\`\\([^ ]+\\)\\(?: +\\(?:\\(--?kanji[=
][^ ]+\\)\\|\\(--?output-directory[= ][^ ]+\\)\\|-\\(?:[^
\\\"]\\|\\\\.\\|\"[^\"]*\"\\)*\\)\\)*.* \"\\\\input\" \"\\\\detokenize{\"
\\(.*\\) \"}\"\\'" "\\1 \\2 \\3 -interaction=nonstopmode -file-line-error "
preview-format-name " \"/AUCTEXINPUT{\" \\4 \"}\"")
                               )
 preview-auto-cache-preamble t
 preview-TeX-style-dir "/home/ml/.emacs.d/straight/build/auctex/latex"
 )

Output from running `/usr/bin/rungs -h':
GPL Ghostscript 9.54.0 (2021-03-30)
Copyright (C) 2021 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: x11alpha
Available devices:
   alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 alc9100 ap3250 appledmp
   atx23 atx24 atx38 bbox bit bitcmyk bitrgb bitrgbtags 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 cups declj250 deskjet
   devicen dfaxhigh dfaxlow display dj505j djet500 djet500c dl2100 dnj650c
   epl2050 epl2050p epl2120 epl2500 epl2750 epl5800 epl5900 epl6100 epl6200
   eplcolor eplmono eps2write eps9high eps9mid epson epsonc escp escpage
   faxg3 faxg32d faxg4 fmlbp fmpr fpng fs600 gdi hl1240 hl1250 hl7x0 hocr
   hpdj1120c hpdj310 hpdj320 hpdj340 hpdj400 hpdj500 hpdj500c hpdj510
   hpdj520 hpdj540 hpdj550c hpdj560c hpdj600 hpdj660c hpdj670c hpdj680c
   hpdj690c hpdj850c hpdj855c hpdj870c hpdj890c hpdjplus hpdjportable ibmpro
   ijs imagen inferno ink_cov inkcov itk24i itk38 iwhi iwlo iwlq jetp3852
   jj100 jpeg jpegcmyk jpeggray la50 la70 la75 la75plus laserjet lbp310
   lbp320 lbp8 lex2050 lex3200 lex5700 lex7000 lips2p lips3 lips4 lips4v
   lj250 lj3100sw 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 lp9200b lp9200c lp9300 lp9400 lp9500c lp9600 lp9600s
   lp9800c lps4500 lps6500 lq850 lxm3200 lxm5700m m8510 md1xMono md2k
   md50Eco md50Mono md5k mgr4 mgr8 mgrgray2 mgrgray4 mgrgray8 mgrmono miff24
   mj500c mj6000c mj700v2c mj8000c ml600 necp6 npdl nullpage oce9050 ocr
   oki182 oki4w okiibm oprp opvp paintjet pam pamcmyk32 pamcmyk4 pbm pbmraw
   pcl3 pclm pcx16 pcx24b pcx256 pcxcmyk pcxgray pcxmono pdfimage24
   pdfimage32 pdfimage8 pdfocr24 pdfocr32 pdfocr8 pdfwrite pdfwrite pdfwrite
   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 png48 pngalpha pnggray pngmono pngmonod
   pnm pnmraw ppm ppmraw pr1000 pr1000_4 pr150 pr201 ps2write psdcmyk
   psdcmyk16 psdcmykog psdrgb psdrgb16 pwgraster pxlcolor pxlmono r4081
   rinkj rpdl samsunggdi sj48 spotcmyk st800 stcolor t4693d2 t4693d4 t4693d8
   tek4696 tiff12nc tiff24nc tiff32nc tiff48nc tiff64nc tiffcrle tiffg3
   tiffg32d tiffg4 tiffgray tifflzw tiffpack tiffscaled tiffscaled24
   tiffscaled32 tiffscaled4 tiffscaled8 tiffsep tiffsep1 txtwrite uniprint
   x11 x11alpha x11cmyk x11cmyk2 x11cmyk4 x11cmyk8 x11gray2 x11gray4 x11mono
   xcf xcfcmyk xes xpswrite
Search path:
   /usr/share/ghostscript/9.54.0/Resource/Init :
   /usr/share/ghostscript/9.54.0/lib :
   /usr/share/ghostscript/9.54.0/Resource/Font :
   /usr/share/ghostscript/fonts : /var/lib/ghostscript/fonts :
   /usr/share/cups/fonts : /usr/share/ghostscript/fonts :
   /usr/local/lib/ghostscript/fonts : /usr/share/fonts
Ghostscript is also using fontconfig to search for font files
For more information, see /usr/share/doc/ghostscript/Use.htm.
On debian system you may need to install ghostscript-doc package.
Please report bugs to bugs.ghostscript.com.