0.5.0 • Published 7 months ago

ooxast-util-to-unified-latex v0.5.0

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
7 months ago

Note This repository is automatically generated from the main parser monorepo. Please submit any issues or pull requests there.

ooxast-util-to-unified-latex

npm version npm downloads

Convert ooxast syntax tree to unified-latex syntax tree.

Contents

What is this?

This package is a utility that takes an ooxast syntax tree as input and turns it into a unified-latex syntax tree.

When should I use this?

This project is useful when you want to deal with ASTs and turn OOXML into LaTeX.

The reoff plugin reoff-unified-latex wraps this utility to also turn markdown to HTML at a higher-level (easier) abstraction.

Install

This package is ESM only. In Node.js (version 12.20+, 14.14+, 16.0+, 18.0+), install as

pnpm add ooxast-util-to-unified-latex
# or with yarn
# yarn add ooxast-util-to-unified-latex
# or with npm
# npm install ooxast-util-to-unified-latex

Use

API


toUnifiedLatex()

Signature

toUnifiedLatex(tree: Element | Text | Root, file: VFile, options?: Options): UnifiedLatexRoot;

Parameters

NameType
treeElementTextRoot
fileVFile
options?Options

Returns

UnifiedLatexRoot

Defined in: src/lib/ooxast-util-to-unified-latex.ts:62

Signature

toUnifiedLatex(tree: Element | Text | Root, options?: Options): UnifiedLatexRoot;

Parameters

NameType
treeElementTextRoot
options?Options

Returns

UnifiedLatexRoot

Defined in: src/lib/ooxast-util-to-unified-latex.ts:67


Options

Properties

bibliography?

string | Data[]

A bibliography you can add manually

Needs to be in CSL format, which will be converted to BibTeX, or in BibTeX format

Defined in: src/lib/types.ts:146

bibname?

string

Name of the bibliography file

Default

'bibliography.bib'

Defined in: src/lib/types.ts:47

citationType?

"endnote" | "mendeley" | "word" | "citavi" | "zotero"

What type of citation is used?

Default

'zotero'

Defined in: src/lib/types.ts:70

collectCitation?

Function

Type declaration

Signature`

(citation: any, index: string | number): any;

Parameters`

NameType
citationany
indexstringnumber

Returns`

any

Defined in: src/lib/types.ts:72

columnSeparator?

boolean

Should a column separator be added to tables? i.e. should | be added to the beginning and end of each row?

Default

false

Defined in: src/lib/types.ts:52

defaultCol?

string

What column should be used as the default column?

e.g l for left, r for right, c for center

Default

'l'

Defined in: src/lib/types.ts:127

displayMath?

"align" | "equation" | "equation*" | "align*" | "$$" | "[]"

What type of display math should be used?

-$$: $$ ... $$

-[]: [ ... \]

-equation | equation* | align | align*: \begin{...} ... \end{...}

Default

'equation'

Defined in: src/lib/types.ts:86

document?

boolean

Defined in: src/lib/types.ts:27

documentClass?

object

{
    name: string;
    options?: string[];
}

Options for the document class

Default
Type declaration
MemberTypeDescription
namestringName of the document class Default 'article'
options?string[]Options for the document class Default undefined

Defined in: src/lib/types.ts:56

handlers?

object

Handlers for specific node types

Index signature

handle: string: Handle

Type declaration

Defined in: src/lib/types.ts:26

inlineMath?

"$" | "()"

What type of inline math should be used? -$: $ ... $ -() : \(...\)

Default

'$'

Defined in: src/lib/types.ts:102

italics?

"emph" | "textit"

Should italics be rendered as \textit or \emph?

Default

'emph'

Defined in: src/lib/types.ts:43

newLines?

boolean

Defined in: src/lib/types.ts:28

packages?

(string | { name: string; options: string[]; })[]

A list of packages to add to the preamble

by default, the following packages are added:

  • xcolor (if xcolor is enabled)
  • hyperref
  • graphicx
  • caption
  • tabularx (if tabularx is enabled)

Defined in: src/lib/types.ts:158

parseCitation?

Function

Type declaration

Signature`

(citation: any): any;

Parameters`

NameType
citationany

Returns`

any

Defined in: src/lib/types.ts:71

preamble?

string | UnifiedLatexNode[]

A list of commands and other stuff to add to the preamble

You are responsible for making sure that the commands are valid LaTeX and that they can be used in the preamble.

You need to directly use the unified-latex types here, or you can just put it in raw

Default

'\title{}'

Example
import { m, args } from '@unified-latex/unified-latex-types'

const options = {
  preamble: [
    // \author{Leeroy Jenkins}
    m('author', 'Leeroy Jenkins'),
    // \title{The Adventures of Leeroy Jenkins}
    m('title', 'The Adventures of Leeroy Jenkins'),
    // \somemacrowithoptions[optional1][optional2]{firstArg}{secondArg}
    m(
      'somemacrowithoptions',
      args(['optional1', 'optional2', 'firstArg', 'secondArg'], { braces: '[][]{}{}' }),
    ),
  ],
}

Defined in: src/lib/types.ts:192

quotes?

string[]

Defined in: src/lib/types.ts:29

relations?

object

Index signature
Type declaration

Defined in: src/lib/types.ts:74

strikethrough?

"st" | "sout" | "s"

Defined in: src/lib/types.ts:103

tabularx?

boolean | { width?: string; }

Should tabularx be used instead of tabular?

Default

false

Defined in: src/lib/types.ts:132

title?

string

The title of the document

If this is not set, the title will be taken from the heading with the "Title" style.

Default

undefined

Defined in: src/lib/types.ts:119

topSection?

number

What the top section should be -1 = part 0 = chapter 1 = section 2 = subsection 3 = subsubsection 4 = paragraph 5 = subparagraph

Defined in: src/lib/types.ts:39

xcolor?

boolean

Are you using xcolor?

Disabling this will remove the xcolor package from the preamble and remove color related commands from the output.

Default

true

Defined in: src/lib/types.ts:111


H

HWithProps & HWithoutProps & Context

Defined in: src/lib/types.ts:292


Handle

Function

Type declaration

Signature
(h: H, node: any, parent?: Parent): UnifiedLatexNode | UnifiedLatexNode[] | void | undefined;
Parameters
NameType
hH
nodeany
parent?Parent
Returns

UnifiedLatexNode | UnifiedLatexNode[] | void | undefined

Defined in: src/lib/types.ts:195


UnifiedLatexNode

Root | String | Whitespace | Parbreak | Comment | Macro | Environment | VerbatimEnvironment | InlineMath | DisplayMath | Group | Verb

Defined in: node_modules/.pnpm/@unified-latex+unified-latex-types\@1.3.0/node_modules/@unified-latex/unified-latex-types/libs/ast-types.d.ts:83

jote


all()

Convert all nodes in tree using j

Signature

all(h: H, parent: Parent<Node<Data>, Data> | Node): UnifiedLatexNode[];

Parameters

NameTypeDescription
hHooxast constructor function
parentParent<Node<Data>, Data>Node

Returns

UnifiedLatexNode[]

Defined in: src/lib/all.ts:10


one()

Signature

one(h: H, node: Node, parent?: Parent<Node<Data>, Data>): UnifiedLatexNode | UnifiedLatexNode[] | void;

Parameters

NameType
hH
nodeNode
parent?Parent<Node<Data>, Data>

Returns

UnifiedLatexNode | UnifiedLatexNode[] | void

Defined in: src/lib/one.ts:8


toUnifiedLatex()

Signature

toUnifiedLatex(tree: Element | Text | Root, options: Options): Root;

Parameters

NameType
treeElementTextRoot
optionsOptions

Returns

Root

Defined in: src/lib/ooxast-util-to-unified-latex.ts:45


defaultHandlers

Const Context"handlers"

Defined in: src/lib/handlers/index.ts:20


Options

Properties

bibliography?

string | Data[]

A bibliography you can add manually

Needs to be in CSL format, which will be converted to BibTeX, or in BibTeX format

Defined in: src/lib/types.ts:147

bibname?

string

Name of the bibliography file

Default

'bibliography.bib'

Defined in: src/lib/types.ts:48

citationType?

"endnote" | "mendeley" | "word" | "citavi" | "zotero"

What type of citation is used?

Default

'zotero'

Defined in: src/lib/types.ts:71

collectCitation?

Function

Type declaration

Signature`

(citation: any, index: string | number): any;

Parameters`

NameType
citationany
indexstringnumber

Returns`

any

Defined in: src/lib/types.ts:73

columnSeparator?

boolean

Should a column separator be added to tables? i.e. should | be added to the beginning and end of each row?

Default

false

Defined in: src/lib/types.ts:53

defaultCol?

string

What column should be used as the default column?

e.g l for left, r for right, c for center

Default

'l'

Defined in: src/lib/types.ts:128

displayMath?

"align" | "equation" | "equation*" | "align*" | "$$" | "[]"

What type of display math should be used?

-$$: $$ ... $$

-[]: [ ... \]

-equation | equation* | align | align*: \begin{...} ... \end{...}

Default

'equation'

Defined in: src/lib/types.ts:87

document?

boolean

Defined in: src/lib/types.ts:28

documentClass?

object

{
    name: string;
    options?: string[];
}

Options for the document class

Default
Type declaration
MemberTypeDescription
namestringName of the document class Default 'article'
options?string[]Options for the document class Default undefined

Defined in: src/lib/types.ts:57

handlers?

object

Handlers for specific node types

Index signature

handle: string: Handle(modules.md#handle)

Type declaration

Defined in: src/lib/types.ts:27

inlineMath?

"$" | "()"

What type of inline math should be used? -$: $ ... $ -() : \(...\)

Default

'$'

Defined in: src/lib/types.ts:103

italics?

"emph" | "textit"

Should italics be rendered as \textit or \emph?

Default

'emph'

Defined in: src/lib/types.ts:44

newLines?

boolean

Defined in: src/lib/types.ts:29

packages?

(string | { name: string; options: string[]; })[]

A list of packages to add to the preamble

by default, the following packages are added:

  • xcolor (if xcolor is enabled)
  • hyperref
  • graphicx
  • caption
  • tabularx (if tabularx is enabled)

Defined in: src/lib/types.ts:159

parseCitation?

Function

Type declaration

Signature`

(citation: any): any;

Parameters`

NameType
citationany

Returns`

any

Defined in: src/lib/types.ts:72

preamble?

string | UnifiedLatexNode[]

A list of commands and other stuff to add to the preamble

You are responsible for making sure that the commands are valid LaTeX and that they can be used in the preamble.

You need to directly use the unified-latex types here, or you can just put it in raw

Default

'\title{}'

Example
import { m, args } from '@unified-latex/unified-latex-types'

const options = {
  preamble: [
    // \author{Leeroy Jenkins}
    m('author', 'Leeroy Jenkins'),
    // \title{The Adventures of Leeroy Jenkins}
    m('title', 'The Adventures of Leeroy Jenkins'),
    // \somemacrowithoptions[optional1][optional2]{firstArg}{secondArg}
    m(
      'somemacrowithoptions',
      args(['optional1', 'optional2', 'firstArg', 'secondArg'], { braces: '[][]{}{}' }),
    ),
  ],
}

Defined in: src/lib/types.ts:193

quotes?

string[]

Defined in: src/lib/types.ts:30

relations?

object

Index signature
Type declaration

Defined in: src/lib/types.ts:75

strikethrough?

"st" | "sout" | "s"

Defined in: src/lib/types.ts:104

tabularx?

boolean | { width?: string; }

Should tabularx be used instead of tabular?

Default

false

Defined in: src/lib/types.ts:133

title?

string

The title of the document

If this is not set, the title will be taken from the heading with the "Title" style.

Default

undefined

Defined in: src/lib/types.ts:120

topSection?

number

What the top section should be -1 = part 0 = chapter 1 = section 2 = subsection 3 = subsubsection 4 = paragraph 5 = subparagraph

Defined in: src/lib/types.ts:40

xcolor?

boolean

Are you using xcolor?

Disabling this will remove the xcolor package from the preamble and remove color related commands from the output.

Default

true

Defined in: src/lib/types.ts:112


H

HWithProps & HWithoutProps & Context

Defined in: src/lib/types.ts:292


Handle

Function

Type declaration

Signature
(h: H, node: any, parent?: Parent): UnifiedLatexNode | UnifiedLatexNode[] | void | undefined;
Parameters
NameType
hH
nodeany
parent?Parent
Returns

UnifiedLatexNode | UnifiedLatexNode[] | void | undefined

Defined in: src/lib/types.ts:196


UnifiedLatexNode

Root | String | Whitespace | Parbreak | Comment | Macro | Environment | VerbatimEnvironment | InlineMath | DisplayMath | Group | Verb

Defined in: node_modules/.pnpm/@unified-latex+unified-latex-types\@1.3.0/node_modules/@unified-latex/unified-latex-types/libs/ast-types.d.ts:83

Syntax tree

Types

Compatibility

Security

Related

Contribute

License

GPL-3.0-or-later © Thomas F. K. Jorna