Import markup into LiveScript

If I have some text with LaTeX and other markup like the following,
For a given energy |E|, the *primary* signal is:
$P_E(u,v,\theta) = \exp\left[ -\mu_b(E) L_b(u,v,\theta) - \mu_w(E) L_w(u,v,\theta) \right]$
Is there any way that I can paste it into a LiveScript so that the markup will be interpreted and displayed as intended, in this case as,
For a given energy E, the primary signal is:

 Risposta accettata

Matt J
Matt J il 12 Giu 2025
Modificato: Matt J il 12 Giu 2025
The best workaround I can find is to make a small mfile and embed the marked-up text in comments,
%%
% For a given energy |E|, the *primary* signal is:
%
% $P_E(u,v,\theta) = \exp\left[ -\mu_b(E) L_b(u,v,\theta) - \mu_w(E) L_w(u,v,\theta) \right]$
This will be properly parsed when saved as .mlx, and can then be freely copy-pasted into a larger LiveScript.

2 Commenti

Cris LaPierre
Cris LaPierre il 12 Giu 2025
Spostato: Cris LaPierre il 12 Giu 2025
Your answer got me thinking about the new Live Code File format introduced in R2025a. This is a plain text file that displays as a live script. This is accomplished using markdown.
Also not a perfect solution, but it works if I do this:
  • Open a text file
  • Paste your text
  • Prepend each line with %[text]
  • At the bottom of the file, add the following
%[appendix]{"version":"1.0"}
%---
%[metadata:view]
% data: {"layout":"onright"}
%---
  • Save your file with the extension *.m
  • Open in the MATLAB editor
For your example, the live code file would look like this in a text editor:
%[text] For a given energy |E|, the *primary* signal is:
%[text] $P\_E(u,v,\\theta) = \\exp\\left\[ -\\mu\_b(E) L\_b(u,v,\\theta) - \\mu\_w(E) L\_w(u,v,\\theta) \\right\]$
%[appendix]{"version":"1.0"}
%---
%[metadata:view]
% data: {"layout":"onright"}
%---
And when opened in the live editor, would look like this
I've attached the file I created.
Cris LaPierre
Cris LaPierre il 12 Giu 2025
Spostato: Cris LaPierre il 12 Giu 2025
This still doesn't handle the |E| correctly, so your answer still seems best.

Accedi per commentare.

Più risposte (2)

Cris LaPierre
Cris LaPierre il 12 Giu 2025

0 voti

My experience is that the LaTeX interpreter in MATLAB isn't called unless the closing/ending flag is physically typed. And not all LaTeX is supported in MATLAB. Still, given those caveats, there is a relatively simple way to get the markup you have shared to work.
  • Paste it into a text section in a live script (like what is here in Answers)
  • delete the closing '*' then retype it
  • Delete the closing '$' and retype it.
Here is the result:
For a given energy |E|, the primary signal is:

2 Commenti

Matt J
Matt J il 12 Giu 2025
Modificato: Matt J il 12 Giu 2025
Thanks Cris, but manually going through and reasserting all the markup is precisely what I'm trying to avoid. That will be very tedious in larger examples.
Fair point. I just don't know of another way.

Accedi per commentare.

Michael Abboud
Michael Abboud il 19 Giu 2025

0 voti

Hi Matt, I'm a developer on the MATLAB Editor team. While I don't have a perfect answer for you yet, I’d love to understand your workflow better to help guide future improvements to the Live Editor.
In particular, I'm curious to learn more about:
  • Where is the source content coming from?
  • Is the text already in MATLAB comments, or coming from another tool or format?
  • What would the ideal workflow or behavior look like for you?
From your snippet, the text looks a bit like MATLAB’s Publishing Markup, with |E| for monospace and inline LaTeX. As you already mentioned, saving from script to live script -- or using “Open as Live Script” by right-clicking the Editor tab -- might be your best bets right now.
We’re currently exploring some related areas, and your input could really help inform our designs.
Thanks,
Michael

1 Commento

Matt J
Matt J il 19 Giu 2025
Modificato: Matt J il 20 Giu 2025
In this case, the source content came from ChatGPT. I asked it to render something in a form suitable for LiveScript so that I could paste it in. So, no, the source content would not necessarily begin in comments.
Ideal workflow: Couldn't there be a refresh button in the Live Editor that makes it reparse the markup in the document? Or maybe in a selection within the document?
It is also a bit of nuisance sometimes that $$ and other delimiters have to be added to the text in sequential order for the markup to be parsed correctly. A re-parse button would obviate that, too.

Accedi per commentare.

Categorie

Scopri di più su Environment and Settings in Centro assistenza e File Exchange

Prodotti

Release

R2024b

Richiesto:

il 11 Giu 2025

Modificato:

il 20 Giu 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by