Kolaru / Kolaru/MathTeXEngine.jl

[FEATURE] Supporting Matrix Notation

Open
#48 9 comments 4 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
106
Forks
25
PR merge metrics
No merged PRs in 30d

Description

Hi @Kolaru ,

I was tinkering with MathTeXEngine and was trying to render a matrix.
Using `LaTeXStrings.jl`, I wrote the following snippet:

```julia
latex_string = L"""
$\begin{matrix}
1 & 2 & 3\\
a & b & c
\end{matrix}$
"""
```

And when I tried rendering it like so:

```julia
generate_tex_elements(latex_string)
```

I got the following error:

```julia
ERROR: TeXParseError: unexpected error while parsing
at position 7 (string index 7)
\begin{matrix}
1 & 2 & 3\\
a & b & c
\end{matrix}
^
Stack before
[1] TeXExpr :expr

Stacktrace:
[1] texparse(data::String; showdebug::Bool)
@ MathTeXEngine ~/.julia/packages/MathTeXEngine/zH12o/src/parser/parser.jl:285
[2] texparse
@ ~/.julia/packages/MathTeXEngine/zH12o/src/parser/parser.jl:271 [inlined]
[3] _broadcast_getindex_evalf
@ ./broadcast.jl:670 [inlined]
[4] _broadcast_getindex
@ ./broadcast.jl:643 [inlined]
[5] _getindex
@ ./broadcast.jl:666 [inlined]
[6] _broadcast_getindex
@ ./broadcast.jl:642 [inlined]
[7] getindex
@ ./broadcast.jl:597 [inlined]
[8] copy
@ ./broadcast.jl:899 [inlined]
[9] materialize
@ ./broadcast.jl:860 [inlined]
[10] generate_tex_elements(str::LaTeXString, font_family::MathTeXEngine.FontFamily)
@ MathTeXEngine ~/.julia/packages/MathTeXEngine/zH12o/src/engine/layout.jl:295
[11] generate_tex_elements(str::LaTeXString)
@ MathTeXEngine ~/.julia/packages/MathTeXEngine/zH12o/src/engine/layout.jl:289
[12] top-level scope
@ REPL[12]:1

caused by: TeXParseError: unsupported command \begin
at position 7 (string index 7)
\begin{matrix}
1 & 2 & 3\\
a & b & c
\end{matrix}
^
Stack before
[1] TeXExpr :expr

Stacktrace:
[1] _end_command_builder!(stack::DataStructures.Stack{Any}, p::Int64, data::String)
@ MathTeXEngine ~/.julia/packages/MathTeXEngine/zH12o/src/parser/parser.jl:233
[2] macro expansion
@ ~/.julia/packages/MathTeXEngine/zH12o/src/parser/parser.jl:256 [inlined]
[3] macro expansion
@ ~/.julia/packages/Automa/1KOLQ/src/codegen.jl:149 [inlined]
[4] texparse(data::String; showdebug::Bool)
@ MathTeXEngine ~/.julia/packages/MathTeXEngine/zH12o/src/parser/parser.jl:283
[5] texparse
@ ~/.julia/packages/MathTeXEngine/zH12o/src/parser/parser.jl:271 [inlined]
[6] _broadcast_getindex_evalf
@ ./broadcast.jl:670 [inlined]
[7] _broadcast_getindex
@ ./broadcast.jl:643 [inlined]
[8] _getindex
@ ./broadcast.jl:666 [inlined]
[9] _broadcast_getindex
@ ./broadcast.jl:642 [inlined]
[10] getindex
@ ./broadcast.jl:597 [inlined]
[11] copy
@ ./broadcast.jl:899 [inlined]
[12] materialize
@ ./broadcast.jl:860 [inlined]
[13] generate_tex_elements(str::LaTeXString, font_family::MathTeXEngine.FontFamily)
@ MathTeXEngine ~/.julia/packages/MathTeXEngine/zH12o/src/engine/layout.jl:295
[14] generate_tex_elements(str::LaTeXString)
@ MathTeXEngine ~/.julia/packages/MathTeXEngine/zH12o/src/engine/layout.jl:289
[15] top-level scope
@ REPL[12]:1
```

I saw that this issue was somewhat similar to supporting `\begin{align}` statements in #25 .
So, out of curiosity, how difficult would it be to create support for rendering matrices in `MathTeXEngine`?
Is this something that is out of the purview of the engine or would it be doable?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.