Hi Daniel,

Daniel Kessler <[email protected]> writes:

> However, the problem isn't really with todonotes specifically, as can
> be appreciated with the following two MWE latex files that demonstrate
> the crux of the issue with chapter without involving todonotes at
> all.

First of all, many thanks for your report and sorry for the late
response.

> The first yields an error, the second compiles cleanly. They differ
> only in whether the preview package is active or not.
>
> \documentclass{article}
> \usepackage[active,sections]{preview}
> \begin{document}
> \makeatletter
> \@ifundefined{chapter}{\section{Section One}}{\chapter{Chapter One}}
> \makeatother
> \end{document}
>
> vs
>
> \documentclass{article}
> \usepackage[inactive,sections]{preview}
> \begin{document}
> \makeatletter
> \@ifundefined{chapter}{\section{Section One}}{\chapter{Chapter One}}
> \makeatother
> \end{document}
>
> Compiling the first yields 
>
> ! Undefined control sequence.
> <argument> \pr@\chapter 
>                         {Chapter One}
> l.7 ...ection{Section One}}{\chapter{Chapter One}}
>
> I think this could be fixed by adding some logic into around where the
> sections options is declared so that
>
> \PreviewMacro[*[[!]{\chapter}%]]
>
> is run *only* if \chapter is already defined. Perhaps there's some
> additional logic that be built into the \PreviewMacro instead, but the
> code used in that definition exceeds my understanding of (la)tex.

If you try this snippet:

  \documentclass{article}
  \usepackage[active,sections,
    auctex % Option added
  ]{preview}
  \begin{document}
  \makeatletter
  \@ifundefined{chapter}{\section{Section One}}{\chapter{Chapter One}}
  \makeatother
  \end{document}

the file prauctex.def is loaded which usually happens during the preview
generation inside Emacs, and that file contains:

  \preview@delay{\@ifundefined{pr@\string\chapter}{%
    \PreviewMacro*[*][#1{}]\chapter}{}}

But even so, the issue you describe happens again (differently) and
there are no previews inside Emacs.

I think the easiest way to circumvent this is by wrapping the
\listoftodos command inside the \ifPreview conditional in your .tex
file:

  \documentclass{article}
  \usepackage{todonotes}
  \usepackage[sections]{preview}
  \begin{document}

  \ifPreview \else \listoftodos \fi

  \section{Section One}
  \end{document}

The code in preview.sty also exceeds my understanding of (la)tex, so
this is the best I can offer and I'm afraid this report is a wontfix.

Again, thanks for your report and sorry for the late response.

Best, Arash



_______________________________________________
bug-auctex mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-auctex

Reply via email to