Skip to main content

MathCoreConfig

Struct MathCoreConfig 

Source
pub struct MathCoreConfig {
    pub pretty_print: PrettyPrint,
    pub macros: Vec<(String, String)>,
    pub xml_namespace: bool,
    pub ignore_unknown_commands: bool,
    pub annotation: bool,
    pub allow_unreliable_rendering: bool,
    pub global_group: bool,
    pub unicode_substitution: UnicodeSubstitution,
    pub css_classes: CssClassNames,
    pub indentation: Indentation,
    pub max_expansions: MaxExpansions,
    pub id_prefix: String,
}
Expand description

Configuration object for the LaTeX to MathML conversion.

§Example usage

use math_core::{MathCoreConfig, PrettyPrint};

// Default values
let config = MathCoreConfig::default();

// Specifying pretty-print behavior
let config = MathCoreConfig {
    pretty_print: PrettyPrint::Always,
    ..Default::default()
 };

// Specifying pretty-print behavior and custom macros
let macros = vec![
    ("d".to_string(), r"\mathrm{d}".to_string()),
    ("bb".to_string(), r"\mathbb{#1}".to_string()), // with argument
];
let config = MathCoreConfig {
    pretty_print: PrettyPrint::Auto,
    macros,
    ..Default::default()
};

Fields§

§pretty_print: PrettyPrint

A configuration for pretty-printing the MathML output. See PrettyPrint for details.

§macros: Vec<(String, String)>

A list of LaTeX macros; each tuple contains (macro_name, macro_definition).

A macro may use another macro of this list, no matter which of the two comes first.

§xml_namespace: bool

If true, include xmlns="http://www.w3.org/1998/Math/MathML" in the <math> tag.

§ignore_unknown_commands: bool

If true, unknown commands will be rendered as red text in the output, instead of returning an error.

§annotation: bool

If true, wrap the MathML output in <semantics> tags with an <annotation encoding="application/x-tex"> child containing the original LaTeX source.

§allow_unreliable_rendering: bool

If true, allow rendering commands that produce MathML Core output that is unreliably rendered by browsers.

§global_group: bool

If true, run the conversion in the global group, which means that commands defined at the top level of a snippet with \newcommand (and related commands) stay defined for the snippets which come after it.

If false (the default), such definitions are local to the snippet which contains them. This matches LaTeX, where constructs like \begin{equation} and $$ open a local group, and it matches the default behavior of KaTeX.

§unicode_substitution: UnicodeSubstitution

If not UnicodeSubstitution::Never, substitute certain LaTeX commands with their Unicode equivalents in the MathML output.

§css_classes: CssClassNames

CSS class names for various elements in the output.

§indentation: Indentation

The indentation unit used when pretty-printing the MathML output. Either a number of spaces (e.g. 2) or the string "tab" for a tab character. See Indentation.

§max_expansions: MaxExpansions

How many custom commands may be expanded in one snippet before the conversion gives up. See MaxExpansions.

§id_prefix: String

Add this string to the start of every generated id attribute. This is not URL escaped. Use the percent-encoding crate if you need to.

Trait Implementations§

Source§

impl Debug for MathCoreConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MathCoreConfig

Source§

fn default() -> MathCoreConfig

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.

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.

Source§

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

Source§

type Error = !

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>,

Source§

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.