I have some large JuMP models which I’d like to convert to latex, however, this quickly becomes impractical.

Given a model

```
using JuMP
model = Model()
@variable(model, x[1:10])
@constraint(model, x_min, x .≤ 10)
@constraint(model, x_max, x .≥ 0)
@objective(model, Min, sum(x))
```

Calling `latex_formulation(model)`

gives:

\begin{aligned}
\min\quad & x_{1} + x_{2} + x_{3} + x_{4} + x_{5} + x_{6} + x_{7} + x_{8} + x_{9} + x_{10}\\
\text{Subject to} \quad & x_{1} \geq 0.0\\
& x_{2} \geq 0.0\\
& x_{3} \geq 0.0\\
& \vdots \\
& x_{1} \leq 10.0\\
& x_{2} \leq 10.0\\
& x_{3} \leq 10.0\\
& \vdots
\end{aligned}

Which for large models becomes impractical to read, is it possible to get something like this?

\begin{aligned}
\min\quad & \sum_i^{|x_i|} x\\
\text{Subject to} \quad & x_i \geq 0.0, \quad \forall i=1,\dots, |x|\\
& x_i \leq 10.0, \quad \forall i=1,\dots, |x|\\
\end{aligned}

Which closely resembles the code used to make the model.

Can’t help you on this one, but a correct formulation would be:
\begin{aligned}
\min_x \quad & \sum_{i=1}^n x_i \\
\text{subject to} \quad & x_i \geq 0.0, \quad \forall i=1,\dots, n \\
& x_i \leq 10.0, \quad \forall i=1,\dots, n \\
\end{aligned}
or even
\begin{aligned}
\min_x \quad & \sum_{i=1}^n x_i \\
\text{subject to} \quad & 0.0 \le x_i \le 10.0, \quad \forall i=1,\dots, n
\end{aligned}

2 Likes

odow
September 6, 2022, 6:30pm
#3
No, its not possible. Its surprisingly hard to implement in the general case

1 Like

I had a feeling this would be the answer. I’ll think about implementing a use case specific one, cheers.