leo-colisson / robust-externalize

A LaTeX library to cache pictures (including tikz, python code, and more) in a robust, customizable, and pure way.
7 stars 2 forks source link

Set compiler in general (\setPlaceholder*{__ROBEXT_LATEX_ENGINE__}) #15

Closed dflvunoooooo closed 7 months ago

dflvunoooooo commented 7 months ago

More like a question than an issue.

Is \setPlaceholder*{__ROBEXT_LATEX_ENGINE__}{xelatex} the desired way to set the compiler in general for every environment?

tobiasBora commented 7 months ago

While it works, there are a number of way to make it cleaner. I would rather recommend you to put that in a preset in order to make changes as local as possible (maybe another package assume that __ROBEXT_LATEX_ENGINE__ is equal to pdflatex by default and it is important for them?). In the latex-based presets, you can even use use xelatex instead of set placeholder={__foo__}{bar}. So I would rather recommend:

\robExtConfigure{
  add to preset={latex}{
    use xelatex,
  },
}

but it is certainly a matter of taste.

Note also that the star version of \setPlaceholder is good here (because this placeholder is automatically imported later), but it does not automatically import the placeholder (I needed to do that for efficiency reasons… I might have some ideas to avoid the need to import placeholders but I need to test it before), so for user-defined placeholders, do not put any * if you do not want to worry about the import system.

tobiasBora commented 7 months ago

Also, you might prefer the discussions forum https://github.com/leo-colisson/robust-externalize/discussions for questions (but do add stuff here if it is a bug or a feature request). The advantage of the forum is that others will see my answers, while here it will be hidden once the issue is closed. If you don't mind I'll convert it to a discussion now.