I am new to Weave.jl and I am having trouble with the latex rendering. I have xelatex installed and can get it to render for simple latex equation, but when I try to use it for expressions that start with `\begin{align}`

I get the following error (I shortened it):

```
julia> weave("MyNotebook.ipynb", doctype="md2pdf")
! Package amsmath Error: \begin{align} allowed only in paragraph mode.
See the amsmath package documentation for explanation.
```

Below is a simple example. Cells 1-3 render fine, but it errors on cells 4-5 (cell 5 is what cell 4 returns so they are the same)

I tried looking into ams math docs and didnâ€™t really see anything about paragraph mode. Anyone have any ideas?

2 Likes

Could you share the full weave file @co1emi11er if you are able to? I tend to work with Weave quite a lot so curious what is blowing up.

Not totally sure if this works for string macros, but can you try triple-quoting the latex string? Eg

```
L"""
Equation here
"""
```

For regular strings, triple quotes are typically used for block text

I tried it, but it still doesnâ€™t work like that eitherâ€¦

It was a good idea though. I didnâ€™t think to try that!

What you see there is what is in the file. I was just testing out my package to see if I could use weave with it.

Here is the text if you just want to copy paste:

```
using Handcalcs
using Latexify, LaTeXStrings
a = 3
b = 4;
latexify("x = 2")
@handcalcs c = sqrt(a^2 + b^2)
L"
\begin{align}
c &= \sqrt{a^{2} + b^{2}} = \sqrt{3^{2} + 4^{2}} = 5.0
\end{align}"
```

1 Like

I could reverse engineer your error message to Help with amsmath: align not possible?

so the error comes from that it is currently set as `$\begin{align}...\end{align}$`

From the MWE I am not sure what you want to align in one line of math, but I assume your application has more of that?

I was a bit lazy and did not install Weave but used your small code example. As far as I can see LaTeXStrings by default encapsulates the latex string in `$...$`

```
julia> s = L"
\begin{align}
c &= \sqrt{a^{2} + b^{2}} = \sqrt{3^{2} + 4^{2}} = 5.0
\end{align}"
L"$
\begin{align}
c &= \sqrt{a^{2} + b^{2}} = \sqrt{3^{2} + 4^{2}} = 5.0
\end{align}$"
```

With latexify you can choose what to add, but then you have to define it as a â€śnormalâ€ť string before and do `latexify(my_string; env=:eq)`

. then the align is in an equation, which is what resolves the problem for example.

1 Like

Hey @co1emi11er , I tried my hand at making a Weave document that uses handcalcs and doesnâ€™t blow up. As @kellertuer said, thereâ€™s a bit of a problem with what Handcalcs is doing with generating a LaTeXString to embed into a weave document. Here is a pretty â€śdumb fixâ€ť to make a weave document (julia markdown document) render as expected:

```
```julia
using Handcalcs
using Latexify, LaTeXStrings
```
```julia
a = 3
b = 4;
```
```julia
latexify("x = 2")
```
```julia
my_tex = @handcalcs c = sqrt(a^2 + b^2)
my_tex = replace(my_tex.s, "\$" => "")
my_tex = convert(LaTeXString, my_tex)
```
`j my_tex`
```

And here is how it renders as a PDF:

Iâ€™d have to tinker a bit more with notebook rendering but I hope that helps somewhat as a starting point and maybe for thinking around how to address this problem more elegantlyâ€¦

1 Like

Thanks @kellertuer and @TheCedarPrince! Now that I know where the issue lies, Iâ€™m sure I can figure out a way to get it rendering!

1 Like

Okay I got it working now. It was a pretty simple fix!

# Now one more questionâ€¦

It is now rendering in the middle of the page. I would like these cells to be left aligned. Is there a way to do that?

Thanks for the help! I donâ€™t know if I would have figured that out without you both.

2 Likes

Interesting! May I have a copy of the Weave file and the version of Handcalcs.jl you are using?

Iâ€™ll try tinkering with something @co1emi11er !

1 Like

Yes!

I have updated repo of Handcalcs.jl.

Here is the weave example: weave example

Well, align is an offset equation, so that ia usually entered. there is an option `flaglign`

for ams math, but I am not sure how to tell that your MathJax/KaTeX (web-based) LaTeX engine.

But according to environments - How can I write multi line equations with alignment in inline math mode? - TeX - LaTeX Stack Exchange an answer could be to use `aligned`

instead of ` align`

? Then even the `$`

s work again

1 Like