PS: You can also add the code in your Emacs Lisp test code

Sorry for the convoluted suggestion...
/PA

On Sun, 29 Jun 2025 at 19:16, Pedro Andres Aranda Gutierrez
<paag...@gmail.com> wrote:
>
> Last try:
> put the following after the header and before the text in your buffer,
> evaluate the block (C-c C-c) and then export to a buffer C-c C-e l L
>
> --- cut here
> #+BEGIN_SRC emacs-lisp :exports none :results none :eval export
> (defun add-texparse-filter (output backend info)
>   "Disable TeX-parse-self."
>   (when (eq backend 'latex)
>     (concat output
>      "\n"
>      "%%% Local Variables:\n"
>      "%%% TeX-parse-self: nil\n"
>      "%%% End:\n" )))
>
> (make-variable-buffer-local 'org-export-filter-final-output-functions)
> (add-to-list 'org-export-filter-final-output-functions
>            'add-texparse-filter)
> #+END_SRC
> --- cut here
>
> This is a try to see if we can make the configuration of this
> workaround customisable.
>
> Best, /PA
>
> On Sun, 29 Jun 2025 at 14:12, Vangelis Evangelou <evange...@gmail.com> wrote:
> >
> > Hi Pedro.
> >
> > > This looks more like a side effect of using the auctex package
> >
> > I see. That makes sense. However, the function org-latex-export-as-latex 
> > calls LaTeX-mode, which is an alias for ‘latex-mode’ in ‘tex-mode.el’ that 
> > comes with emacs. However, auctex defines its own LaTeX-mode. I think 
> > org-latex-export-as-latex *intentionally* calls LaTeX-mode instead of 
> > latex-mode to make use of auctex if that's available.
> >
> > > Just BTW, do you see the problem pop up when you C-c C-e l o?
> >
> > No, it doesn't happen in this case.
> >
> > > What about saving the exported LaTeX to a file and then opening the file 
> > > in a separate buffer?
> >
> > I'm not sure what you mean. Do you mean C-c C-e l l? In that case, the 
> > problem doesn't happen after you open the file because the buffer is 
> > associated with a file.
> >
> > > Wasn't it TeX-master that did this...
> >
> > Yes, TeX-master also specifies the master file. TeX-master is part of 
> > auctex. reftex-TeX-master-file is part of reftex that does the same job. 
> > reftex-TeX-master-file uses auctex, if installed, otherwise, it does its 
> > own thing.
> >
> > > Anyhow, after reading the auctex documentation, could you please add the 
> > > following at the beginning of your test document?
> >
> > There must be something wrong with your code because after I do export and 
> > check org-export-filter-final-output-functions, I see nil. I also get an 
> > error with that when I open the org file: "Local variables list is not 
> > properly terminated"
> >
> > At the moment my workaround is
> > (use-package org
> >   :config
> >   (advice-add 'org-latex-export-as-latex :around
> >               (lambda (fun &rest args)
> >                 (cl-letf (((symbol-function 'reftex-TeX-master-file)
> >                            (and (fboundp 'TeX-master-file)
> >                                 (not (buffer-file-name))
> >                                 #'(lambda (&rest _) "<none>"))))
> >                   (apply fun args)))))
> >
> > I think this is harmless as it temporarily overwrites 
> > reftex-TeX-master-file if auctex is used and there is no file associated 
> > with the buffer. In that case the return value is "<none>", which is what 
> > TeX-master-file would return as well.
> >
> > As I said in my previous email, if TeX-parse-self is t, then emacs scans 
> > for usepackage commands. Because the exported org file uses the amstex 
> > package, there are some commands provided by that package that need reftex, 
> > and so it runs reftex-TeX-master-file. However,  reftex requires a file, 
> > and so it results in an error. Temporarily changing the behaviour of 
> > reftex-TeX-master-file should be OK.
> >
> > On Sun, 29 Jun 2025 at 07:06, Pedro Andres Aranda Gutierrez 
> > <paag...@gmail.com> wrote:
> >>
> >> Hi
> >> Thx a lot for the explanation... answers inline
> >>
> >> On Sat, 28 Jun 2025 at 18:04, Vangelis Evangelou <evange...@gmail.com> 
> >> wrote:
> >> >
> >> > Hi Pedro.
> >> >
> >> > > I don't think this is a bug. It's more of a side effect ...
> >> >
> >> > I'm not sure what you are referring to. I assume that since the program 
> >> > does not produce the intended output, then it's a bug.
> >> Well, IMHO, a bug is when your code doesn't produce the intended
> >> result standalone. This looks more like a side effect of using the
> >> auctex package, so people not using it will not be affected by it.
> >>
> >> Just BTW, do you see the problem pop up when you C-c C-e l o? What
> >> about saving the exported LaTeX to a file and then opening the file in
> >> a separate buffer?
> >>
> >> > > I'd like to understand what this reftex-TeX-master-file variable means 
> >> > >  and what the effect of TeX-parse-self is.
> >> >
> >> > TeX-parse-self instructs emacs to scan the tex file for the document 
> >> > class, loaded packages and user-defined commands and make the relevant 
> >> > commands available to the user. For example, the graphicx package 
> >> > provides the command \includegraphics. Consider a file called file.tex 
> >> > containing the following
> >> > =====================
> >> > \documentclass{article}
> >> > \usepackage{graphicx}
> >> > \begin{document}
> >> >
> >> > \end{document}
> >> > ====================
> >> > With TeX-parse-self set to t (see the code in my original email), emacs 
> >> > will provide the commands from the article class and the graphicx 
> >> > package. For example, if you type C-c RET and then type includegraphics 
> >> > it will ask you a few questions about the image you want to include in 
> >> > the document. With TeX-parse-self set to nil, it doesn't know about the 
> >> > includegraphics command.
> >> >
> >> > reftex-TeX-master-file tells emacs which is the master file (so it 
> >> > assumes that such a file exists). That is, the main file that includes 
> >> > other files and needs to be compiled to produce a document. So you might 
> >> > have, e.g., file1.tex and file2.tex with file1.tex being the master file 
> >> > that includes file2.tex. So the master of file2 is file1.
> >>
> >> I see... Wasn't it TeX-master
> >> (https://www.gnu.org/software/emacs/manual/html_node/reftex/Multifile-Documents.html)
> >> that did this...
> >>
> >> > > A workaround may be what you propose or to
> >> > > (setq-local TeX-parse-self nil)
> >> > > in your org-mode-hook. Could you try this, please?
> >> >
> >> > This does not solve the problem because it applies the setting to the 
> >> > org buffer and not the exported latex buffer.
> >> >
> >> > I should add that (setq TeX-parse-self t) is one of the recommended 
> >> > settings by auctex https://elpa.gnu.org/packages/doc/auctex.html so I 
> >> > believe others are affected by this issues, though I'm surprised it 
> >> > hasn't been mentioned before.
> >>
> >> This is the source of my surprise too...
> >>
> >> Anyhow, after reading the auctex documentation, could you please add
> >> the following at the beginning of your test document?
> >>
> >> --- cut here
> >> #+BEGIN_SRC emacs-lisp :exports none :results none :eval export
> >> (defun add-texmaster-filter (output backend info)
> >>   "Add `%' to `\\end{minipage}' to allow side by side."
> >>   (when (eq backend 'latex)
> >>     (message "Adding TeX-master...")
> >>     (string-replace "\\end{document}"
> >>                     "\\end{document}\n\n%%% Local Variables:\n%%%
> >> TeX-master: t\n%%% End:\n" output)))
> >>
> >> (make-variable-buffer-local 'org-export-filter-final-output-functions)
> >> (add-to-list 'org-export-filter-final-output-functions
> >>            'add-texmaster-filter)
> >> #+END_SRC
> >> --- cut here
> >>
> >> Best, /PA
> >> >
> >> > On Sat, 28 Jun 2025 at 06:17, Pedro Andres Aranda Gutierrez 
> >> > <paag...@gmail.com> wrote:
> >> >>
> >> >> Hi Vangelis...
> >> >>
> >> >> Me and thinking?.. rather difficult... <LoL>
> >> >>
> >> >> Now seriously...
> >> >> I don't think this is a bug. It's more of a side effect and I'd like
> >> >> to understand what this reftex-TeX-master-file variable means  and
> >> >> what the effect of TeX-parse-self is.
> >> >>
> >> >> A workaround may be what you propose or to
> >> >> (setq-local TeX-parse-self nil)
> >> >> in your org-mode-hook. Could you try this, please?
> >> >>
> >> >> IMvvHO, it would be more desirable approach, because you control your
> >> >> setup for the packages you use.
> >> >> org would just document this "special case" (maybe in the FAQ),
> >> >> instead of "bloating" the package itself.
> >> >>
> >> >> @Ihor WDYT?
> >> >> Best, /PA
> >> >>
> >> >> On Fri, 27 Jun 2025 at 18:31, Vangelis Evangelou <evange...@gmail.com> 
> >> >> wrote:
> >> >> >
> >> >> > Hi Pedro.
> >> >> >
> >> >> > The export works as expected *without* loading auctex. It also works 
> >> >> > as expected *with* loading auctex, but with TeX-parse-self to nil. 
> >> >> > Perhaps the best solution is to amend org-latex-export-as-latex to 
> >> >> > set TeX-parse-self to nil before calling LaTeX-mode, e.g., with (let 
> >> >> > ((TeX-parse-self nil)) <rest of the org-latex-export-as-latex code 
> >> >> > here>). To be honest, I'm not sure if this is a bug of org or 
> >> >> > reftex-auc. What do you think?
> >> >> >
> >> >> >
> >> >> > On Fri, 27 Jun 2025 at 16:41, Pedro Andres Aranda Gutierrez 
> >> >> > <paag...@gmail.com> wrote:
> >> >> >>
> >> >> >> Vangelis writes:
> >> >> >>
> >> >> >> > Hello.
> >> >> >> >
> >> >> >> > I started with emacs -q. Then in the scratch buffer, I evaluated 
> >> >> >> > the
> >> >> >> > following code
> >> >> >> >
> >> >> >> > (use-package reftex-auc)
> >> >> >> > (use-package tex
> >> >> >> >   :load-path "site-lisp/auctex-14.0.9"
> >> >> >> >   :custom
> >> >> >> >   (TeX-parse-self t))
> >> >> >> >
> >> >> >> > Then, I created an org buffer which I exported to latex buffer 
> >> >> >> > (C-c C-e l
> >> >> >> > L). I get the error message
> >> >> >> >
> >> >> >> > reftex-TeX-master-file: Wrong type argument: stringp, nil
> >> >> >>
> >> >> >> Hi,
> >> >> >>
> >> >> >> could you please try the export part again *without* loading auctex?
> >> >> >> It looks like the LaTeX exporter is not generating that thing, which 
> >> >> >> I
> >> >> >> guess is a file local variable.
> >> >> >>
> >> >> >> I remember never having time enough to procrastinate to cope with all
> >> >> >> the quirks of auctex while writing my PhD - some time ago ;-) - and
> >> >> >> going the "pure" LaTeX way with some yasnippets and a bit of code to
> >> >> >> emulate the couple of features people loved from auctex as a viable
> >> >> >> alternative.
> >> >> >>
> >> >> >> Maybe that could be a project once the PDF exporter reaches master...
> >> >> >>
> >> >> >> Thx, /PA
> >> >> >>
> >> >> >> --
> >> >> >> Fragen sind nicht da, um beantwortet zu werden,
> >> >> >> Fragen sind da um gestellt zu werden
> >> >> >> Georg Kreisler
> >> >> >>
> >> >> >> Sagen's Paradeiser, write BE!
> >> >> >> Year 1 of the New Koprocracy
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Fragen sind nicht da, um beantwortet zu werden,
> >> >> Fragen sind da um gestellt zu werden
> >> >> Georg Kreisler
> >> >>
> >> >> Sagen's Paradeiser, write BE!
> >> >> Year 1 of the New Koprocracy
> >>
> >>
> >>
> >> --
> >> Fragen sind nicht da, um beantwortet zu werden,
> >> Fragen sind da um gestellt zu werden
> >> Georg Kreisler
> >>
> >> Sagen's Paradeiser, write BE!
> >> Year 1 of the New Koprocracy
>
>
>
> --
> Fragen sind nicht da, um beantwortet zu werden,
> Fragen sind da um gestellt zu werden
> Georg Kreisler
>
> Sagen's Paradeiser, write BE!
> Year 1 of the New Koprocracy



-- 
Fragen sind nicht da, um beantwortet zu werden,
Fragen sind da um gestellt zu werden
Georg Kreisler

Sagen's Paradeiser, write BE!
Year 1 of the New Koprocracy

Reply via email to