\input texinfo @comment %**start of header @setfilename preview-latex.info @include version.texi @settitle preview-latex @value{VERSION} @comment %**end of header @include macros.texi @copying This manual is for preview-latex, a @LaTeX{} preview mode for @AUCTeX{} (version @value{VERSION} from @value{UPDATED}). Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2017-2019, 2021 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License.'' @end quotation @end copying @dircategory Emacs @direntry * preview-latex: (preview-latex). Preview LaTeX fragments in Emacs @end direntry @dircategory TeX @direntry * preview-latex: (preview-latex). Preview LaTeX fragments in Emacs @end direntry @c footnotestyle separate @c paragraphindent 2 @syncodeindex vr cp @syncodeindex ky cp @syncodeindex fn cp @iftex @tolerance 10000 @emergencystretch 3em @end iftex @finalout @titlepage @title @previewlatex{} @subtitle A @LaTeX{} preview mode for @AUCTeX{} in Emacs. @subtitle Version @value{VERSION}, @value{UPDATED} @author Jan-@AA{}ke Larsson @author David Kastrup and others @page @vskip 0pt plus 1filll @insertcopying @end titlepage @c @summarycontents @contents @c Use @ifinfo _and_ @ifhtml here because Texinfo 3 cannot cope with @c @ifnottex around a top node. @ifinfo @node top, , (dir), (dir) @top @previewlatex{} This manual may be copied under the conditions spelled out in @ref{Copying this Manual}. @end ifinfo @ifhtml @node top, Copying, (dir), (dir) @top @previewlatex{} @insertcopying @end ifhtml @iftex @unnumbered @previewlatex{} @end iftex @previewlatex{} is a package embedding preview fragments into Emacs source buffers under the @AUCTeX{} editing environment for @LaTeX{}. It uses @file{preview.sty} for the extraction of certain environments (most notably displayed formulas). Other applications of this style file are possible and exist. The name of the package is really @samp{preview-latex}, all in lowercase letters, with a hyphen. If you typeset it, you can use a sans-serif font to visually offset it. @menu * Copying:: Copying * Introduction:: Getting started. * Installation:: Make Install. * Keys and lisp:: Key bindings and user-level lisp functions. * Simple customization:: To make it fit in. * Known problems:: When things go wrong. * For advanced users:: Internals and more customizations. * ToDo:: Future development. * Frequently Asked Questions:: All about @previewlatex{} * Copying this Manual:: GNU Free Documentation License * Index:: A menu of many topics. @end menu @node Copying, Introduction, top, top @unnumbered Copying @cindex Copying @cindex Copyright @cindex GPL @cindex General Public License @cindex License @cindex Free @cindex Free software @cindex Distribution @cindex Right @cindex Warranty For the conditions for copying parts of @previewlatex{}, see the General Public Licenses referred to in the copyright notices of the files, the General Public Licenses accompanying them and the explanatory section in @ref{Copying,,,auctex,the @AUCTeX{} manual}. This manual specifically is covered by the GNU Free Documentation License (@pxref{Copying this Manual}). @node Introduction, Installation, Copying, top @c Used as @file{README} as well: in separate file @chapter Introduction @include preview-readme.texi @node Installation, Keys and lisp, Introduction, top @chapter Installation Installation is now being covered in @ref{Installation,,,auctex,the @AUCTeX{} manual}. @node Keys and lisp, Simple customization, Installation, top @chapter Key bindings and user-level lisp functions @cindex Menu entries @previewlatex{} adds key bindings starting with @kbd{C-c C-p} to the supported modes of @AUCTeX{} (@xref{Key Index,,,auctex}). It will also add its own @samp{Preview} menu in the menu bar, as well as an icon in the toolbar. The following only describes the interactive use: view the documentation strings with @kbd{C-h f} if you need the Lisp information. @table @w @item @kbd{C-c C-p C-p} @itemx @code{preview-at-point} @itemx Preview/Generate previews (or toggle) at point If the cursor is positioned on or inside of a preview area, this toggles its visibility, regenerating the preview if necessary. If not, it will run the surroundings through preview. The surroundings include all areas up to the next valid preview, unless invalid previews occur before, in which case the area will include the last such preview in either direction. And overriding any other action, if a region is active (@code{transient-mark-mode}), it is run through @code{preview-region}. @kindex @kbd{C-c C-p C-p} @findex preview-at-point @item @kbd{@key{mouse-2}} The middle mouse button has a similar action bound to it as @code{preview-at-point}, only that it knows which preview to apply it to according to the position of the click. You can click either anywhere on a previewed image, or when the preview is opened and showing the source text, you can click on the icon preceding the source text. In other areas, the usual mouse key action (typically: paste) is not affected. @item @kbd{@key{mouse-3}} The right mouse key pops up a context menu with several options: toggling the preview, regenerating it, removing it (leaving the unpreviewed text), copying the text inside of the preview, and copying it in a form suitable for copying as an image into a mail or news article. This is a one-image variant of the following command: @item @kbd{C-c C-p C-w} @itemx @code{preview-copy-region-as-mml} @itemx Copy a region as MML @kindex @kbd{C-c C-p C-w} @findex preview-copy-region-as-mml This command is also available as a variant in the context menu on the right mouse button (where the region is the preview that has been clicked on). It copies the current region into the kill buffer in a form suitable for copying as a text including images into a mail or news article using mml-mode (@pxref{Composing,,Composing,emacs-mime,Emacs MIME}). If you regenerate or otherwise kill the preview in its source buffer before the mail or news gets posted, this will fail. Also you should generate images you want to send with @code{preview-transparent-border} @vindex preview-transparent-border set to @code{nil}, or the images will have an ugly border. @previewlatex{} detects this condition and asks whether to regenerate the region with borders switched off. As this is an asynchronous operation running in the background, you'll need to call this command explicitly again to get the newly generated images into the kill ring. Preview your articles with @code{mml-preview} (on @kbd{C-c C-m P}) @kindex @kbd{C-c C-m P} to make sure they look fine. @item @kbd{C-c C-p C-e} @itemx @code{preview-environment} @itemx Preview/Generate previews for environment Run preview on @LaTeX{} environment. The environments in @code{preview-inner-environments} are treated as inner levels so that for instance, the @code{split} environment in @code{\begin@{equation@}\begin@{split@}@dots{}\end@{split@}\end@{equation@}} is properly displayed. If called with a numeric argument, the corresponding number of outward nested environments is treated as inner levels. @kindex @kbd{C-c C-p C-e} @findex preview-environment @item @kbd{C-c C-p C-s} @itemx @code{preview-section} @itemx Preview/Generate previews for section Run preview on this @LaTeX{} section. @kindex @kbd{C-c C-p C-s} @findex preview-section @item @kbd{C-c C-p C-r} @itemx @code{preview-region} @itemx Preview/Generate previews for region Run preview on current region. @kindex @kbd{C-c C-p C-r} @findex preview-region @item @kbd{C-c C-p C-b} @itemx @code{preview-buffer} @itemx Preview/Generate previews for buffer Run preview on the current buffer. @kindex @kbd{C-c C-p C-b} @findex preview-buffer @item @kbd{C-c C-p C-d} @itemx @code{preview-document} @itemx Preview/Generate previews for document Run preview on the current document. @kindex @kbd{C-c C-p C-d} @findex preview-document @item @kbd{C-c C-p C-c C-p} @itemx @code{preview-clearout-at-point} @itemx Preview/Remove previews at point @kindex @kbd{C-c C-p C-c C-p} @findex preview-clearout-at-point Clear out (remove) the previews that are immediately adjacent to point. @item @kbd{C-c C-p C-c C-s} @itemx @code{preview-clearout-section} @itemx Preview/Remove previews from section @kindex @kbd{C-c C-p C-c C-s} @findex preview-clearout-document Clear out all previews in current section. @item @kbd{C-c C-p C-c C-r} @itemx @code{preview-clearout} @itemx Preview/Remove previews from region @kindex @kbd{C-c C-p C-c C-r} @findex preview-clearout Clear out all previews in the current region. @item @kbd{C-c C-p C-c C-b} @itemx @code{preview-clearout-buffer} @itemx Preview/Remove previews from buffer @kindex @kbd{C-c C-p C-c C-b} @findex preview-clearout-buffer Clear out all previews in current buffer. This makes the current buffer lose all previews. @item @kbd{C-c C-p C-c C-d} @itemx @code{preview-clearout-document} @itemx Preview/Remove previews from document @kindex @kbd{C-c C-p C-c C-d} @findex preview-clearout-document Clear out all previews in current document. The document consists of all buffers that have the same master file as the current buffer. This makes the current document lose all previews. @item @kbd{C-c C-p C-f} @itemx @code{preview-cache-preamble} @itemx Preview/Turn preamble cache on @kindex @kbd{C-c C-p C-f} @findex preview-cache-preamble Dump a pregenerated format file. For the rest of the session, this file is used when running on the same master file. Use this if you know your @LaTeX{} takes a long time to start up, the speedup will be most noticeable when generating single or few previews. If you change your preamble, do this again. @previewlatex{} will try to detect the necessity of that automatically when editing changes to the preamble are done from within Emacs, but it will not notice if the preamble effectively changes because some included file or style file is tampered with. Note that support for preamble cache is limited for @LaTeX{} variants. c.f.@: @url{https://github.com/davidcarlisle/dpctex/issues/15} @itemize @bullet @item Xe@LaTeX{} cannot use preamble cache at all. The reason is intrinsic in Xe@LaTeX{}, so @previewlatex{} can't help. @item Lua@LaTeX{} works with preamble cache only when the preamble is simple enough, i.e., when it doesn't load opentype fonts and it doesn't use lua codes in preamble. @end itemize @item @kbd{C-c C-p C-c C-f} @itemx @code{preview-cache-preamble-off} @itemx Preview/Turn preamble cache off @kindex @kbd{C-u C-c C-p C-f} @findex preview-cache-preamble-off Clear the pregenerated format file and stop using preambles for the current document. If the caching gives you problems, use this. @item @kbd{C-c C-p C-i} @itemx @code{preview-goto-info-page} @itemx Preview/Read Documentation @kindex @kbd{C-c C-p C-i} @findex preview-goto-info-page Read @ifinfo this @end ifinfo @ifnotinfo the @end ifnotinfo info manual. @item @kbd{M-x preview-report-bug @key{RET}} @itemx @code{preview-report-bug} @itemx Preview/Report Bug @kindex @kbd{M-x preview-report-bug RET} @findex preview-report-bug @cindex Report a bug This is the preferred way of reporting bugs as it will fill in what version of @previewlatex{} you are using as well as versions of relevant other software, and also some of the more important settings. Please use this method of reporting, if at all possible and before reporting a bug, have a look at @ref{Known problems}. @item @kbd{C-c C-k} @itemx LaTeX/TeX Output/Kill Job @kindex @kbd{C-c C-k} @cindex Kill preview-generating process Kills the preview-generating process. This is really an @AUCTeX{} keybinding, but it is included here as a hint. If you are generating a preview and then make a change to the buffer, @previewlatex{} may be confused and place the previews wrong. @end table @node Simple customization, Known problems, Keys and lisp, top @chapter Simple customization Customization options can be found by typing @kbd{M-x customize-group @key{RET} preview @key{RET}}. Remember to set the option when you have changed it. The list of suggestions can be made very long (and is covered in detail in @ref{For advanced users}), but some are: @itemize @bullet @item Change the color of the preview background If you use a non-white background in Emacs, you might have color artifacts at the edges of your previews. Playing around with the option @code{preview-transparent-color} in the @samp{Preview Appearance} group might improve things. With some settings, the cursor may cover the whole background of a preview, however. This option is specific to the display engine in use. @item Showing @code{\label}s @cindex Showing @code{\label}s When using @previewlatex{}, the @code{\label}s are hidden by the previews. It is possible to make them visible in the output by using the @LaTeX{} package @code{showkeys} alternatively @code{showlabels}. However, the boxes of these labels will be outside the region @previewlatex{} considers as the preview image. To enable a similar mechanism internal to @previewlatex{}, enable the @code{showlabels} option in the variable @code{preview-default-option-list} in the @samp{Preview Latex} group. @vindex preview-default-option-list It must be noted, however, that a much better idea may be to use the Ref@TeX{} package for managing references. @xref{RefTeX in a Nutshell,,RefTeX in a Nutshell,reftex,The Ref@TeX{} Manual}. @item Open previews automatically The current default is to open previews automatically when you enter them with cursor left/right motions. Auto-opened previews will close again once the cursor leaves them again (this is also done when doing incremental search, or query-replace operations), unless you changed anything in it. In that case, you will have to regenerate the preview (via e.g., @kbd{C-c C-p C-p}). Other options for @code{preview-auto-reveal} are available via @code{customize}. @item Automatically cache preambles Currently @previewlatex{} asks you whether you want to cache the document preamble (everything before @code{\begin@{document@}}) before it generates previews for a buffer the first time. Caching the preamble will significantly speed up regeneration of previews. The larger your preamble is, the more this will be apparent. Once a preamble is cached, @previewlatex{} will try to keep track of when it is changed, and dump a fresh format in that case. If you experience problems with this, or if you want it to happen without asking you the first time, you can customize the variable @code{preview-auto-cache-preamble}. @vindex preview-auto-cache-preamble @cindex Caching a preamble @item Attempt to keep counters accurate when editing @vindex preview-preserve-counters @vindex preview-required-option-list Since @previewlatex{} frequently runs only small regions through @LaTeX{}, values like equation counters are not consistent from run to run. If this bothers you, customize the variable @code{preview-preserve-counters} to @code{t} (this is consulted by @code{preview-required-option-list}). @LaTeX{} will then output a load of counter information during compilation, and this information will be used on subsequent updates to keep counters set to useful values. The additional information takes additional time to analyze, but this is relevant mostly only when you are regenerating all previews at once, and maybe you will be less tempted to do so when counters appear more or less correct. @item Preview your favourite @LaTeX{} constructs @vindex preview-default-option-list @vindex preview-default-preamble If you have a certain macro or environment that you want to preview, first check if it can be chosen by cutomizing @code{preview-default-option-list} in the @samp{Preview Latex} group. If it is not available there, you can add it to @code{preview-default-preamble} also in the @samp{Preview Latex} group, by adding a @code{\PreviewMacro} or @code{\PreviewEnvironment} entry (@pxref{Provided commands}) @emph{after} the @code{\RequirePackage} line. For example, if you want to preview the @code{center} environment, press the @key{Show} button and the last @key{INS} button, then add @example \PreviewEnvironment@{center@} @end example @noindent in the space that just opened. Note that since @code{center} is a generic formatting construct of @LaTeX{}, a general configuration like that is not quite prudent. You better to do this on a per-document base so that it is easy to disable this behavior when you find this particular entry gives you trouble. One possibility is to save such settings in the corresponding file-local variable instead of your global configuration (@pxref{File Variables,,Local Variables in Files,emacs,GNU Emacs Manual}). A perhaps more convenient place for such options would be in a configuration file in the same directory with your project (@pxref{Package options}). The usual file for @previewlatex{} preconfiguration is @file{prauctex.cfg}. If you also want to keep the systemwide defaults, you should add a line @example \InputIfFileExists@{preview/prauctex.cfg@}@{@}@{@} @end example @noindent to your own version of @file{prauctex.cfg} (this is assuming that global files relating to the @code{preview} package are installed in a subdirectory @file{preview}, the default behavior). @item Don't preview inline math @cindex Inline math @vindex preview-default-option-list If you have performance problems because your document is full of inline math (@code{$@dots{}$}), or if your usage of @code{$} conflicts with @previewlatex{}'s, you can turn off inline math previews. In the @samp{Preview Latex} group, remove @code{textmath} from @code{preview-default-option-list} by customizing this variable. @end itemize @node Known problems, For advanced users, Simple customization, top @chapter Known problems @c also used as PROBLEMS file @include preview-problems.texi @node For advanced users, ToDo, Known problems, top @chapter For advanced users This package consists of two parts: a @LaTeX{} style that splits the output into appropriate parts with one preview object on each page, and an Emacs-lisp part integrating the thing into Emacs (aided by @AUCTeX{}). @menu * The LaTeX style file:: * The Emacs interface:: * The preview images:: * Misplaced previews:: @end menu @node The LaTeX style file, The Emacs interface, For advanced users, For advanced users @section The @LaTeX{} style file @c Autogenerated from ../latex/preview.dtx @include preview-dtxdoc.texi @node The Emacs interface, The preview images, The LaTeX style file, For advanced users @section The Emacs interface You can use @kbd{M-x customize-group @key{RET} preview-latex @key{RET}} in order to customize these variables, or use the menus for it. We explain the various available options together with explaining how they work together in making @previewlatex{} work as intended. @vtable @code @item preview-LaTeX-command When you generate previews on a buffer or a region, the command in @code{preview-LaTeX-command} gets run (that variable should only be changed with Customize since its structure is somewhat peculiar, though expressive). As usual with @AUCTeX{}, you can continue working while this is going on. It is not a good idea to change the file until after @previewlatex{} has established where to place the previews which it can only do after the @LaTeX{} run completes. This run produces a host of pseudo-error messages that get parsed by @previewlatex{} at the end of the @LaTeX{} run and give it the necessary information about where in the source file the @LaTeX{} code for the various previews is located exactly. The parsing takes a moment and will render Emacs busy. @item preview-LaTeX-command-replacements This variable specifies transformations to be used before calling the configured command. One possibility is to have @samp{\pdfoutput=0 } appended to every command starting with @samp{pdf}. This particular setting is available as the shortcut @code{preview-LaTeX-disable-pdfoutput}. Since @previewlatex{} can work with @acronym{PDF} files by now, there is little incentive for using this option, anymore (for projects not requiring @acronym{PDF} output, the added speed of @command{dvipng} might make this somewhat attractive). @item preview-required-option-list @code{preview-LaTeX-command} uses @code{preview-required-option-list} in order to pass options such as @option{auctex}, @option{active} and @option{dvips} to the @file{preview} package. This means that the user need (and should) not supply these in the document itself in case he wants to be able to still compile his document without it turning into an incoherent mass of little pictures. These options even get passed in when the user loads @file{preview} explicitly in his document. The default includes an option @code{counters} that is controlled by the boolean variable @item preview-preserve-counters This option will cause the @file{preview} package to emit information that will assist in keeping things like equation counters and section numbers reasonably correct even when you are regenerating only single previews. @item preview-default-option-list @itemx preview-default-preamble If the document does not call in the package @code{preview} itself (via @code{\usepackage}) in the preamble, the preview package is loaded using default options from @code{preview-default-option-list} and additional commands specified in @code{preview-default-preamble}. @item preview-fast-conversion This is relevant only for @acronym{DVI} mode. It defaults to `On' and results in the whole document being processed as one large PostScript file from which the single images are extracted with the help of parsing the PostScript for use of so-called @acronym{DSC} comments. The bounding boxes are extracted with the help of @TeX{} instead of getting them from Dvips. If you are experiencing bounding box problems, try setting this option to `Off'. @item preview-prefer-TeX-bb If this option is `On', it tells @previewlatex{} never to try to extract bounding boxes from the bounding box comments of @acronym{EPS} files, but rather rely on the boxes it gets from @TeX{}. If you activated @code{preview-fast-conversion}, this is done, anyhow, since there are no @acronym{EPS} files from which to read this information. The option defaults to `Off', simply because about the only conceivable reason to switch off @code{preview-fast-conversion} would be that you have some bounding box problem and want to get Dvips' angle on that matter. @item preview-scale-function @itemx preview-reference-face @itemx preview-document-pt-list @itemx preview-default-document-pt @code{preview-scale-function} determines by what factor images should be scaled when appearing on the screen. If you specify a numerical value here, the physical size on the screen will be that of the original paper output scaled by the specified factor, at least if Emacs' information about screen size and resolution are correct. The default is to let @code{preview-scale-from-face} determine the scale function. This function determines the scale factor by making the size of the default font in the document match that of the on-screen fonts. The size of the screen fonts is deduced from the font @code{preview-reference-face} (usually the default face used for display), the size of the default font for the document is determined by calling @code{preview-document-pt}. @findex preview-document-pt This function consults the members of @code{preview-document-pt-list} in turn until it gets the desired information. The default consults first @code{preview-parsed-font-size}, @vindex preview-parsed-font-size then calls @code{preview-auctex-font-size} @findex preview-auctex-font-size which asks @AUCTeX{} about any size specification like @option{12pt} to the documentclass that it might have detected when parsing the document, and finally reverts to just assuming @code{preview-default-document-pt} as the size used in the document (defaulting to 10pt). If you find that the size of previews and the other Emacs display clashes, something goes wrong. @code{preview-parsed-font-size} is determined at @code{\begin@{document@}} time; if the default font size changes after that, it will not get reported. If you have an outdated version of @file{preview.sty} in your path, the size might not be reported at all. If in this case @AUCTeX{} is unable to find a size specification, and if you are using a document class with a different default value (like @samp{KomaScript}), the default fallback assumption will probably be wrong and @previewlatex{} will scale up things too large. So better specify those size options even when you know that @LaTeX{} does not need them: @previewlatex{} might benefit from them. Another possibility for error is that you have not enabled @AUCTeX{}'s document parsing options. The fallback method of asking @AUCTeX{} about the size might be disabled in future versions of @previewlatex{} since in general it is more reliable to get this information from the @LaTeX{} run itself. @item preview-fast-dvips-command @itemx preview-dvips-command The regular command for turning a @acronym{DVI} file into a single PostScript file is @code{preview-fast-dvips-command}, while @code{preview-dvips-command} is used for cranking out a @acronym{DVI} file where every preview is in a separate @acronym{EPS} file. Which of the two commands gets used depends on the setting of @code{preview-fast-conversion}. The printer specified here is @option{-Pwww} by default, which will usually get you scalable fonts where available. If you are experiencing problems, you might want to try playing around with Dvips options (@xref{Command-line options,,,dvips}). The conversion of the previews into PostScript or @acronym{EPS} files gets started after the @LaTeX{} run completes when Emacs recognizes the first image while parsing the error messages. When Emacs has finished parsing the error messages, it activates all detected previews. This entails throwing away any previous previews covering the same areas, and then replacing the text in its visual appearance by a placeholder looking like a roadworks sign. @item preview-nonready-icon-specs This is the roadworks sign displayed while previews are being prepared. You may want to customize the font sizes at which @previewlatex{} switches over between different icon sizes, and the ascent ratio which determines how high above the base line the icon gets placed. @item preview-error-icon-specs @itemx preview-icon-specs Those are icons placed before the source code of an opened preview and, respectively, the image specs to be used for PostScript errors, and a normal open preview in text representation. @item preview-inner-environments This is a list of environments that are regarded as inner levels of an outer environment when doing @code{preview-environment}. One example when this is needed is in @code{\begin@{equation@}\begin@{split@}@dots{}\end@{split@}\end@{equation@}}, and accordingly @code{split} is one entry in @code{preview-inner-environments}. @end vtable @node The preview images, Misplaced previews, The Emacs interface, For advanced users @section The preview images @vtable @code @item preview-image-type @itemx preview-image-creators @itemx preview-gs-image-type-alist What happens when @LaTeX{} is finished depends on the configuration of @code{preview-image-type}. What to do for each of the various settings is specified in the variable @code{preview-image-creators}. The options to pass into Ghostscript and what Emacs image type to use is specified in @code{preview-gs-image-type-alist}. @code{preview-image-type} defaults to @code{png}. For this to work, your version of Ghostscript needs to support the @option{png16m} device. If you are experiencing problems here, you might want to reconfigure @code{preview-gs-image-type-alist} or @code{preview-image-type}. Reconfiguring @code{preview-image-creators} is only necessary for adding additional image types. Most devices make @previewlatex{} start up a single Ghostscript process for the entire preview run (as opposed to one per image) and feed it either sections of a @acronym{PDF} file (if PDF@LaTeX{} was used), or (after running Dvips) sections of a single PostScript file or separate @acronym{EPS} files in sequence for conversion into @acronym{PNG} format which can be displayed much faster by Emacs. Actually, not in sequence but backwards since you are most likely editing at the end of the document. And as an added convenience, any preview that happens to be on-screen is given higher priority so that @previewlatex{} will first cater for the images that are displayed. There are various options customizable concerning aspects of that operation, see the customization group @samp{Preview Gs} for this. Another noteworthy setting of @code{preview-image-type} is @samp{dvipng}: in this case, the @command{dvipng} @pindex dvipng program will get run on @acronym{DVI} output (see below for @acronym{PDF}). This is in general much faster than Dvips and Ghostscript. In that case, the option @item preview-dvipng-command will get run for doing the conversion, and it is expected that @item preview-dvipng-image-type images get produced (@samp{dvipng} might be configured for other image types as well). You will notice that @code{preview-gs-image-type-alist} contains an entry for @code{dvipng}: this actually has nothing to with @samp{dvipng} itself but specifies the image type and Ghostscript device option to use when @samp{dvipng} can't be used. This will obviously be the case for @acronym{PDF} output by PDF@LaTeX{}, but it will also happen if the @acronym{DVI} file contains PostScript specials in which case the affected images will get run through Dvips and Ghostscript once @samp{dvipng} finishes. Note for p@LaTeX{} and up@LaTeX{} users: It is known that @command{dvipng} is not compatible with p@LaTeX{} and up@LaTeX{}. If @code{preview-image-type} is set to @samp{dvipng} and (u)p@LaTeX{} is used, @samp{dvipng} just fails and @previewlatex{} falls back on Dvips and Ghostscript. @item preview-gs-options Most interesting to the user perhaps is the setting of this variable. It contains the default antialiasing settings @option{-dTextAlphaBits=4} and @option{-dGraphicsAlphaBits=4}. Decreasing those values to 2 @w{or 1} might increase Ghostscript's performance if you find it lacking. @end vtable Running and feeding Ghostscript from @previewlatex{} happens asynchronously again: you can resume editing while the images arrive. While those pretty pictures filling in the blanks on screen tend to make one marvel instead of work, rendering the non-displayed images afterwards will not take away your attention and will eventually guarantee that jumping around in the document will encounter only prerendered images. @node Misplaced previews, , The preview images, For advanced users @section Misplaced previews If you are reading this section, the first thing is to check that your problem is not caused by x-symbol in connection with an installation not supporting 8-bit characters (@pxref{x-symbol interoperation}). If not, here's the beef: As explained previously, Emacs uses pseudo-error messages generated by the @samp{preview} package in order to pinpoint the exact source location where a preview originated. This works in running text, but fails when preview material happens to lie in macro arguments, like the contents of @code{\emph}. Those macros first read in their entire argument, munge it through, perhaps transform it somehow, process it and perhaps then typeset something. When they finally typeset something, where is the location where the stuff originated? @TeX{}, having read in the entire argument before, does not know and actually there would be no sane way of defining it. For previews contained inside such a macro argument, the default behaviour of @previewlatex{} is to use a position immediately after the closing brace of the argument. All the previews get placed there, all at a zero-width position, which means that Emacs displays it in an order that @previewlatex{} cannot influence (currently in Emacs it is even possible that the order changes between runs). And since the placement of those previews is goofed up, you will not be able to regenerate them by clicking on them. The default behaviour is thus somewhat undesirable. The solution (like with other preview problems) is to tell the @LaTeX{} @samp{preview} package how to tackle this problem (@pxref{The LaTeX style file}). Simply, you don't need @code{\emph} do anything at all during previews! You only want the text math previewed, so the solution is to use @code{\PreviewMacro*\emph} in the preamble of your document which will make @LaTeX{} ignore @code{\emph} completely as long as it is not part of a larger preview (in which case it gets typeset as usual). Its argument thus becomes ordinary text and gets treated like ordinary text. Note that it would be a bad idea to declare @code{\PreviewMacro*[@{@{@}@}]\emph} since then both @code{\emph} as well as its argument would be ignored instead of previewed. For user-level macros, this is almost never wanted, but there may be internal macros where you might want to ignore internal arguments. The same mechanism can be used for a number of other text-formatting commands like @code{\textrm}, @code{\textit} and the like. While they all use the same internal macro @code{\text@@command}, it will not do to redefine just that, since they call it only after having read their argument in, and then it already is too late. So you need to disable every of those commands by hand in your document preamble. Actually, we wrote all of the above just to scare you. At least all of the above mentioned macros and a few more are already catered for by a configuration file @file{prauctex.cfg} that gets loaded by default unless the @samp{preview} package gets loaded with the @option{noconfig} option. You can make your own copy of this file in a local directory and edit it in case of need. You can also add loading of a file of your liking to @code{preview-default-preamble}, @vindex preview-default-preamble or alternatively do the manual disabling of your favorite macro in @code{preview-default-preamble}, @vindex preview-default-preamble which is customizable in the @samp{Preview Latex} group. @node ToDo, Frequently Asked Questions, For advanced users, top @c Also used as TODO: in separate file @appendix ToDo @include preview-todo.texi @node Frequently Asked Questions, Copying this Manual, ToDo, top @c Also used as TODO: in separate file @appendix Frequently Asked Questions @include preview-faq.texi @node Copying this Manual, Index, Frequently Asked Questions, top @c Not to be changed often, I think: in separate file. @appendix Copying this Manual @ifinfo The copyright notice for this manual is: @insertcopying @end ifinfo The full license text can be read here: @menu * GNU Free Documentation License:: License for copying this manual. @end menu @include fdl.texi @c @node Credits, Index, Internals, top @c @appendix Credits @node Index, , Copying this Manual, top @unnumbered Index @printindex cp @bye