pub struct XdvipdfmxEngine { /* private fields */ }
Expand description

A struct for invoking the xdvipdfmx engine.

This struct has a fairly straightforward “builder” interface: you create it, apply any settings that you wish, and eventually run the process() method.

Due to constraints of the gnarly C/C++ code underlying the engine implementation, only one engine may run at once in one process. The engine execution framework uses a global mutex to ensure that this is the case. This restriction applies not only to the XdvipdfmxEngine type but to all Tectonic engines. I.e., you can’t run this engine and the XeTeX engine at the same time.

Implementations§

source§

impl XdvipdfmxEngine

source

pub fn enable_compression( &mut self, enable_compression: bool ) -> &mut XdvipdfmxEngine

Set whether compression will be enabled in the output PDF.

The default value is true. You might want to set this to false to improve the reproducibility of your generated PDFs, since different environments may create different compressed outputs even if their inputs and algorithms are the same. If this is your interest, see also enable_deterministic_tags.

source

pub fn enable_deterministic_tags( &mut self, deterministic_tags: bool ) -> &mut XdvipdfmxEngine

Set whether font tags will be generated deterministically.

The default is false: the engine includes some random characters when creating font tags. Changing this to true helps create byte-for-byte reproducible PDF outputs.

source

pub fn build_date(&mut self, date: SystemTime) -> &mut XdvipdfmxEngine

Sets the build date embedded in the output artifacts

The default value is the Unix epoch, which is almost certainly not what you want. This value is used as a source of entropy and is written to the output PDF.

source

pub fn paper_spec(&mut self, paper_spec: String) -> &mut XdvipdfmxEngine

Set the initial paper size specification to be used.

The default is "letter", regardless of current locale.

source

pub fn process( &mut self, launcher: &mut CoreBridgeLauncher<'_>, dvi: &str, pdf: &str ) -> Result<(), Error>

Run xdvipdfmx.

The launcher parameter gives overarching environmental context in which the engine will be run.

The dvi parameter gives the name of the DVI file, created by the TeX engine, that will be processed. In Tectonic this is actually an XDV file, containing extended features needed for XeTeX Unicode processing.

The pdf parameter gives the name of the output PDF file to create.

Trait Implementations§

source§

impl Default for XdvipdfmxEngine

source§

fn default() -> XdvipdfmxEngine

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more