From 829832c896990fedb8c1485e7f3e08f5589f6dbf Mon Sep 17 00:00:00 2001 From: David Gustavsson Date: Sun, 15 Sep 2024 13:39:21 +0200 Subject: [PATCH] Latexify undefined array elements --- src/latexarray.jl | 7 +++++-- test/latexarray_test.jl | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/latexarray.jl b/src/latexarray.jl index 66cda996..49eed688 100644 --- a/src/latexarray.jl +++ b/src/latexarray.jl @@ -45,9 +45,12 @@ function _latexarray( "}\n" ) - arr = latexraw.(arr; kwargs...) for i in rows, j in columns - str *= arr[i,j] + if isassigned(arr, i, j) + str *= latexraw(arr[i,j]; kwargs...) + else + str *= raw"\cdot" + end j == last(columns) ? (str *= eol) : (str *= " & ") end diff --git a/test/latexarray_test.jl b/test/latexarray_test.jl index 6012a649..5f51b2dd 100644 --- a/test/latexarray_test.jl +++ b/test/latexarray_test.jl @@ -228,3 +228,26 @@ tensor = rand(3,3,3) tensor = fill(42) @test_throws ErrorException("Cannot latexify n-dimensional tensors with n≠1,2") latexify(tensor) + +undefarr = Array{Any,2}(undef, 2, 2) +@test latexify(undefarr) == replace( +raw"\begin{equation} +\left[ +\begin{array}{cc} +\cdot & \cdot \\ +\cdot & \cdot \\ +\end{array} +\right] +\end{equation} +", "\r\n"=>"\n") +undefarr[1,1] = "x" +@test latexify(undefarr) == replace( +raw"\begin{equation} +\left[ +\begin{array}{cc} +x & \cdot \\ +\cdot & \cdot \\ +\end{array} +\right] +\end{equation} +", "\r\n"=>"\n")