MichaelHatherly / MathJaxRenderer.jl

Render LaTeX equations with MathJax offline.
MIT License
19 stars 1 forks source link

undefined symbol: rsvg_css_parse_color_ #9

Closed originalsouth closed 2 years ago

originalsouth commented 2 years ago

write("fraction.png", Math("\\frac{1}{1 + x}"))

in Julia 1.6.4 [on (arch)linux (up to date)], results in:

ERROR: /home/<>/.julia/artifacts/b657399b96a122000ef230141db8acac5a702ade/bin/rsvg-convert: symbol lookup error: /home/<>/.julia/artifacts/b657399b96a122000ef230141db8acac5a702ade/bin/rsvg-convert: undefined symbol: rsvg_css_parse_color_

Stacktrace:
  [1] check
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:159 [inlined]
  [2] (::MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/png")}})(bin::String)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:156
  [3] (::JLLWrappers.var"#2#3"{MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/png")}}, String})()
    @ JLLWrappers ~/.julia/packages/JLLWrappers/bkwIo/src/runtime.jl:49
  [4] withenv(::JLLWrappers.var"#2#3"{MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/png")}}, String}, ::Pair{String, String}, ::Vararg{Pair{String, String}, N} where N)
    @ Base ./env.jl:161
  [5] withenv_executable_wrapper(f::Function, executable_path::String, PATH::String, LIBPATH::String, adjust_PATH::Bool, adjust_LIBPATH::Bool)
    @ JLLWrappers ~/.julia/packages/JLLWrappers/bkwIo/src/runtime.jl:48
  [6] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
  [7] invokelatest
    @ ./essentials.jl:706 [inlined]
  [8] #rsvg_convert#7
    @ ~/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:7 [inlined]
  [9] rsvg_convert
    @ ~/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:7 [inlined]
 [10] #converter#7
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:142 [inlined]
 [11] converter
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:142 [inlined]
 [12] show(io::IOStream, mime::MIME{Symbol("image/png")}, d::Math; kws::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:89
 [13] show(io::IOStream, mime::MIME{Symbol("image/png")}, d::Math)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:89
 [14] (::MathJaxRenderer.var"#2#3"{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, String, Math})(io::IOStream)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58
 [15] open(::MathJaxRenderer.var"#2#3"{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, String, Math}, ::String, ::Vararg{String, N} where N; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:330
 [16] open
    @ ./io.jl:328 [inlined]
 [17] #write#1
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58 [inlined]
 [18] write(fn::String, d::Math)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58
 [19] top-level scope
    @ REPL[12]:1
MichaelHatherly commented 2 years ago

Hi, thanks for the report. I can't get it to reproduce the same error you're getting yet, could I get the output of status --manifest so we can see what the exact differences in package versions are?

(MathJaxRenderer) pkg> status --manifest
     Project MathJaxRenderer v0.1.0
      Status `~/.julia/dev/MathJaxRenderer/Manifest.toml`
  [692b3bcd] JLLWrappers v1.3.0
  [0f8b85d8] JSON3 v1.9.2
  [2bd173c7] NodeJS v1.3.0
  [69de0a69] Parsers v2.1.2
  [21216c6a] Preferences v1.2.2
  [856f2bd8] StructTypes v1.8.1
  [6e34b625] Bzip2_jll v1.0.8+0
  [83423d85] Cairo_jll v1.16.1+0
  [2e619515] Expat_jll v2.2.10+0
  [a3f928ae] Fontconfig_jll v2.13.93+0
  [d7e528f0] FreeType2_jll v2.10.4+0
  [559328eb] FriBidi_jll v1.0.10+0
  [78b55507] Gettext_jll v0.21.0+0
  [7746bdde] Glib_jll v2.68.3+0
  [3b182d85] Graphite2_jll v1.3.14+0
  [2e76f6c2] HarfBuzz_jll v2.8.1+0
  [aacddb02] JpegTurbo_jll v2.1.0+0
  [dd4b983a] LZO_jll v2.10.1+0
  [57eb2189] Libcroco_jll v0.6.13+2
  [e9f186c6] Libffi_jll v3.2.2+1
  [d4300ac3] Libgcrypt_jll v1.8.7+0
  [7add5ba3] Libgpg_error_jll v1.42.0+0
  [94ce4f54] Libiconv_jll v1.16.1+1
  [4b2f31a3] Libmount_jll v2.35.0+0
  [925c91fb] Librsvg_jll v2.42.2+3
  [89763e89] Libtiff_jll v4.3.0+0
  [38a345b3] Libuuid_jll v2.36.0+0
  [2f80f16e] PCRE_jll v8.44.0+0
  [36c8627f] Pango_jll v1.47.0+0
  [30392449] Pixman_jll v0.40.1+0
  [02c8fc9c] XML2_jll v2.9.12+0
  [aed1982a] XSLT_jll v1.1.34+0
  [4f6342f7] Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] Xorg_libXau_jll v1.0.9+4
  [a3789734] Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] Xorg_libXext_jll v1.3.4+4
  [ea2f1a96] Xorg_libXrender_jll v0.9.10+4
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] Xorg_libxcb_jll v1.13.0+3
  [c5fb5394] Xorg_xtrans_jll v1.4.0+3
  [3161d3a3] Zstd_jll v1.5.0+0
  [da03df04] gdk_pixbuf_jll v2.42.6+0
  [b53b4c65] libpng_jll v1.6.38+0
  [0dad84c5] ArgTools
  [56f22d72] Artifacts
  [2a0f44e3] Base64
  [ade2ca70] Dates
  [f43a241f] Downloads
  [b77e0a4c] InteractiveUtils
  [b27032c2] LibCURL
  [76f85450] LibGit2
  [8f399da3] Libdl
  [56ddb016] Logging
  [d6f4376e] Markdown
  [a63ad114] Mmap
  [ca575930] NetworkOptions
  [44cfe95a] Pkg
  [de0858da] Printf
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA
  [9e88b42a] Serialization
  [6462fe0b] Sockets
  [fa267f1f] TOML
  [a4e569a6] Tar
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
  [e66e0078] CompilerSupportLibraries_jll
  [deac9b47] LibCURL_jll
  [29816b5a] LibSSH2_jll
  [c8ffd9c3] MbedTLS_jll
  [14a3606d] MozillaCACerts_jll
  [83775a58] Zlib_jll
  [8e850ede] nghttp2_jll
  [3f19e933] p7zip_jll

In addition can you try

julia> MathJaxRenderer.Librsvg_jll.rsvg_convert() do bin
           run(`$bin --version`)
       end
rsvg-convert version 2.42.2

to see whether rsvg-convert isn't broken somehow?

Does exporting an SVG file work?

write("fraction.svg", Math("\\frac{1}{1 + x}"))

And if so could you attach the generated SVG file, thanks.

originalsouth commented 2 years ago

Hi, thanks for the quick answer!

Here follows the requested information.

My manifest:

(@v1.6) pkg> status --manifest
      Status `~/.julia/environments/v1.6/Manifest.toml`
  [da404889] ARFFFiles v1.4.1
  [621f4979] AbstractFFTs v1.0.1
  [1520ce14] AbstractTrees v0.3.4
  [79e6a3ab] Adapt v3.3.1
  [c7e460c6] ArgParse v1.1.4
  [ec485272] ArnoldiMethod v0.1.0
  [4fba245c] ArrayInterface v3.2.1
  [4c555306] ArrayLayouts v0.7.5
  [13072b0f] AxisAlgorithms v1.0.1
  [39de3d68] AxisArrays v0.4.4
  [fbb218c0] BSON v0.3.4
  [6e4b80f9] BenchmarkTools v1.2.0
  [9e28174c] BinDeps v1.0.2
  [b99e7846] BinaryProvider v0.5.10
  [a74b3585] Blosc v0.7.1
  [e1450e63] BufferedStreams v1.0.0
  [fa961155] CEnum v0.4.1
  [631607c0] CMake v1.2.0
  [96374032] CRlibm v0.8.0
  [00ebfdb7] CSTParser v3.3.0
  [336ed68f] CSV v0.9.11
  [159f3aea] Cairo v1.0.5
  [49dc2e85] Calculus v0.5.1
  [aafaddc9] CatIndices v0.2.2
  [324d7699] CategoricalArrays v0.10.2
  [d360d2e6] ChainRulesCore v1.11.1
  [9e997f8a] ChangesOfVariables v0.1.1
  [aaaa29a8] Clustering v0.14.2
  [da1fd8a2] CodeTracking v1.0.6
  [944b1d66] CodecZlib v0.7.0
  [35d6a980] ColorSchemes v3.15.0
  [3da002f7] ColorTypes v0.10.12
  [c3611d14] ColorVectorSpace v0.9.8
  [5ae59095] Colors v0.12.8
  [34da2185] Compat v3.40.0
  [a81c6b42] Compose v0.9.2
  [ed09eef8] ComputationalResources v0.3.2
  [8f4d0f93] Conda v1.5.2
  [5218b696] Configurations v0.17.0
  [187b0558] ConstructionBase v1.3.0
  [d38c429a] Contour v0.5.7
  [150eb455] CoordinateTransformations v0.6.2
  [7ad07ef1] CoupledFields v0.2.0
  [a8cc5b0e] Crayons v4.0.4
  [dc8bdbbb] CustomUnitRanges v1.0.2
  [9a962f9c] DataAPI v1.9.0
  [124859b0] DataDeps v0.7.7
  [a93c6f00] DataFrames v1.2.2
  [864edb3b] DataStructures v0.18.10
  [e2d170a0] DataValueInterfaces v1.0.0
  [e7dc6d0d] DataValues v0.4.13
  [b4f34e82] Distances v0.10.6
  [31c24e10] Distributions v0.24.18
  [ffbed154] DocStringExtensions v0.8.6
  [ffa9a821] DocumentFormat v3.2.4
  [e30172f5] Documenter v0.25.5
  [cd674d7a] DocumenterLaTeX v0.2.0
  [497a8b3b] DoubleFloats v1.1.25
  [fa6b7ba4] DualNumbers v0.6.5
  [792122b4] EarlyStopping v0.1.9
  [da5c29d0] EllipsisNotation v1.1.3
  [90fa49ef] ErrorfreeArithmetic v0.5.2
  [e2ba6199] ExprTools v0.1.6
  [55351af7] ExproniconLite v0.6.13
  [c87230d0] FFMPEG v0.4.1
  [4f61f5a4] FFTViews v0.3.2
  [7a1cc6ca] FFTW v1.4.5
  [fa42c844] FastRounding v0.2.0
  [5789e2e9] FileIO v1.11.2
  [8fc22ac5] FilePaths v0.8.3
  [48062228] FilePathsBase v0.9.17
  [1a297f60] FillArrays v0.11.9
  [53c48c17] FixedPointNumbers v0.8.4
  [08572546] FlameGraphs v0.2.6
  [59287772] Formatting v0.4.2
  [fb4132e2] FuzzyCompletions v0.4.3
  [28b8d3ca] GR v0.62.1
  [92fee26a] GZip v0.5.1
  [c91e804a] Gadfly v1.3.3
  [14197337] GenericLinearAlgebra v0.2.7
  [5c1252a2] GeometryBasics v0.4.1
  [4d00f742] GeometryTypes v0.8.4
  [bd48cda9] GraphRecipes v0.5.8
  [a2bd30eb] Graphics v1.1.1
  [86223c79] Graphs v1.4.1
  [42e2da0e] Grisu v1.0.2
  [4c0ca9eb] Gtk v1.1.9
  [27996c0f] GtkReactive v1.0.6
  [f67ccb44] HDF5 v0.15.7
  [cd3eb016] HTTP v0.9.17
  [a1b4810d] Hexagons v0.2.0
  [2c695a8d] HistogramThresholding v0.2.5
  [b5f81e59] IOCapture v0.1.1
  [bbac6d45] IdentityRanges v0.3.1
  [615f187c] IfElse v0.1.1
  [2803e5a7] ImageAxes v0.6.9
  [cbc4b850] ImageBinarization v0.2.7
  [f332f351] ImageContrastAdjustment v0.3.7
  [a09fc81d] ImageCore v0.8.22
  [51556ac3] ImageDistances v0.2.13
  [6a3955dd] ImageFiltering v0.6.21
  [82e4d734] ImageIO v0.5.9
  [d8c32880] ImageInTerminal v0.4.6
  [6218d12a] ImageMagick v1.2.1
  [bc367c6b] ImageMetadata v0.9.5
  [787d08f9] ImageMorphology v0.2.11
  [2996bd0c] ImageQualityIndexes v0.2.2
  [80713f31] ImageSegmentation v1.5.1
  [4e3cecfd] ImageShow v0.3.1
  [02fcd773] ImageTransformations v0.8.13
  [86fae568] ImageView v0.10.14
  [916415d5] Images v0.24.1
  [9b13fd28] IndirectArrays v0.5.1
  [d25df0c9] Inflate v0.1.2
  [83e8ac13] IniFile v0.5.0
  [842dd82b] InlineStrings v1.0.1
  [a98d9a8b] Interpolations v0.13.4
  [d1acc4aa] IntervalArithmetic v0.20.0
  [8197267c] IntervalSets v0.5.3
  [d8418881] Intervals v1.5.0
  [3587e190] InverseFunctions v0.1.2
  [41ab1584] InvertedIndices v1.1.0
  [92d709cd] IrrationalConstants v0.1.1
  [c8e1da08] IterTools v1.3.0
  [b3c1a2ee] IterationControl v0.4.0
  [82899510] IteratorInterfaceExtensions v1.0.0
  [4138dd39] JLD v0.12.3
  [033835bb] JLD2 v0.4.15
  [1019f520] JLFzf v0.1.4
  [692b3bcd] JLLWrappers v1.3.0
  [9da8a3cd] JLSO v2.6.0
  [682c06a0] JSON v0.21.2
  [0f8b85d8] JSON3 v1.9.2
  [b9b8584e] JSONRPC v1.3.3
  [7d188eb4] JSONSchema v0.3.4
  [aa1ae85d] JuliaInterpreter v0.8.21
  [e5e0dc1b] Juno v0.8.4
  [5ab0869b] KernelDensity v0.6.3
  [2d691ee1] LIBLINEAR v0.6.0
  [b1bec4e5] LIBSVM v0.6.0
  [b964fa9f] LaTeXStrings v1.3.0
  [2b0e0bc5] LanguageServer v4.1.0
  [23fbe1c1] Latexify v0.15.9
  [a5e1c1ea] LatinHypercubeSampling v1.8.0
  [5078a376] LazyArrays v0.21.20
  [7f8f8fb0] LearnBase v0.3.0
  [1d6d02ad] LeftChildRightSiblingTrees v0.1.2
  [093fc24a] LightGraphs v1.3.5
  [4345ca2d] Loess v0.5.4
  [2ab3a3ac] LogExpFunctions v0.3.5
  [30fc2ffe] LossFunctions v0.6.0
  [6f1432cf] LoweredCodeUtils v2.1.2
  [23992714] MAT v0.10.1
  [f0e99cf1] MLBase v0.9.0
  [9920b226] MLDataPattern v0.5.4
  [cc2ba9b6] MLDataUtils v0.5.4
  [eb30cadb] MLDatasets v0.5.13
  [add582a8] MLJ v0.16.11
  [a7f614a8] MLJBase v0.18.17
  [50ed68f4] MLJEnsembles v0.1.2
  [614be32b] MLJIteration v0.3.3
  [61c7150f] MLJLIBSVMInterface v0.1.4
  [e80e1ace] MLJModelInterface v1.3.3
  [d491faf4] MLJModels v0.14.9
  [17bed46d] MLJSerialization v1.1.2
  [03970b2e] MLJTuning v0.6.11
  [66a33bbf] MLLabelUtils v0.5.6
  [1914dd2f] MacroTools v0.5.9
  [dbb5928d] MappedArrays v0.4.1
  [7eb4fadd] Match v1.2.0
  [c4602970] MathJaxRenderer v0.1.0
  [a3b82374] MatrixFactorizations v0.8.5
  [739be429] MbedTLS v1.0.3
  [442fdcdd] Measures v0.3.1
  [e89f7d12] Media v0.5.0
  [f28f55f0] Memento v1.3.0
  [626554b9] MetaGraphs v0.6.8
  [85b6ec6f] MethodAnalysis v0.4.4
  [978d7f02] MiniQhull v0.3.0
  [e1d29d7a] Missings v1.0.2
  [78c3b35d] Mocking v0.7.3
  [e94cdb99] MosaicViews v0.3.3
  [99f44e22] MsgPack v1.1.0
  [d8a4904e] MutableArithmetics v0.3.1
  [77ba4419] NaNMath v0.3.5
  [b8a86587] NearestNeighbors v0.4.9
  [f09324ee] Netpbm v1.0.1
  [46757867] NetworkLayout v0.4.3
  [2bd173c7] NodeJS v1.3.0
  [6fe1bfb0] OffsetArrays v1.10.8
  [5fb14364] OhMyREPL v0.5.10
  [52e1d378] OpenEXR v0.3.2
  [8b6db2d4] OpenML v0.1.1
  [bac558e1] OrderedCollections v1.4.1
  [90014a1f] PDMats v0.11.5
  [f57f5aa1] PNGFiles v0.3.12
  [5432bcbf] PaddedViews v0.5.10
  [d96e819e] Parameters v0.12.3
  [69de0a69] Parsers v2.1.2
  [b1ad91c1] PersistenceDiagramsBase v0.1.1
  [b98c9c47] Pipe v1.3.0
  [eebad327] PkgVersion v0.1.1
  [ccf2f8ad] PlotThemes v2.0.1
  [995b91a9] PlotUtils v1.0.15
  [91a5bcdd] Plots v1.24.3
  [c3e4b0f8] Pluto v0.17.2
  [f27b6e38] Polynomials v2.0.18
  [2dfb63ee] PooledArrays v1.4.0
  [21216c6a] Preferences v1.2.2
  [08abe8d2] PrettyTables v1.2.3
  [27ebfcd6] Primes v0.5.0
  [c46f51b8] ProfileView v0.6.11
  [49802e3a] ProgressBars v1.4.0
  [92933f4c] ProgressMeter v1.7.1
  [438e738f] PyCall v1.92.5
  [1fd47b50] QuadGK v2.4.2
  [be4d8f0f] Quadmath v0.5.5
  [94ee1d12] Quaternions v0.4.2
  [df47a6cb] RData v0.8.3
  [ce6b1742] RDatasets v0.7.6
  [b3c3ace0] RangeArrays v0.3.2
  [eb7db99b] Ranges v0.1.0
  [c84ed2f1] Ratios v0.4.2
  [a223df75] Reactive v0.8.3
  [3cdcf5f2] RecipesBase v1.2.1
  [01d81517] RecipesPipeline v0.4.1
  [9a9db56c] Rectangle v0.1.2
  [189a3867] Reexport v1.2.2
  [dee08c22] RegionTrees v0.3.2
  [ae029012] Requires v1.1.3
  [295af30f] Revise v3.1.20
  [79098fc4] Rmath v0.7.0
  [6038ab10] Rotations v1.1.0
  [5eaf0fd0] RoundingEmulator v0.2.1
  [d5f540fe] RoundingIntegers v1.0.0
  [321657f4] ScientificTypes v2.0.1
  [30f210dd] ScientificTypesBase v2.3.0
  [6e75b9c4] ScikitLearnBase v0.5.0
  [6c6a2e73] Scratch v1.1.0
  [91c51154] SentinelArrays v1.3.8
  [3cc68bcd] SetRounding v0.2.1
  [efcf1570] Setfield v0.7.1
  [992d4aef] Showoff v1.0.3
  [699a6c99] SimpleTraits v0.9.4
  [47aef6b3] SimpleWeightedGraphs v1.2.1
  [45858cf5] Sixel v0.1.2
  [a2af1166] SortingAlgorithms v1.0.1
  [276daf66] SpecialFunctions v1.8.1
  [860ef19b] StableRNGs v1.0.0
  [cae243ae] StackViews v0.1.1
  [aedffcd0] Static v0.4.0
  [90137ffa] StaticArrays v1.2.13
  [b3cc710f] StaticLint v8.0.1
  [64bff920] StatisticalTraits v2.1.0
  [82ae8749] StatsAPI v1.1.0
  [2913bbd2] StatsBase v0.33.13
  [4c63d2b9] StatsFuns v0.9.14
  [88034a9c] StringDistances v0.11.1
  [09ab397b] StructArrays v0.6.3
  [856f2bd8] StructTypes v1.8.1
  [cf896787] SymbolServer v7.1.0
  [d1efa939] TableIOInterface v0.1.6
  [3783bdb8] TableTraits v1.0.1
  [382cd787] TableTraitsUtils v1.0.2
  [bd369af6] Tables v1.6.0
  [62fd8b95] TensorCore v0.1.1
  [5e47fb64] TestImages v1.6.2
  [b718987f] TextWrap v1.0.1
  [731e570b] TiffImages v0.5.2
  [06e1c1a7] TiledIteration v0.3.1
  [f269a46b] TimeZones v1.6.2
  [0796e94c] Tokenize v0.5.21
  [3bb67fe8] TranscodingStreams v0.9.6
  [30578b45] URIParser v0.4.1
  [5c2747f8] URIs v1.3.0
  [3a884ed6] UnPack v1.0.2
  [1cfade01] UnicodeFun v0.4.1
  [239c3e63] Vega v2.3.0
  [112f6efa] VegaLite v2.6.0
  [81def892] VersionParsing v1.2.1
  [ea10d353] WeakRefStrings v1.4.1
  [efce3f68] WoodburyMatrices v0.5.5
  [7b86fcea] ATK_jll v2.36.1+0
  [0b7ba130] Blosc_jll v1.21.0+0
  [6e34b625] Bzip2_jll v1.0.8+0
  [83423d85] Cairo_jll v1.16.1+0
  [ee1fde0b] Dbus_jll v1.12.16+3
  [5ae413db] EarCut_jll v2.2.3+0
  [2e619515] Expat_jll v2.2.10+0
  [b22a6f82] FFMPEG_jll v4.4.0+0
  [f5851436] FFTW_jll v3.3.10+0
  [a3f928ae] Fontconfig_jll v2.13.93+0
  [d7e528f0] FreeType2_jll v2.10.4+0
  [559328eb] FriBidi_jll v1.0.10+0
  [0656b61e] GLFW_jll v3.3.5+1
  [d2c73de3] GR_jll v0.62.0+0
  [77ec8976] GTK3_jll v3.24.30+0
  [78b55507] Gettext_jll v0.21.0+0
  [7746bdde] Glib_jll v2.68.3+0
  [3b182d85] Graphite2_jll v1.3.14+0
  [0234f1f7] HDF5_jll v1.12.0+1
  [2e76f6c2] HarfBuzz_jll v2.8.1+0
  [c73af94c] ImageMagick_jll v6.9.12+0
  [905a6f67] Imath_jll v3.1.2+0
  [1d5cc7b8] IntelOpenMP_jll v2018.0.3+2
  [aacddb02] JpegTurbo_jll v2.1.0+0
  [c1c5ebd0] LAME_jll v3.100.1+0
  [dd4b983a] LZO_jll v2.10.1+0
  [57eb2189] Libcroco_jll v0.6.13+2
  [42c93a91] Libepoxy_jll v1.5.8+0
  [e9f186c6] Libffi_jll v3.2.2+1
  [d4300ac3] Libgcrypt_jll v1.8.7+0
  [7e76a0d4] Libglvnd_jll v1.3.0+3
  [7add5ba3] Libgpg_error_jll v1.42.0+0
  [94ce4f54] Libiconv_jll v1.16.1+1
  [4b2f31a3] Libmount_jll v2.35.0+0
  [925c91fb] Librsvg_jll v2.42.2+3
  [89763e89] Libtiff_jll v4.3.0+0
  [38a345b3] Libuuid_jll v2.36.0+0
  [5ced341a] Lz4_jll v1.9.3+0
  [856f044c] MKL_jll v2021.1.1+2
  [e7412a2a] Ogg_jll v1.3.5+0
  [18a262bb] OpenEXR_jll v3.1.1+0
  [458c3c95] OpenSSL_jll v1.1.10+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [91d4177d] Opus_jll v1.3.2+0
  [2f80f16e] PCRE_jll v8.44.0+0
  [36c8627f] Pango_jll v1.47.0+0
  [30392449] Pixman_jll v0.40.1+0
  [784f63db] Qhull_jll v2020.2.0+0
  [ea2cea3b] Qt5Base_jll v5.15.3+0
  [f50d1b31] Rmath_jll v0.3.0+0
  [a2964d1f] Wayland_jll v1.19.0+0
  [2381bf8a] Wayland_protocols_jll v1.23.0+0
  [02c8fc9c] XML2_jll v2.9.12+0
  [aed1982a] XSLT_jll v1.1.34+0
  [4f6342f7] Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] Xorg_libXau_jll v1.0.9+4
  [3c9796d7] Xorg_libXcomposite_jll v0.4.5+4
  [935fb764] Xorg_libXcursor_jll v1.2.0+4
  [0aeada51] Xorg_libXdamage_jll v1.1.5+4
  [a3789734] Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] Xorg_libXext_jll v1.3.4+4
  [d091e8ba] Xorg_libXfixes_jll v5.0.3+4
  [a51aa0fd] Xorg_libXi_jll v1.7.10+4
  [d1454406] Xorg_libXinerama_jll v1.1.4+4
  [ec84b674] Xorg_libXrandr_jll v1.5.2+4
  [ea2f1a96] Xorg_libXrender_jll v0.9.10+4
  [b6f176f1] Xorg_libXtst_jll v1.2.3+4
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] Xorg_libxcb_jll v1.13.0+3
  [cc61e674] Xorg_libxkbfile_jll v1.1.0+4
  [12413925] Xorg_xcb_util_image_jll v0.4.0+1
  [2def613f] Xorg_xcb_util_jll v0.4.0+1
  [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1
  [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1
  [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1
  [35661453] Xorg_xkbcomp_jll v1.4.2+4
  [33bec58e] Xorg_xkeyboard_config_jll v2.27.0+4
  [c5fb5394] Xorg_xtrans_jll v1.4.0+3
  [3161d3a3] Zstd_jll v1.5.0+0
  [b437f822] adwaita_icon_theme_jll v3.33.92+5
  [de012916] at_spi2_atk_jll v2.34.1+4
  [0fc3237b] at_spi2_core_jll v2.34.0+4
  [214eeab7] fzf_jll v0.27.2+0
  [da03df04] gdk_pixbuf_jll v2.42.6+0
  [059c91fe] hicolor_icon_theme_jll v0.17.0+3
  [bf975903] iso_codes_jll v4.3.0+4
  [0ac62f75] libass_jll v0.15.1+0
  [f638f0a6] libfdk_aac_jll v2.0.2+0
  [275f1f90] liblinear_jll v2.30.0+0
  [b53b4c65] libpng_jll v1.6.38+0
  [075b6546] libsixel_jll v1.8.6+1
  [08558c22] libsvm_jll v3.24.0+1
  [f27f6e37] libvorbis_jll v1.3.7+0
  [1270edf5] x264_jll v2021.5.5+0
  [dfaa095f] x265_jll v3.5.0+0
  [d8fb68d0] xkbcommon_jll v0.9.1+5
  [0dad84c5] ArgTools
  [56f22d72] Artifacts
  [2a0f44e3] Base64
  [ade2ca70] Dates
  [8bb1440f] DelimitedFiles
  [8ba89e20] Distributed
  [f43a241f] Downloads
  [7b1f6079] FileWatching
  [9fa8497b] Future
  [b77e0a4c] InteractiveUtils
  [4af54fe1] LazyArtifacts
  [b27032c2] LibCURL
  [76f85450] LibGit2
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [56ddb016] Logging
  [d6f4376e] Markdown
  [a63ad114] Mmap
  [ca575930] NetworkOptions
  [44cfe95a] Pkg
  [de0858da] Printf
  [9abbd945] Profile
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA
  [9e88b42a] Serialization
  [1a1011a3] SharedArrays
  [6462fe0b] Sockets
  [2f01184e] SparseArrays
  [10745b16] Statistics
  [4607b0f0] SuiteSparse
  [fa267f1f] TOML
  [a4e569a6] Tar
  [8dfed614] Test
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
  [e66e0078] CompilerSupportLibraries_jll
  [deac9b47] LibCURL_jll
  [29816b5a] LibSSH2_jll
  [c8ffd9c3] MbedTLS_jll
  [14a3606d] MozillaCACerts_jll
  [05823500] OpenLibm_jll
  [83775a58] Zlib_jll
  [8e850ede] nghttp2_jll
  [3f19e933] p7zip_jll

Versioning:

MathJaxRenderer.Librsvg_jll.rsvg_convert() do bin
    run(`$bin --version`)
end
rsvg-convert version 2.42.2

SVG exporting:

> write("fraction.svg", Math("\\frac{1}{1 + x}"))
ERROR: /home/<>/.julia/artifacts/b657399b96a122000ef230141db8acac5a702ade/bin/rsvg-convert: symbol lookup error: /home/<>/.julia/artifacts/b657399b96a122000ef230141db8acac5a702ade/bin/rsvg-convert: undefined symbol: rsvg_css_parse_color_

Stacktrace:
  [1] check
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:159 [inlined]
  [2] (::MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/svg+xml")}})(bin::String)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:156
  [3] (::JLLWrappers.var"#2#3"{MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/svg+xml")}}, String})()
    @ JLLWrappers ~/.julia/packages/JLLWrappers/bkwIo/src/runtime.jl:49
  [4] withenv(::JLLWrappers.var"#2#3"{MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/svg+xml")}}, String}, ::Pair{String, String}, ::Vararg{Pair{String, String}, N} where N)
    @ Base ./env.jl:161
  [5] withenv_executable_wrapper(f::Function, executable_path::String, PATH::String, LIBPATH::String, adjust_PATH::Bool, adjust_LIBPATH::Bool)
    @ JLLWrappers ~/.julia/packages/JLLWrappers/bkwIo/src/runtime.jl:48
  [6] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
  [7] invokelatest
    @ ./essentials.jl:706 [inlined]
  [8] #rsvg_convert#7
    @ ~/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:7 [inlined]
  [9] rsvg_convert
    @ ~/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:7 [inlined]
 [10] #converter#7
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:142 [inlined]
 [11] converter
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:142 [inlined]
 [12] show(io::IOStream, mime::MIME{Symbol("image/svg+xml")}, d::Math; kws::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:89
 [13] show(io::IOStream, mime::MIME{Symbol("image/svg+xml")}, d::Math)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:89
 [14] (::MathJaxRenderer.var"#2#3"{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, String, Math})(io::IOStream)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58
 [15] open(::MathJaxRenderer.var"#2#3"{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, String, Math}, ::String, ::Vararg{String, N} where N; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:330
 [16] open
    @ ./io.jl:328 [inlined]
 [17] #write#1
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58 [inlined]
 [18] write(fn::String, d::Math)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58
 [19] top-level scope
    @ REPL[5]:1

Thank you!

MichaelHatherly commented 2 years ago

Pretty weird.. we've got very similar installs. Let's rule out anything that's not an actual dependency causing this. Can you check in an isolated project environment like below:

$ julia --startup-file=no
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.5-pre.0 (2021-11-19)
 _/ |\__'_|_|_|\__'_|  |  release-1.6/eeb147268c (fork: 563 commits, 356 days)
|__/                   |

(@v1.6) pkg> activate --temp
  Activating new environment at `/tmp/jl_9GL9a2/Project.toml`

(jl_9GL9a2) pkg> add MathJaxRenderer
    Updating registry at `~/.julia/registries/General`
    Updating registry at `~/.julia/registries/PumasRegistry`
   Resolving package versions...
   Installed MathJaxRenderer ─ v0.1.0
    Updating `/tmp/jl_9GL9a2/Project.toml`
  [c4602970] + MathJaxRenderer v0.1.0
    Updating `/tmp/jl_9GL9a2/Manifest.toml`
  [692b3bcd] + JLLWrappers v1.3.0
  [0f8b85d8] + JSON3 v1.9.2
  [c4602970] + MathJaxRenderer v0.1.0
  [2bd173c7] + NodeJS v1.3.0
  [69de0a69] + Parsers v2.1.2
  [21216c6a] + Preferences v1.2.2
  [856f2bd8] + StructTypes v1.8.1
  [6e34b625] + Bzip2_jll v1.0.8+0
  [83423d85] + Cairo_jll v1.16.1+0
  [2e619515] + Expat_jll v2.2.10+0
  [a3f928ae] + Fontconfig_jll v2.13.93+0
  [d7e528f0] + FreeType2_jll v2.10.4+0
  [559328eb] + FriBidi_jll v1.0.10+0
  [78b55507] + Gettext_jll v0.21.0+0
  [7746bdde] + Glib_jll v2.68.3+0
  [3b182d85] + Graphite2_jll v1.3.14+0
  [2e76f6c2] + HarfBuzz_jll v2.8.1+0
  [aacddb02] + JpegTurbo_jll v2.1.0+0
  [dd4b983a] + LZO_jll v2.10.1+0
  [57eb2189] + Libcroco_jll v0.6.13+2
  [e9f186c6] + Libffi_jll v3.2.2+1
  [d4300ac3] + Libgcrypt_jll v1.8.7+0
  [7add5ba3] + Libgpg_error_jll v1.42.0+0
  [94ce4f54] + Libiconv_jll v1.16.1+1
  [4b2f31a3] + Libmount_jll v2.35.0+0
  [925c91fb] + Librsvg_jll v2.42.2+3
  [89763e89] + Libtiff_jll v4.3.0+0
  [38a345b3] + Libuuid_jll v2.36.0+0
  [2f80f16e] + PCRE_jll v8.44.0+0
  [36c8627f] + Pango_jll v1.47.0+0
  [30392449] + Pixman_jll v0.40.1+0
  [02c8fc9c] + XML2_jll v2.9.12+0
  [aed1982a] + XSLT_jll v1.1.34+0
  [4f6342f7] + Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] + Xorg_libXau_jll v1.0.9+4
  [a3789734] + Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] + Xorg_libXext_jll v1.3.4+4
  [ea2f1a96] + Xorg_libXrender_jll v0.9.10+4
  [14d82f49] + Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] + Xorg_libxcb_jll v1.13.0+3
  [c5fb5394] + Xorg_xtrans_jll v1.4.0+3
  [3161d3a3] + Zstd_jll v1.5.0+0
  [da03df04] + gdk_pixbuf_jll v2.42.6+0
  [b53b4c65] + libpng_jll v1.6.38+0
  [0dad84c5] + ArgTools
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [f43a241f] + Downloads
  [b77e0a4c] + InteractiveUtils
  [b27032c2] + LibCURL
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [a63ad114] + Mmap
  [ca575930] + NetworkOptions
  [44cfe95a] + Pkg
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [fa267f1f] + TOML
  [a4e569a6] + Tar
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [e66e0078] + CompilerSupportLibraries_jll
  [deac9b47] + LibCURL_jll
  [29816b5a] + LibSSH2_jll
  [c8ffd9c3] + MbedTLS_jll
  [14a3606d] + MozillaCACerts_jll
  [83775a58] + Zlib_jll
  [8e850ede] + nghttp2_jll
  [3f19e933] + p7zip_jll
Precompiling project...
  1 dependency successfully precompiled in 2 seconds (47 already precompiled)

julia> using MathJaxRenderer

julia> write("fraction.png", Math("\\frac{1}{1 + x}"))
598
MichaelHatherly commented 2 years ago

One of the only similar issues I've managed to find searching is https://gitlab.gnome.org/GNOME/librsvg/-/issues/260, which looks like the same underlying error.

MichaelHatherly commented 2 years ago

We're also a long way behind the most recent version of librsvg in Librsvg_jll, so that might be a contributing issue perhaps.

originalsouth commented 2 years ago

Unfortunately, still the same issue:

julia --startup-file=no
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.4 (2021-11-19)
 _/ |\__'_|_|_|\__'_|  |
|__/                   |

(@v1.6) pkg> activate --temp
  Activating new environment at `/tmp/jl_P0CRcG/Project.toml`

(jl_P0CRcG) pkg> add MathJaxRenderer
    Updating registry at `~/.julia/registries/General`
    Updating git-repo `https://github.com/JuliaRegistries/General.git`
   Resolving package versions...
    Updating `/tmp/jl_P0CRcG/Project.toml`
  [c4602970] + MathJaxRenderer v0.1.0
    Updating `/tmp/jl_P0CRcG/Manifest.toml`
  [692b3bcd] + JLLWrappers v1.3.0
  [0f8b85d8] + JSON3 v1.9.2
  [c4602970] + MathJaxRenderer v0.1.0
  [2bd173c7] + NodeJS v1.3.0
  [69de0a69] + Parsers v2.1.2
  [21216c6a] + Preferences v1.2.2
  [856f2bd8] + StructTypes v1.8.1
  [6e34b625] + Bzip2_jll v1.0.8+0
  [83423d85] + Cairo_jll v1.16.1+0
  [2e619515] + Expat_jll v2.2.10+0
  [a3f928ae] + Fontconfig_jll v2.13.93+0
  [d7e528f0] + FreeType2_jll v2.10.4+0
  [559328eb] + FriBidi_jll v1.0.10+0
  [78b55507] + Gettext_jll v0.21.0+0
  [7746bdde] + Glib_jll v2.68.3+0
  [3b182d85] + Graphite2_jll v1.3.14+0
  [2e76f6c2] + HarfBuzz_jll v2.8.1+0
  [aacddb02] + JpegTurbo_jll v2.1.0+0
  [dd4b983a] + LZO_jll v2.10.1+0
  [57eb2189] + Libcroco_jll v0.6.13+2
  [e9f186c6] + Libffi_jll v3.2.2+1
  [d4300ac3] + Libgcrypt_jll v1.8.7+0
  [7add5ba3] + Libgpg_error_jll v1.42.0+0
  [94ce4f54] + Libiconv_jll v1.16.1+1
  [4b2f31a3] + Libmount_jll v2.35.0+0
  [925c91fb] + Librsvg_jll v2.42.2+3
  [89763e89] + Libtiff_jll v4.3.0+0
  [38a345b3] + Libuuid_jll v2.36.0+0
  [2f80f16e] + PCRE_jll v8.44.0+0
  [36c8627f] + Pango_jll v1.47.0+0
  [30392449] + Pixman_jll v0.40.1+0
  [02c8fc9c] + XML2_jll v2.9.12+0
  [aed1982a] + XSLT_jll v1.1.34+0
  [4f6342f7] + Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] + Xorg_libXau_jll v1.0.9+4
  [a3789734] + Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] + Xorg_libXext_jll v1.3.4+4
  [ea2f1a96] + Xorg_libXrender_jll v0.9.10+4
  [14d82f49] + Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] + Xorg_libxcb_jll v1.13.0+3
  [c5fb5394] + Xorg_xtrans_jll v1.4.0+3
  [3161d3a3] + Zstd_jll v1.5.0+0
  [da03df04] + gdk_pixbuf_jll v2.42.6+0
  [b53b4c65] + libpng_jll v1.6.38+0
  [0dad84c5] + ArgTools
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [f43a241f] + Downloads
  [b77e0a4c] + InteractiveUtils
  [b27032c2] + LibCURL
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [a63ad114] + Mmap
  [ca575930] + NetworkOptions
  [44cfe95a] + Pkg
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [fa267f1f] + TOML
  [a4e569a6] + Tar
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [e66e0078] + CompilerSupportLibraries_jll
  [deac9b47] + LibCURL_jll
  [29816b5a] + LibSSH2_jll
  [c8ffd9c3] + MbedTLS_jll
  [14a3606d] + MozillaCACerts_jll
  [83775a58] + Zlib_jll
  [8e850ede] + nghttp2_jll
  [3f19e933] + p7zip_jll

julia> using MathJaxRenderer

julia> write("fraction.png", Math("\\frac{1}{1 + x}"))
ERROR: /home/<>/.julia/artifacts/b657399b96a122000ef230141db8acac5a702ade/bin/rsvg-convert: symbol lookup error: /home/<>/.julia/artifacts/b657399b96a122000ef230141db8acac5a702ade/bin/rsvg-convert: undefined symbol: rsvg_css_parse_color_

Stacktrace:
  [1] check
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:159 [inlined]
  [2] (::MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/png")}})(bin::String)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:156
  [3] (::JLLWrappers.var"#2#3"{MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/png")}}, String})()
    @ JLLWrappers ~/.julia/packages/JLLWrappers/bkwIo/src/runtime.jl:49
  [4] withenv(::JLLWrappers.var"#2#3"{MathJaxRenderer.var"#8#9"{Int64, Int64, Float64, Float64, Float64, Bool, Symbol, Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Math, MIME{Symbol("image/png")}}, String}, ::Pair{String, String}, ::Vararg{Pair{String, String}, N} where N)
    @ Base ./env.jl:161
  [5] withenv_executable_wrapper(f::Function, executable_path::String, PATH::String, LIBPATH::String, adjust_PATH::Bool, adjust_LIBPATH::Bool)
    @ JLLWrappers ~/.julia/packages/JLLWrappers/bkwIo/src/runtime.jl:48
  [6] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
  [7] invokelatest
    @ ./essentials.jl:706 [inlined]
  [8] #rsvg_convert#7
    @ ~/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:7 [inlined]
  [9] rsvg_convert
    @ ~/.julia/packages/JLLWrappers/bkwIo/src/products/executable_generators.jl:7 [inlined]
 [10] #converter#7
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:142 [inlined]
 [11] converter
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:142 [inlined]
 [12] show(io::IOStream, mime::MIME{Symbol("image/png")}, d::Math; kws::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:89
 [13] show(io::IOStream, mime::MIME{Symbol("image/png")}, d::Math)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:89
 [14] (::MathJaxRenderer.var"#2#3"{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, String, Math})(io::IOStream)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58
 [15] open(::MathJaxRenderer.var"#2#3"{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, String, Math}, ::String, ::Vararg{String, N} where N; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:330
 [16] open
    @ ./io.jl:328 [inlined]
 [17] #write#1
    @ ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58 [inlined]
 [18] write(fn::String, d::Math)
    @ MathJaxRenderer ~/.julia/packages/MathJaxRenderer/99Olh/src/MathJaxRenderer.jl:58
 [19] top-level scope
    @ REPL[4]:1
originalsouth commented 2 years ago

Is there an easy way to check if a more recent version would do the job, I have rsvg-convert version 2.52.4 on my system. If so, we should probably make a PR for a version bump of Librsvg_jll.jl in Yggdrasil?

MichaelHatherly commented 2 years ago

You should be able to overwrite the method def that returns the rsvg binary with

julia> MathJaxRenderer.Librsvg_jll.rsvg_convert(f::Function) = f("rsvg-convert")

Do a

julia> MathJaxRenderer.Librsvg_jll.rsvg_convert() do bin
           run(`$bin --version`)
       end

just to check it's picking up the different binary path though. And then try the write call again.

MichaelHatherly commented 2 years ago

If so, we should probably make a PR for a version bump of Librsvg_jll.jl in Yggdrasil?

Yes, if that fixes it then see whether updating the yggdrasil build is possible.

MichaelHatherly commented 2 years ago

Looks like the rsvg options have changed slightly between versions, to actually run write you'll need to do

julia> function MathJaxRenderer.converter(
           f::Math,
           m::MathJaxRenderer.SUPPORTED_MIMES;
           dpi_x = 90,
           dpi_y = 90,
           x_zoom = 1.0,
           y_zoom = 1.0,
           zoom = 1.0,
           keep_aspect_ratio = false,
           background_color = :white,
           unlimited = false,
           kws...,
       )
           MathJaxRenderer.Librsvg_jll.rsvg_convert() do bin
               ext = MathJaxRenderer.extension(m)
               cmd = [
                   bin,
                   "--format=$(MathJaxRenderer.extension(m))",
                   "--dpi-x=$dpi_x",
                   "--dpi-y=$dpi_y",
                   "--x-zoom=$x_zoom",
                   "--y-zoom=$y_zoom",
                   "--background-color=$background_color",
               ]
               keep_aspect_ratio && push!(cmd, "--keep-aspect-ratio")
               unlimited && push!(cmd, "--unlimited")
               take!(MathJaxRenderer.check(MathJaxRenderer.exec(Cmd(cmd), MathJaxRenderer.svg_converter(f; kws...))).io)
           end
       end

as well to remove the zoom option.

originalsouth commented 2 years ago

Great! That fixes the problem:

julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.4 (2021-11-19)
 _/ |\__'_|_|_|\__'_|  |
|__/                   |

> using MathJaxRenderer

> MathJaxRenderer.Librsvg_jll.rsvg_convert(f::Function) = f("rsvg-convert")

> function MathJaxRenderer.converter(
             f::Math,
             m::MathJaxRenderer.SUPPORTED_MIMES;
             dpi_x = 90,
             dpi_y = 90,
             x_zoom = 1.0,
             y_zoom = 1.0,
             zoom = 1.0,
             keep_aspect_ratio = false,
             background_color = :white,
             unlimited = false,
             kws...,
         )
             MathJaxRenderer.Librsvg_jll.rsvg_convert() do bin
                 ext = MathJaxRenderer.extension(m)
                 cmd = [
                     bin,
                     "--format=$(MathJaxRenderer.extension(m))",
                     "--dpi-x=$dpi_x",
                     "--dpi-y=$dpi_y",
                     "--x-zoom=$x_zoom",
                     "--y-zoom=$y_zoom",
                     "--background-color=$background_color",
                 ]
                 keep_aspect_ratio && push!(cmd, "--keep-aspect-ratio")
                 unlimited && push!(cmd, "--unlimited")
                 take!(MathJaxRenderer.check(MathJaxRenderer.exec(Cmd(cmd), MathJaxRenderer.svg_converter(f; kws...))).io)
             end
         end

> MathJaxRenderer.Librsvg_jll.rsvg_convert() do bin
   run(`$bin --version`)
  end
rsvg-convert version 2.52.4
Process(`rsvg-convert --version`, ProcessExited(0))

> write("fraction.png", Math("\\frac{1}{1 + x}"))
596
MichaelHatherly commented 2 years ago

Great, that's some progress. Next step is to see whether the build script is able to be updated, no idea how simple that one will be to get done.

originalsouth commented 2 years ago

I can make an issue on yggdrasil and link to this one later today? Thanks a lot for you help in the meanwhile!

MichaelHatherly commented 2 years ago

Yeah, please do.

originalsouth commented 2 years ago

We ran into the same issue: "librsvg needs at least rustc version 1.52"... not sure how to continue...

MichaelHatherly commented 2 years ago

We could consider adding an option to use the system rsvg-convert if it exists. I've not really not the spare time right now to do that, but you're welcome to take a took at doing that if you want. Otherwise, we'll just need to wait on the yggdrasil issue being solved.

originalsouth commented 2 years ago

I would not mind spending some time fixing this properly -- I think it is not such a big fix. What would be the desired behavior? If a system rsvg-convert is available use that one with the patched interface?

MichaelHatherly commented 2 years ago

I've not really thought through how it should work. Could be one of:

  1. Try with the provided rsvg-convert, if that fails then try using a system provided version if available.
  2. Have a keyword argument that sets the rsvg-convert binary to use.
  3. Have a global setting or environment variable that sets the binary to use.

For any of those we'd need to handle having the correct set of cmd line arguments passed to the binary such that it doesn't fail (like in the zoom case above).

originalsouth commented 2 years ago

Fixed by PR #10. Cheers!

MichaelHatherly commented 2 years ago

Thanks for sorting this out @originalsouth, I'll tag a 0.2 version shortly.