# Chunk engine for easy tex output in Rmarkdown and Quarto

    def_sym(z, w)
    q <- z + z^2 + w^3

We have added a chunk engine that outputs (an object) to tex format. That is, `tex()` is applied to the object and the output is put inside a display math environment.

For example, if you write the following:

    ```{rtex}
    library(caracas)
    def_sym(x, y)
    p <- x^3 + y^2
    der(p, c(x, y))
    ```

You will get this result:

    library(caracas)
    def_sym(x, y)
    p <- x^3 + y^2
    der(p, c(x, y))

\[\left[\begin{matrix}3 x^{2} & 2 y\end{matrix}\right]\]

# Multiple lines

    ```{rtex}
    def_sym(z, w)
    q <- z + z^2 + w^3
    # Comment
    der(q, c(z, w))
    p <- z^2 + w^8
    der2(p, c(z, w))
    ```

Gives

    def_sym(z, w)
    q <- z + z^2 + w^3
    # Comment
    der(q, c(z, w))

\[\left[\begin{matrix}2 z + 1 & 3 w^{2}\end{matrix}\right]\]

    p <- z^2 + w^8
    der2(p, c(z, w))

\[\left[\begin{matrix}2 & 0\\0 & 56 w^{6}\end{matrix}\right]\]

Note that to achieve this, tidying code has been disabled for `rtex` chunks.

# Check with no echo

    ```{rtex, echo = FALSE}
    der2(p, c(z, w))
    ```

\[\left[\begin{matrix}2 & 0\\0 & 56 w^{6}\end{matrix}\right]\]

# Custom `tex()`

You can also create your own custom `tex()` function:

    tex <- function(x) {
      caracas::tex(x, zero_as_dot = TRUE)
    }

    der2(p, c(z, w))

\[\left[\begin{matrix}2 & .\\. & 56 w^{6}\end{matrix}\right]\]

The reason this works is because `rtex` just calls `tex()` and if you define one in global namespace, then this is previous in the search path than the one provided by `caracas`.

# Notes

Note that all lines generating output will get `tex()`’ed.