ooxast-util-to-unified-latex
v0.6.0
Published
Convert `ooxast` syntax tree to `unified-latex` syntax tree.
Downloads
121
Maintainers
Readme
Note This repository is automatically generated from the main parser monorepo. Please submit any issues or pull requests there.
ooxast-util-to-unified-latex
Convert ooxast
syntax tree to unified-latex
syntax tree.
Contents
What is this?
This package is a utility that takes an ooxast (docx) syntax tree as input and turns it into a unified-latex (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
| Name | Type |
| :--------- | :------------------------------ | ------ | ------ |
| tree
| Element
| Text
| Root
|
| file
| VFile
|
| 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
| Name | Type |
| :--------- | :------------------------------ | ------ | ------ |
| tree
| Element
| Text
| Root
|
| 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`
| Name | Type |
| :--------- | :------- | -------- |
| citation
| any
|
| index
| string
| number
|
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
| Member | Type | Description |
| :--------- | :--------- | :------------------------------------------------- |
| name
| string
| Name 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
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
(ifxcolor
is enabled)hyperref
graphicx
caption
tabularx
(iftabularx
is enabled)
Defined in: src/lib/types.ts:158
parseCitation?
Function
Type declaration
Signature`
(citation: any): any;
Parameters`
| Name | Type |
| :--------- | :---- |
| citation
| any
|
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
| Name | Type |
| :-------- | :------------------ |
| h
| H
|
| node
| any
|
| 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/@[email protected]/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
| Name | Type | Description | |
| :------- | :------------------------------- | :-------------------------- | --- |
| h
| H
| ooxast constructor function | |
| parent
| Parent
<Node
<Data
>, Data
> | Node
| |
Returns
Defined in: src/lib/all.ts:10
one()
Signature
one(h: H, node: Node, parent?: Parent<Node<Data>, Data>): UnifiedLatexNode | UnifiedLatexNode[] | void;
Parameters
| Name | Type |
| :-------- | :------------------------------- |
| h
| H
|
| node
| Node
|
| 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
| Name | Type | | |
| :-------- | :------------------------------ | ------ | ------ |
| tree
| Element
| Text
| Root
|
| options
| Options
| | |
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`
| Name | Type | |
| :--------- | :------- | -------- |
| citation
| any
| |
| index
| string
| number
|
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
| Member | Type | Description |
| :--------- | :--------- | :------------------------------------------------- |
| name
| string
| Name 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
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
(ifxcolor
is enabled)hyperref
graphicx
caption
tabularx
(iftabularx
is enabled)
Defined in: src/lib/types.ts:159
parseCitation?
Function
Type declaration
Signature`
(citation: any): any;
Parameters`
| Name | Type |
| :--------- | :---- |
| citation
| any
|
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
| Name | Type |
| :-------- | :------------------ |
| h
| H
|
| node
| any
|
| 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/@[email protected]/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