Max Nikulin writes: > On 25/09/2023 01:42, Juan Manuel Macías wrote: >> According to the pdfx package documentation >> (https://www.ctan.org/pkg/pdfx), p. 6 (at the bottom of the page)/7: >> --- >> Warning: The \jobname.xmpdata file may be included in the main document >> source, within a {filecontents*} environment, provided this comes before >> the \documentclass command, as follows[...] >> --- > > Does it mean that with hyperxmp you can not generate documents > satisfying some requirements and you need namely pdfx? Is there a > reason that .xmpdata files must be generated namely by a LaTeX engine > and writing them by elisp code is unacceptable?
In the hyperxmp manual a comparison is made with the pdfx package and other similar packages. Anyway, this topic deviates drastically from the original topic of the thread. There will be users who prefer to use hyperxmp package and users who prefer pdfx. Hyperxmp is probably more recommended, but I don't know either one deeply, so I couldn't say. In any case: I think the central issue is to provide support for inserting arbitrary code before \documentclass. The pdfx example is just one valid example (ideally Org should not put obstacles to the use of any package). As I said, there are more cases. For example, a few packages (I don't remember their names) are recommended to be loaded first using \RequirePackage. And there is also the case of the \PassOptionsToPackage command. A good practice in LaTeX documents is usually to put this command at the very beginning of the document, to avoid messages such as "option class for xx package error". It is placed at the very beginning because there may be classes that already require the package involved in the error. And one more example: a new package for LuaLaTeX was recently uploaded to CTAN, which allows the use of shebangs in LaTeX documents. In short, there are many heterogeneous cases, and it is the very heterogeneity of these cases that leads to a solution similar to LaTeX_header, IMHO. Actually, any code (except \usepackage) would be possible before \cocumentclass. >> For example, the newpax package, to preserve the internal links of a pdf >> included in the document, requires putting commands like >> \DocumentMetadata{ } before documentclass. > > If I understand it correctly, \DocumentMetadata is a switch to enable > "new" LaTeX like it was for \documentclass vs. \documentstyle during > transition to LaTeX2e from LaTeX 2.09. https://tex.stackexchange.com/questions/686898/what-is-documentmetadata-what-key-value-pairs-does-it-take-and-when-should-i-u (As for the transition from LaTeX2e to LaTeX 3, it seems that it is not going to be as defined as the transition we witnessed in the leap from LaTeX 2.09. In reality it seems that there is not going to be such a leap but rather a "coexistence" of both worlds: https://www.latex-project.org/publications/2020-FMi-TUB-tb128mitt-quovadis.pdf) > If so, Org should have native support of \DocumentMetadata, not > LATEX_PRE_HEADER or something similar. If it were the only case of code before \documentclass, I would agree. But, as I have already said above, the diversity of use cases makes the implementation of /ad hoc/ solutions unviable, in my opinion. -- Juan Manuel Macías https://juanmanuelmacias.com https://lunotipia.juanmanuelmacias.com https://gnutas.juanmanuelmacias.com