1 package com.teamkonzept.lib; 2 3 8 public class TKLaTeXConverter extends TKConverter { 9 10 public final static String CONV_ID = "LT"; 11 public final static String CONV_NAME = "LATEX"; 12 private final static int MAX_BYTES_CHAR = 21; 13 14 public String getName() 15 { 16 return CONV_NAME; 17 } 18 19 public int getMaxBytesPerChar() 20 { 21 return MAX_BYTES_CHAR; 22 } 23 24 public int minCharSize(int byteCount) 25 { 26 return byteCount; 27 } 28 29 public final static String [] LATEX_TRANSLATION = { 30 31 33 "?" 34 , "?" 35 , "?" 36 , "?" 37 , "?" 38 , "?" 39 , "?" 40 , "?" 41 , "?" 42 , (char)( 9)+"" , (char)( 10)+"" , "?" 45 , "?" 46 , (char)( 13)+"" , "?" 48 , "?" 49 , "?" 50 , "?" 51 , "?" 52 , "?" 53 , "?" 54 , "?" 55 , "?" 56 , "?" 57 , "?" 58 , "?" 59 , "?" 60 , "?" 61 , "?" 62 , "?" 63 , "?" 64 , "?" 65 , " " 66 , "!" 67 , "{}\"{}" , "\\#{}" , "\\${}" , "\\%{}" , "\\&{}" , "{}'{}" , "(" 74 , ")" 75 , "{}*{}" , "+" 77 , "{},{}" , "{}-{}" , "." 80 , "/" 81 , "0" 82 , "1" 83 , "2" 84 , "3" 85 , "4" 86 , "5" 87 , "6" 88 , "7" 89 , "8" 90 , "9" 91 , ":" 92 , ";" 93 , "{\\tt{}<}" , "{}={}" , "{\\tt{}>}" , "?" 97 , "{}@{}" , "A" 99 , "B" 100 , "C" 101 , "D" 102 , "E" 103 , "F" 104 , "G" 105 , "H" 106 , "I" 107 , "J" 108 , "K" 109 , "L" 110 , "M" 111 , "N" 112 , "O" 113 , "P" 114 , "Q" 115 , "R" 116 , "S" 117 , "T" 118 , "U" 119 , "V" 120 , "W" 121 , "X" 122 , "Y" 123 , "Z" 124 , "{}[{}" , "\\textbackslash{}" , "{}]{}" , "\\textasciicircum{}" , "\\_{}" , "\\`{}" , "a" 131 , "b" 132 , "c" 133 , "d" 134 , "e" 135 , "f" 136 , "g" 137 , "h" 138 , "i" 139 , "j" 140 , "k" 141 , "l" 142 , "m" 143 , "n" 144 , "o" 145 , "p" 146 , "q" 147 , "r" 148 , "s" 149 , "t" 150 , "u" 151 , "v" 152 , "w" 153 , "x" 154 , "y" 155 , "z" 156 , "\\{" , "|" 158 , "\\}" , "\\textasciitilde{}" , "?" 162 164 , "?" , "?" , "\\textquotesinglbase{}" , (char)(131)+"" , "\\textquotedblbase{}" , (char)(133)+"" , (char)(134)+"" , (char)(135)+"" , (char)(136)+"" , (char)(137)+"" , (char)(138)+"" , (char)(139)+"" , (char)(140)+"" , "?" , "\\v{Z}" , "?" , "?" , (char)(145)+"" , (char)(146)+"" , (char)(147)+"" , (char)(148)+"" , (char)(149)+"" , (char)(150)+"" , (char)(151)+"" , (char)(152)+"" , (char)(153)+"" , (char)(154)+"" , (char)(155)+"" , (char)(156)+"" , "?" , "\\v{z}" , (char)(159)+"" 197 199 , "" , "¡" , "¢" , "£" , "¤" , "¥" , "¦" , "\\textsection{}" , "¨" , "©" , "ª" , "«" , "\\textlogicalnot{}" , "" 213 , "®" , "¯" , "°" , "\\textplusminus{}" , "\\textsupertwo{}" , "\\textsuperthree{}" , "´" , "\\textmu{}" , "¶" , "·" , "¸" , "\\textsuperone{}" , "º" 226 , "»" 227 , "¼" 228 , "½" 229 , "¾" 230 , "¿" , "À" , "Á" , "Â" , "Ã" , "Ä" , "Å" , "Æ" 238 , "Ç" , "È" , "É" , "Ê" , "Ë" , "Ì" , "Í" , "Î" , "Ï" , "Ð" 248 , "Ñ" 249 , "Ò" 250 , "Ó" 251 , "Ô" 252 , "Õ" 253 , "Ö" 254 , "\\textmultiply{}" , "Ø" 256 , "Ù" , "Ú" , "Û" , "Ü" , "Ý" , "Þ" , "ß" , "à" , "á" , "â" , "ã" , "ä" , "å" , "æ" 270 , "ç" , "è" , "é" , "ê" , "ë" , "ì" , "í" , "î" , "ï" , "ð" 280 , "ñ" , "ò" , "ó" , "ô" , "õ" , "ö" , "\\textdivide{}" , "ø" 288 , "ù" , "ú" , "û" , "ü" , "ý" , "þ" , "ÿ" }; 296 297 298 public int charsToBytes(char src[], byte dst[], int srcBegin, int length, int dstBegin) 299 { 300 String back = encodeLaTeX(src, srcBegin, length); 301 back.getBytes(0, back.length(), dst, dstBegin); 302 return back.length(); 303 } 304 305 public int bytesToChars(byte src[], char dst[], int srcBegin, int length, int dstBegin) 306 { 307 String srcIn = new String (src); 308 String back = encodeLaTeX(srcIn.toCharArray(), srcBegin, length); 309 back.getChars(0, back.length(), dst, dstBegin); 310 return back.length(); 311 } 312 313 public static String encodeLaTeX(char[] in, int start, int length) 314 { 315 if (in == null) 316 return null; 317 318 StringBuffer buf = new StringBuffer (); 319 int trLimit = LATEX_TRANSLATION.length; 320 int end = start+length; 321 322 for (int i = start; i < end; i++) 323 { 324 if ( in[i] < trLimit) 325 buf.append( LATEX_TRANSLATION[ in[i] ]); 326 else 327 buf.append( '?'); 328 } 329 330 return buf.toString(); 331 } 332 333 } 334 335 336 337 | Popular Tags |