Import markup into LiveScript

7 visualizaciones (últimos 30 días)
Matt J
Matt J el 11 de Jun. de 2025
Editada: Matt J el 20 de Jun. de 2025
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:

Respuesta aceptada

Matt J
Matt J el 12 de Jun. de 2025
Editada: Matt J el 12 de Jun. de 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 comentarios
Cris LaPierre
Cris LaPierre el 12 de Jun. de 2025
Movida: Cris LaPierre el 12 de Jun. de 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 el 12 de Jun. de 2025
Movida: Cris LaPierre el 12 de Jun. de 2025
This still doesn't handle the |E| correctly, so your answer still seems best.

Iniciar sesión para comentar.

Más respuestas (2)

Cris LaPierre
Cris LaPierre el 12 de Jun. de 2025
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 comentarios
Matt J
Matt J el 12 de Jun. de 2025
Editada: Matt J el 12 de Jun. de 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.
Cris LaPierre
Cris LaPierre el 12 de Jun. de 2025
Fair point. I just don't know of another way.

Iniciar sesión para comentar.


Michael Abboud
Michael Abboud el 19 de Jun. de 2025
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 comentario
Matt J
Matt J el 19 de Jun. de 2025
Editada: Matt J el 20 de Jun. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Productos


Versión

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by