Replacing pdflatex with xelatex


I read in the manual that Scrivener, by default, generates PDF files by using the pdflatex engine. For even better quality, and wider compatibility with Unicode characters and system fonts, it is recommended to replace LaTeX with XeLaTeX.

How to do this? I guess this is not installed with the standard Scrivener installer. I see MacTex included XeLaTeX. But how to tell Scrivener to use it, instead of the standard engine?


If you’re using the straight PDF option in the compile dropdown, there isn’t any control over that. This is something we might change, as there is at this point in time little downside in using XeLaTeX. So we might just set it up to use that by default no matter.

In the meantime though, I would suggest using the regular “MultiMarkdown” selection, and using the Processing pane to set your command-line arguments and have it produce a PDF that way.

1 Like

For completeness, for anyone using Multimarkdown > Pandoc, the command line option for this is:


You can also use metadata specified in Scrivener’s front matter if you don’t want to specify this as a command-line option. PROGRAM can be any of these depending on the -t output format (i.e. you can use HTML, TeX, ConTeXt PDF generation engines):

  • -t latex or none: pdflatex (other options: xelatex, lualatex, tectonic, latexmk)
  • -t context: context
  • -t html: wkhtmltopdf (other options: prince, weasyprint, pagedjs-cli; see for a good introduction to PDF generation from HTML/CSS)
  • -t ms: pdfroff

So for xelatex, -t latex --pdf-engine=xelatex…