package org.freeplane.plugin.latex; import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLabel; import org.scilab.forge.jlatexmath.TeXConstants; import org.scilab.forge.jlatexmath.TeXFormula; import org.scilab.forge.jlatexmath.TeXIcon; public class TeXText { String rawText; public TeXText(String t) { rawText = t; } public TeXIcon createTeXIcon(int style, int size, int align, int maxWidth) { StringBuffer sb = new StringBuffer(); sb.append("\\text{"); sb.append(rawText); sb.append("}"); TeXFormula tf = new TeXFormula(sb.toString()); //tf.createTeXIcon(style, size, TeXConstants.UNIT_PIXEL, maxWidth, align, TeXConstants.UNIT_PIXEL, 40f); return tf.new TeXIconBuilder() .setStyle(style) .setSize(size) .setWidth(TeXConstants.UNIT_PIXEL, maxWidth, align) .setIsMaxWidth(true) .setInterLineSpacing(TeXConstants.UNIT_PIXEL, /*40f*/size * 1.2F) .build(); } public static void main(String[] argv) { StringBuffer latex = new StringBuffer(); latex.append("Sei $A$ ein Vektorraum und $f:A \\rightarrow \\mathcal{R}$ sei linear.\n"); latex.append("Wir wissen dass $u=\\pi$, und damit haben wir:"); latex.append("\\begin{align}"); latex.append("f(\\lambda u) = \\lambda f(u) = 0."); latex.append("\\end{align}"); //TeXText tf = new TeXText(latex.toString()); TeXText tf = new TeXText("my formula: $x_2=3$hello world hello world hello world hello world hello world hello world hello world hello world hello world "); JFrame jf = new JFrame(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel jl = new JLabel(); // jl.setIcon(tf.createTeXIcon(12, TeXConstants.ALIGN_CENTER)); jl.setIcon(tf.createTeXIcon(TeXConstants.STYLE_DISPLAY, 16, TeXConstants.ALIGN_LEFT, 400)); Container cp = jf.getContentPane(); cp.setLayout(new BorderLayout()); cp.add(jl, BorderLayout.CENTER); jf.pack(); jf.setVisible(true); //jf.setBounds(0, 0, 400, 300); } }