Mercurial > hg > octave-nkf
diff scripts/java/org/octave/TeXtranslator.java @ 15753:6e39fe7992d9
style fixes and copyright update for java files
* ClassHelper.java, DlgListener.java, JDialogBox.java,
Matrix.java, OctClassLoader.java, Octave.java, OctaveReference.java,
TeXcode.java, TeXtranslator.java:
Use Octave copyright text. Style fixes.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 08 Dec 2012 00:24:45 -0500 |
parents | acf0addfc610 |
children | d63878346099 |
line wrap: on
line diff
--- a/scripts/java/org/octave/TeXtranslator.java +++ b/scripts/java/org/octave/TeXtranslator.java @@ -1,264 +1,262 @@ -/** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; If not, see <http://www.gnu.org/licenses/>. - * - * - * A primitive TeX character translator. - * Provides methods to translate a subset of TeX symbol strings - * into their aequivalent Unicode representation. - * - * Note that not all Unicode character sets contain all these characters. - * Suitable Windows fonts are e.g.:<br> - * - Lucida Sans Unicode<br> - * - Arial Unicode MS<br> - * - MS Mincho<br> - * - * <p>Copyright (c) 2010 Martin Hepperle</p> - * - * @author Martin Hepperle - * @version 1.0 - */ +/* + +Copyright (C) 2010 Martin Hepperle + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at +your option) any later version. + +Octave is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +<http://www.gnu.org/licenses/>. + +*/ + +// A primitive TeX character translator. Provides methods to translate +// a subset of TeX symbol strings into their aequivalent Unicode +// representation. +// +// Note that not all Unicode character sets contain all these characters. +// Suitable Windows fonts are e.g.: +// - Lucida Sans Unicode +// - Arial Unicode MS +// - MS Mincho + package org.octave; public class TeXtranslator { - private TeXcode m_texTable[] = - { + private TeXcode m_texTable[] = + { // lower case - new TeXcode ( "alpha", '\u03B1' ), - new TeXcode ( "beta", '\u03B2' ), - new TeXcode ( "gamma", '\u03B3' ), - new TeXcode ( "delta", '\u03B4' ), - new TeXcode ( "epsilon", '\u03B5' ), - new TeXcode ( "zeta", '\u03B6' ), - new TeXcode ( "eta", '\u03B7' ), - new TeXcode ( "theta", '\u03B8' ), - new TeXcode ( "vartheta", '\u03D1' ), - new TeXcode ( "iota", '\u03B9' ), - new TeXcode ( "kappa", '\u03BA' ), - new TeXcode ( "lambda", '\u03BB' ), - new TeXcode ( "mu", '\u03BC' ), - new TeXcode ( "nu", '\u03BD' ), - new TeXcode ( "xi", '\u03BE' ), - new TeXcode ( "pi", '\u03C0' ), - new TeXcode ( "rho", '\u03C1' ), - new TeXcode ( "sigma", '\u03C3' ), - new TeXcode ( "varsigma", '\u03C2' ), - new TeXcode ( "tau", '\u03C4' ), - new TeXcode ( "phi", '\u03C6' ), - new TeXcode ( "chi", '\u03C7' ), - new TeXcode ( "psi", '\u03C8' ), - new TeXcode ( "omega", '\u03C9' ), - new TeXcode ( "upsilon", '\u03C5' ), + new TeXcode ("alpha", '\u03B1'), + new TeXcode ("beta", '\u03B2'), + new TeXcode ("gamma", '\u03B3'), + new TeXcode ("delta", '\u03B4'), + new TeXcode ("epsilon", '\u03B5'), + new TeXcode ("zeta", '\u03B6'), + new TeXcode ("eta", '\u03B7'), + new TeXcode ("theta", '\u03B8'), + new TeXcode ("vartheta", '\u03D1'), + new TeXcode ("iota", '\u03B9'), + new TeXcode ("kappa", '\u03BA'), + new TeXcode ("lambda", '\u03BB'), + new TeXcode ("mu", '\u03BC'), + new TeXcode ("nu", '\u03BD'), + new TeXcode ("xi", '\u03BE'), + new TeXcode ("pi", '\u03C0'), + new TeXcode ("rho", '\u03C1'), + new TeXcode ("sigma", '\u03C3'), + new TeXcode ("varsigma", '\u03C2'), + new TeXcode ("tau", '\u03C4'), + new TeXcode ("phi", '\u03C6'), + new TeXcode ("chi", '\u03C7'), + new TeXcode ("psi", '\u03C8'), + new TeXcode ("omega", '\u03C9'), + new TeXcode ("upsilon", '\u03C5'), // upper case - new TeXcode ( "Gamma", '\u0393' ), - new TeXcode ( "Delta", '\u0394' ), - new TeXcode ( "Theta", '\u0398' ), - new TeXcode ( "Lambda", '\u039B' ), - new TeXcode ( "Pi", '\u03A0' ), - new TeXcode ( "Xi", '\u039E' ), - new TeXcode ( "Sigma", '\u03A3' ), - new TeXcode ( "Upsilon", '\u03A5' ), - new TeXcode ( "Phi", '\u03A6' ), - new TeXcode ( "Psi", '\u03A8' ), - new TeXcode ( "Omega", '\u03A9' ), + new TeXcode ("Gamma", '\u0393'), + new TeXcode ("Delta", '\u0394'), + new TeXcode ("Theta", '\u0398'), + new TeXcode ("Lambda", '\u039B'), + new TeXcode ("Pi", '\u03A0'), + new TeXcode ("Xi", '\u039E'), + new TeXcode ("Sigma", '\u03A3'), + new TeXcode ("Upsilon", '\u03A5'), + new TeXcode ("Phi", '\u03A6'), + new TeXcode ("Psi", '\u03A8'), + new TeXcode ("Omega", '\u03A9'), // complex - new TeXcode ( "Im", '\u2111' ), - new TeXcode ( "Re", '\u211c' ), + new TeXcode ("Im", '\u2111'), + new TeXcode ("Re", '\u211c'), // special - new TeXcode ( "leq", '\u2264' ), - new TeXcode ( "geq", '\u2265' ), - new TeXcode ( "neq", '\u2260' ), - new TeXcode ( "pm", '\u00B1' ), - new TeXcode ( "infty", '\u221E' ), - new TeXcode ( "partial", '\u2202' ), - new TeXcode ( "approx", '\u2248' ), - new TeXcode ( "circ", '\u2218' ), - new TeXcode ( "bullet", '\u2022' ), - new TeXcode ( "times", '\u00D7' ), - new TeXcode ( "sim", '\u007E' ), - new TeXcode ( "nabla", '\u2207' ), - new TeXcode ( "ldots", '\u2026' ), - new TeXcode ( "exists", '\u2203' ), - new TeXcode ( "neg", '\u00AC' ), - new TeXcode ( "aleph", '\u2135' ), - new TeXcode ( "forall", '\u2200' ), - new TeXcode ( "cong", '\u2245' ), - new TeXcode ( "wp", '\u2118' ), - new TeXcode ( "propto", '\u221D' ), - new TeXcode ( "otimes", '\u2297' ), - new TeXcode ( "oplus", '\u2295' ), - new TeXcode ( "oslash", '\u2298' ), - new TeXcode ( "cap", '\u2229' ), - new TeXcode ( "cup", '\u222A' ), - new TeXcode ( "ni", '\u220B' ), - new TeXcode ( "in", '\u2208' ), - new TeXcode ( "div", '\u00F7' ), - new TeXcode ( "equiv", '\u2261' ), - new TeXcode ( "int", '\u222B' ), - new TeXcode ( "perp", '\u22A5' ), - new TeXcode ( "wedge", '\u2227' ), - new TeXcode ( "vee", '\u2228' ), + new TeXcode ("leq", '\u2264'), + new TeXcode ("geq", '\u2265'), + new TeXcode ("neq", '\u2260'), + new TeXcode ("pm", '\u00B1'), + new TeXcode ("infty", '\u221E'), + new TeXcode ("partial", '\u2202'), + new TeXcode ("approx", '\u2248'), + new TeXcode ("circ", '\u2218'), + new TeXcode ("bullet", '\u2022'), + new TeXcode ("times", '\u00D7'), + new TeXcode ("sim", '\u007E'), + new TeXcode ("nabla", '\u2207'), + new TeXcode ("ldots", '\u2026'), + new TeXcode ("exists", '\u2203'), + new TeXcode ("neg", '\u00AC'), + new TeXcode ("aleph", '\u2135'), + new TeXcode ("forall", '\u2200'), + new TeXcode ("cong", '\u2245'), + new TeXcode ("wp", '\u2118'), + new TeXcode ("propto", '\u221D'), + new TeXcode ("otimes", '\u2297'), + new TeXcode ("oplus", '\u2295'), + new TeXcode ("oslash", '\u2298'), + new TeXcode ("cap", '\u2229'), + new TeXcode ("cup", '\u222A'), + new TeXcode ("ni", '\u220B'), + new TeXcode ("in", '\u2208'), + new TeXcode ("div", '\u00F7'), + new TeXcode ("equiv", '\u2261'), + new TeXcode ("int", '\u222B'), + new TeXcode ("perp", '\u22A5'), + new TeXcode ("wedge", '\u2227'), + new TeXcode ("vee", '\u2228'), // sets - new TeXcode ( "supseteq", '\u2287' ), - new TeXcode ( "supset", '\u2283' ), - new TeXcode ( "subseteq", '\u2286' ), - new TeXcode ( "subset", '\u2282' ), + new TeXcode ("supseteq", '\u2287'), + new TeXcode ("supset", '\u2283'), + new TeXcode ("subseteq", '\u2286'), + new TeXcode ("subset", '\u2282'), // cards - new TeXcode ( "clubsuit", '\u2663' ), - new TeXcode ( "spadesuit", '\u2660' ), - new TeXcode ( "heartsuit", '\u2665' ), - new TeXcode ( "diamondsuit", '\u2666' ), - new TeXcode ( "copyright", '\u00A9' ), + new TeXcode ("clubsuit", '\u2663'), + new TeXcode ("spadesuit", '\u2660'), + new TeXcode ("heartsuit", '\u2665'), + new TeXcode ("diamondsuit", '\u2666'), + new TeXcode ("copyright", '\u00A9'), // arrows - new TeXcode ( "leftarrow", '\u2190' ), - new TeXcode ( "uparrow", '\u2191' ), - new TeXcode ( "rightarrow", '\u2192' ), - new TeXcode ( "downarrow", '\u2193' ), - new TeXcode ( "leftrightarrow", '\u2194' ), - new TeXcode ( "updownarrow", '\u2195' ), - }; + new TeXcode ("leftarrow", '\u2190'), + new TeXcode ("uparrow", '\u2191'), + new TeXcode ("rightarrow", '\u2192'), + new TeXcode ("downarrow", '\u2193'), + new TeXcode ("leftrightarrow", '\u2194'), + new TeXcode ("updownarrow", '\u2195'), + }; public TeXtranslator () { - /* DEBUG: output table to file - try - { - java.io.PrintWriter pwTeX = new java.io.PrintWriter ( "z:/tex.txt", - "UTF-8" ); - java.io.PrintWriter pwHTML = new java.io.PrintWriter ( "z:/html.txt", - "UTF-8" ); - java.io.PrintWriter pwOctave = new java.io.PrintWriter ( "z:/octave.txt", - "UTF-8" ); - pwOctave.print ( "msgbox ( [" ); + /* DEBUG: output table to file + try + { + java.io.PrintWriter pwTeX = new java.io.PrintWriter ("z:/tex.txt", "UTF-8"); + java.io.PrintWriter pwHTML = new java.io.PrintWriter ("z:/html.txt", "UTF-8"); + java.io.PrintWriter pwOctave = new java.io.PrintWriter ("z:/octave.txt", "UTF-8"); + pwOctave.print ("msgbox ( ["); int i = 0; - for ( int k = 0; k < m_texTable.length; k++ ) - { - if ( i++ == 0 ) - { - pwTeX.print ( "@item " ); - pwHTML.print ( "@item " ); - pwOctave.print ( " '" ); - } - else - { - pwTeX.print ( "@tab " ); - pwHTML.print ( "@tab " ); - pwOctave.print ( " " ); - } - pwTeX.println ( "\\" + m_texTable[k].tex ); - pwTeX.println ( "@tab '@math{\\" + m_texTable[k].tex + "}'" ); - pwHTML.println ( "\\" + m_texTable[k].tex ); - pwHTML.println ( "@tab '" + m_texTable[k].ucode + "'" ); - pwOctave.print ( "\\\\" + m_texTable[k].tex+" " ); - pwOctave.print ( " = ''\\" + m_texTable[k].tex + " ''" ); - if ( i == 3 ) - { - pwTeX.println ( "@c ----------" ); - pwHTML.println ( "@c ----------" ); - pwOctave.println ( "', 10, ..." ); - i=0; - } - else - { - pwTeX.println ( "@tab" ); - pwHTML.println ( "@tab" ); - pwOctave.print ( " " ); - } - } - pwOctave.print ( "']);" ); + for (int k = 0; k < m_texTable.length; k++) + { + if (i++ == 0) + { + pwTeX.print ("@item "); + pwHTML.print ("@item "); + pwOctave.print (" '"); + } + else + { + pwTeX.print ("@tab "); + pwHTML.print ("@tab "); + pwOctave.print (" "); + } + pwTeX.println ("\\" + m_texTable[k].tex); + pwTeX.println ("@tab '@math{\\" + m_texTable[k].tex + "}'"); + pwHTML.println ("\\" + m_texTable[k].tex); + pwHTML.println ("@tab '" + m_texTable[k].ucode + "'"); + pwOctave.print ("\\\\" + m_texTable[k].tex+" "); + pwOctave.print (" = ''\\" + m_texTable[k].tex + " ''"); + if (i == 3) + { + pwTeX.println ("@c ----------"); + pwHTML.println ("@c ----------"); + pwOctave.println ("', 10, ..."); + i=0; + } + else + { + pwTeX.println ("@tab"); + pwHTML.println ("@tab"); + pwOctave.print (" "); + } + } + pwOctave.print ("']);"); pwTeX.close (); pwHTML.close (); pwOctave.close (); - } - catch ( Exception e ) - { + } + catch (Exception e) + { ; - } + } /* */ } - /* - NOT YET TRANSLATED - o - rfloor - lceil - lfloor - cdot - prime - 0 - rceil - surd - mid - varpi - langle - rangle - */ + /* + NOT YET TRANSLATED + o + rfloor + lceil + lfloor + cdot + prime + 0 + rceil + surd + mid + varpi + langle + rangle + */ - public String replace ( String s ) - { - StringBuffer sb = new StringBuffer ( s ); - // append trailing blank - sb.append ( ' ' ); + public String replace (String s) + { + StringBuffer sb = new StringBuffer (s); + // append trailing blank + sb.append (' '); - int i = 0; - do + int i = 0; + do { - /* 26 08 2010 MH szatt search at index i */ - i = sb.indexOf ( "\\", i ); - if ( i > -1 ) - { - int j = sb.indexOf ( " ", i ); - if ( j > i ) - { - String token = sb.substring ( i + 1, j ); + // 26 08 2010 MH szatt search at index i + i = sb.indexOf ("\\", i); + if (i > -1) + { + int j = sb.indexOf (" ", i); + if (j > i) + { + String token = sb.substring (i + 1, j); - for ( int k = 0; k < m_texTable.length; k++ ) - { - if ( m_texTable[k].tex.equals ( token ) ) + for (int k = 0; k < m_texTable.length; k++) { - sb.replace ( i, j + 1, - Character.toString ( m_texTable[k].ucode ) ); - break; + if (m_texTable[k].tex.equals (token)) + { + sb.replace (i, j + 1, + Character.toString (m_texTable[k].ucode)); + break; + } } - } - if ( sb.charAt ( i ) == '\\' ) - { - // backslash sztill there: not found - if ( sb.charAt ( i + 1 ) == 'n' ) - { - // newline - sb.replace ( i, i + 2, "\n" ); - } - else if ( sb.charAt ( i + 1 ) == '\\' ) + if (sb.charAt (i) == '\\') { - // backslash - sb.replace ( i, i + 2, "\\" ); + // backslash sztill there: not found + if (sb.charAt (i + 1) == 'n') + { + // newline + sb.replace (i, i + 2, "\n"); + } + else if (sb.charAt (i + 1) == '\\') + { + // backslash + sb.replace (i, i + 2, "\\"); + } } - } - /* 26 08 2010 MH - advance i to avoid deadlock in case of incorrect escape - sequences like \\\\alpha (double backslash) or - \\bogus (unknown escape sequence) - */ - i++; - } - } + + // 26 08 2010 MH + // advance i to avoid deadlock in case of incorrect escape + // sequences like \\\\alpha (double backslash) or + // \\bogus (unknown escape sequence) + i++; + } + } } - while ( i > -1 ); - // finall: remove trailing blank - return ( sb.substring ( 0, sb.length () - 1 ).toString () ); - } + while (i > -1); + // finall: remove trailing blank + return (sb.substring (0, sb.length () - 1).toString ()); + } }