Max Nikulin writes: > I just have checked that a dirty hack with a few lines of code for > `org-export-filter-final-output-functions' allows to insert arbitrary > text to the beginning of export result. Perhaps a more elegant solution > exists, but I admit it is not a straightforward way. At least it is > possible.
And it is also possible by simply defining a new class (in Org terminology, not LaTeX). My usual class is an almost empty one, without documentclass and without packages, because I don't want org to write the preamble for me. But I think this is not the point. > I do not mind that generation of preamble should be more flexible, but I > consider LATEX_PRE_HEADER as an ad hoc solution, so I am trying to find > a better variant. That is why I asked for details concerning particular > use cases. IMHO, LaTeX_pre_header is obvious and transparent to the user: a version of LaTeX_header that behaves exactly the same, except that it exports the lines before \documentclass. It is simple and requires little code to implement, and it is used for all cases of code before the declaration of the class, since its syntax is consistent with LaTeX_header. And its use does not require further explanation. You can even play with constructions like: #+NAME: pre #+begin_src latex :exports none (some stuff) #+end_src #+begin_src latex :noweb yes :results raw ,#+LaTeX_pre_header: <<pre>> #+end_src > I remember recipes like "put \usepackage{cmap} immediately after > \documentclass" (nowadays this particular one should not be necessary). > So I would prefer to avoid keywords per each chunk of preamble code. I think that this would not be the case. This is not just any part of the preamble, but a fairly definite part. Broadly speaking, LaTeX_header would take care of what is after \documenclass (the axis of a LaTeX document); LaTeX_pre_header would do it of anything that may have come before. And both provide a less constricted preamble for advanced use of LaTeX. Frankly, I can't think of a simpler solution. > \begin{filecontents*} from the original post is not convincing. Are you not convinced by some instructions that are included in the official documentation of a LaTeX package (pdfx)? https://i.imgur.com/NdLWmwc.png The thing is that here it is not a question of whether something can be done in this way or in another better way. This is how a given package recommends doing it. If the user wants to use that specific package, she/he will have to follow these instructions. It's more. I am thinking, for example, of the case in which the user has to obtain a * tex file, not a PDF, because she/he is collaborating with more people who do not use Org, but do use that code in the * tex document. -- Juan Manuel Macías https://juanmanuelmacias.com https://lunotipia.juanmanuelmacias.com https://gnutas.juanmanuelmacias.com