Publish symbolic equation to Latex with latex(symbolic equation)

10 views (last 30 days)

How to publish a symbolic equation such as y(x) (see code below) to latex using the Matlab publisher? Or specifically is it possible to generate a dynamic commend or define that a string is interpreted as a latex expression by the publisher?

 %% Demonstration
  %%
  % *Text*
  syms x
  y(x)=sin(x)/pi;
  latex(y)
latex(y)
%%
% $latex(y)$ 

latex(y) prints the latex code for the equation y to the command window. I want to tell the matlab publisher that it shall interpret this as a Latex formated expression (which it is). Ideal would be a solution like latexpublisher(latex(y)).

Please note that i found several workarounds which are all unsuitable imo. I am using Matlab 2016b

Answers (1)

Sonam Gupta
Sonam Gupta on 19 Apr 2017
I think that the functionality that you are looking for is same as what the text() command provides. It gives you an option to specify the Interpreter as Latex. Below code shows how you can use it:
syms x
y(x)=sin(x)/pi;
str = latex(y);
axis off
text(0.5, 0.5, ['$$' str '$$'], 'Interpreter','latex', 'FontSize',28, ...
'HorizontalAlignment','center', 'VerticalAlignment','middle')
For more information about the text command, you can refer to following documentation link:
Hope this helps!
  2 Comments
TS
TS on 19 Apr 2017

Thanks for the reply, yet text() is not what i am looking for. Using text inserts a latex interpreted text inside a plot. Converting that .m file to latex using the publisher produces (rightfully so, becouse that is, what using text() should do):

    \begin{verbatim}
 syms x
 y(x)=sin(x)/pi;
 str = latex(y);
 axis off
 text(0.5, 0.5, ['$$' str '$$'], 'Interpreter','latex', 'FontSize',28, ...
    'HorizontalAlignment','center', 'VerticalAlignment','middle')
\end{verbatim}
\includegraphics [width=4in]{symbolic_test_01.eps}

Yet the desired output should look like something close to:

   \begin{verbatim}
   syms x
   y(x)=sin(x)/pi;
   str = latex(y);
  \end{verbatim}
  \begin{par}
  $$\frac{\sin\!\left(x\right)}{\pi}$$
  \end{par} \vspace{1em}

Generated by using a function(latex(y)) command to explicit tell the publisher that the EQUATION in function(EQUATION) should be published as an equation (the same way putting the equation into the comments usin

 %%
 % 
 % $$\frac{\sin\!\left(x\right)}{\pi}$$
 %

The problem with the comment solution is, that its static

Sonam Gupta
Sonam Gupta on 21 Apr 2017
As far as I know the ability to replace the variable name with its value from the workspace for latex equations is not there.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!