Class TeXFormula

java.lang.Object
org.scilab.forge.jlatexmath.TeXFormula
Direct Known Subclasses:
ArrayOfAtoms

public class TeXFormula extends Object
Represents a logical mathematical formula that will be displayed (by creating a TeXIcon from it and painting it) using algorithms that are based on the TeX algorithms.

These formula's can be built using the built-in primitive TeX parser (methods with String arguments) or using other TeXFormula objects. Most methods have (an) equivalent(s) where one or more TeXFormula arguments are replaced with String arguments. These are just shorter notations, because all they do is parse the string(s) to TeXFormula's and call an equivalent method with (a) TeXFormula argument(s). Most methods also come in 2 variants. One kind will use this TeXFormula to build another mathematical construction and then change this object to represent the newly build construction. The other kind will only use other TeXFormula's (or parse strings), build a mathematical construction with them and insert this newly build construction at the end of this TeXFormula. Because all the provided methods return a pointer to this (modified) TeXFormula (except for the createTeXIcon method that returns a TeXIcon pointer), method chaining is also possible.

Important: All the provided methods modify this TeXFormula object, but all the TeXFormula arguments of these methods will remain unchanged and independent of this TeXFormula object!

  • Field Details

  • Constructor Details

  • Method Details

    • addSymbolMappings

      public static void addSymbolMappings(String file) throws ResourceParseException
      Throws:
      ResourceParseException
    • addSymbolMappings

      public static void addSymbolMappings(InputStream in, String name) throws ResourceParseException
      Throws:
      ResourceParseException
    • isRegisteredBlock

      public static boolean isRegisteredBlock(Character.UnicodeBlock block)
    • getExternalFont

      public static org.scilab.forge.jlatexmath.TeXFormula.FontInfos getExternalFont(Character.UnicodeBlock block)
    • registerExternalFont

      public static void registerExternalFont(Character.UnicodeBlock block, String sansserif, String serif)
    • registerExternalFont

      public static void registerExternalFont(Character.UnicodeBlock block, String fontName)
    • setDPITarget

      public static void setDPITarget(float dpi)
      Set the DPI of target
      Parameters:
      dpi - the target DPI
    • setDefaultDPI

      public static void setDefaultDPI()
      Set the default target DPI to the screen dpi (only if we're in non-headless mode)
    • getAsText

      public static TeXFormula getAsText(String text, int alignment) throws ParseException
      Throws:
      ParseException
    • getPartialTeXFormula

      public static TeXFormula getPartialTeXFormula(String formula)
      Parameters:
      a - formula
      Returns:
      a partial TeXFormula containing the valid part of formula
    • registerFonts

      public static void registerFonts(boolean b)
      Parameters:
      b - true if the fonts should be registered (Java 1.6 only) to be used with FOP.
    • setLaTeX

      public void setLaTeX(String ltx) throws ParseException
      Change the text of the TeXFormula and regenerate the root
      Parameters:
      ltx - the latex formula
      Throws:
      ParseException
    • add

      public TeXFormula add(Atom el)
      Inserts an atom at the end of the current formula
    • add

      public TeXFormula add(String s) throws ParseException
      Parses the given string and inserts the resulting formula at the end of the current TeXFormula.
      Parameters:
      s - the string to be parsed and inserted
      Returns:
      the modified TeXFormula
      Throws:
      ParseException - if the string could not be parsed correctly
    • append

      public TeXFormula append(String s) throws ParseException
      Throws:
      ParseException
    • append

      public TeXFormula append(boolean isPartial, String s) throws ParseException
      Throws:
      ParseException
    • add

      public TeXFormula add(TeXFormula f)
      Inserts the given TeXFormula at the end of the current TeXFormula.
      Parameters:
      f - the TeXFormula to be inserted
      Returns:
      the modified TeXFormula
    • setLookAtLastAtom

      public void setLookAtLastAtom(boolean b)
    • getLookAtLastAtom

      public boolean getLookAtLastAtom()
    • centerOnAxis

      public TeXFormula centerOnAxis()
      Centers the current TeXformula vertically on the axis (defined by the parameter "axisheight" in the resource "DefaultTeXFont.xml".
      Returns:
      the modified TeXFormula
    • addPredefinedTeXFormula

      public static void addPredefinedTeXFormula(InputStream xmlFile) throws ResourceParseException
      Throws:
      ResourceParseException
    • addPredefinedCommands

      public static void addPredefinedCommands(InputStream xmlFile) throws ResourceParseException
      Throws:
      ResourceParseException
    • addStrut

      public TeXFormula addStrut(int unit, float width, float height, float depth) throws InvalidUnitException
      Inserts a strut box (whitespace) with the given width, height and depth (in the given unit) at the end of the current TeXFormula.
      Parameters:
      unit - a unit constant (from TeXConstants)
      width - the width of the strut box
      height - the height of the strut box
      depth - the depth of the strut box
      Returns:
      the modified TeXFormula
      Throws:
      InvalidUnitException - if the given integer value does not represent a valid unit
    • addStrut

      public TeXFormula addStrut(int type) throws InvalidUnitException
      Inserts a strut box (whitespace) with the given width, height and depth (in the given unit) at the end of the current TeXFormula.
      Parameters:
      type - thinmuskip, medmuskip or thickmuskip (from TeXConstants)
      Returns:
      the modified TeXFormula
      Throws:
      InvalidUnitException - if the given integer value does not represent a valid unit
    • addStrut

      public TeXFormula addStrut(int widthUnit, float width, int heightUnit, float height, int depthUnit, float depth) throws InvalidUnitException
      Inserts a strut box (whitespace) with the given width (in widthUnits), height (in heightUnits) and depth (in depthUnits) at the end of the current TeXFormula.
      Parameters:
      widthUnit - a unit constant used for the width (from TeXConstants)
      width - the width of the strut box
      heightUnit - a unit constant used for the height (from TeXConstants)
      height - the height of the strut box
      depthUnit - a unit constant used for the depth (from TeXConstants)
      depth - the depth of the strut box
      Returns:
      the modified TeXFormula
      Throws:
      InvalidUnitException - if the given integer value does not represent a valid unit
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size)
      Creates a TeXIcon from this TeXFormula using the default TeXFont in the given point size and starting from the given TeX style. If the given integer value does not represent a valid TeX style, the default style TeXConstants.STYLE_DISPLAY will be used.
      Parameters:
      style - a TeX style constant (from TeXConstants) to start from
      size - the default TeXFont's point size
      Returns:
      the created TeXIcon
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size, int type)
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size, int type, Color fgcolor)
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size, boolean trueValues)
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size, int widthUnit, float textwidth, int align)
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size, int type, int widthUnit, float textwidth, int align)
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size, int widthUnit, float textwidth, int align, int interlineUnit, float interline)
    • createTeXIcon

      public TeXIcon createTeXIcon(int style, float size, int type, int widthUnit, float textwidth, int align, int interlineUnit, float interline)
    • createImage

      public void createImage(String format, int style, float size, String out, Color bg, Color fg, boolean transparency)
    • createPNG

      public void createPNG(int style, float size, String out, Color bg, Color fg)
    • createGIF

      public void createGIF(int style, float size, String out, Color bg, Color fg)
    • createJPEG

      public void createJPEG(int style, float size, String out, Color bg, Color fg)
    • createBufferedImage

      public static Image createBufferedImage(String formula, int style, float size, Color fg, Color bg) throws ParseException
      Parameters:
      formula - the formula
      style - the style
      size - the size
      transparency - , if true the background is transparent
      Returns:
      the generated image
      Throws:
      ParseException
    • createBufferedImage

      public Image createBufferedImage(int style, float size, Color fg, Color bg) throws ParseException
      Parameters:
      style - the style
      size - the size
      formula - the formula
      transparency - , if true the background is transparent
      Returns:
      the generated image
      Throws:
      ParseException
    • setDEBUG

      public void setDEBUG(boolean b)
    • setBackground

      public TeXFormula setBackground(Color c)
      Changes the background color of the current TeXFormula into the given color. By default, a TeXFormula has no background color, it's transparent. The backgrounds of subformula's will be painted on top of the background of the whole formula! Any changes that will be made to this TeXFormula after this background color was set, will have the default background color (unless it will also be changed into another color afterwards)!
      Parameters:
      c - the desired background color for the current TeXFormula
      Returns:
      the modified TeXFormula
    • setColor

      public TeXFormula setColor(Color c)
      Changes the (foreground) color of the current TeXFormula into the given color. By default, the foreground color of a TeXFormula is the foreground color of the component on which the TeXIcon (created from this TeXFormula) will be painted. The color of subformula's overrides the color of the whole formula. Any changes that will be made to this TeXFormula after this color was set, will be painted in the default color (unless the color will also be changed afterwards into another color)!
      Parameters:
      c - the desired foreground color for the current TeXFormula
      Returns:
      the modified TeXFormula
    • setFixedTypes

      public TeXFormula setFixedTypes(int leftType, int rightType) throws InvalidAtomTypeException
      Sets a fixed left and right type of the current TeXFormula. This has an influence on the glue that will be inserted before and after this TeXFormula.
      Parameters:
      leftType - atom type constant (from TeXConstants)
      rightType - atom type constant (from TeXConstants)
      Returns:
      the modified TeXFormula
      Throws:
      InvalidAtomTypeException - if the given integer value does not represent a valid atom type
    • get

      public static TeXFormula get(String name) throws FormulaNotFoundException
      Get a predefined TeXFormula.
      Parameters:
      name - the name of the predefined TeXFormula
      Returns:
      a copy of the predefined TeXFormula
      Throws:
      FormulaNotFoundException - if no predefined TeXFormula is found with the given name