jbr May 2009 - I recently needed to place some exotic characters in an interface I have written. I wanted a fairly general purpose way of including various things. Since I'm a long time TeX user I am familiar with its notation. I found this very nice file containing the unicode translations [http://www.cl.cam.ac.uk/~mgk25/ucs/examples/TeX.txt] and edited it to remove tcl special characters and comments. There is a little code at the bottom to facilitate mappings: array set texlish { α alpha ι iota ϱ varrho β beta κ kappa σ sigma γ gamma λ lambda ς varsigma δ delta μ mu τ tau ϵ epsilon ν nu υ upsilon ε varepsilon ξ xi ϕ phi ζ zeta ο o φ varphi η eta π pi χ chi θ theta ϖ varpi ψ psi ϑ vartheta ρ rho ω omega Γ Gamma Ξ Xi Φ Phi Δ Delta Π Pi Ψ Psi Θ Theta Σ Sigma Ω Omega Λ Lambda Υ Upsilon ℵ aleph ′ prime ∀ forall ℏ hbar ∅ emptyset ∃ exists ı imath ∇ nabla ¬ neg j jmath √ surd ♭ flat ℓ ell ⊤ top ♮ natural ℘ wp ⊥ bot ♯ sharp ℜ Re ∥ | ♣ clubsuit ℑ Im ∠ angle ♢ diamondsuit ∂ partial △ triangle ♡ heartsuit ∞ infty ♠ spadesuit □ Box ◇ Diamond ∑ sum ⋂ bigcap ⨀ bigodot ∏ prod ⋃ bigcup ⨂ bigotimes ∐ coprod ⨆ bigsqcup ⨁ bigoplus ∫ int ⋁ bigvee ⨄ biguplus ∮ oint ⋀ bigwedge ± pm ∩ cap ∨ vee ∓ mp ∪ cup ∧ wedge ∖ setminus ⊎ uplus ⊕ oplus ⋅ cdot ⊓ sqcap ⊖ ominus × times ⊔ sqcup ⊗ otimes ∗ ast ◁ triangleleft ⊘ oslash ⋆ star ▷ triangleright ⊙ odot ⋄ diamond ≀ wr † dagger ∘ circ ◯ bigcirc ‡ ddagger ∙ bullet △ bigtriangleup ⨿ amalg ÷ div ▽ bigtriangledown ⊴ unlhd ⊲ lhd ⊳ rhd ⊵ unrhd ≤ leq ≥ geq ≡ equiv ≺ prec ≻ succ ∼ sim ≼ preceq ≽ succeq ≃ simeq ≪ ll ≫ gg ≍ asymp ⊂ subset ⊃ supset ≈ approx ⊆ subseteq ⊇ supseteq ≅ cong ⊑ sqsubseteq ⊒ sqsupseteq ⋈ bowtie ∈ in ∋ ni ∝ propto ⊢ vdash ⊣ dashv ⊨ models ⌣ smile ∣ mid ≐ doteq ⌢ frown ∥ parallel ⊥ perp ⊏ sqsubset ⊐ sqsupset ⨝ Join ≮ not< ≯ not> ≠ not= ≰ notleq ≱ notgeq ≢ notequiv ⊀ notprec ⊁ notsucc ≁ notsim ⋠ notpreceq ⋡ notsucceq ≄ notsimeq ⊄ notsubset ⊅ notsupset ≉ notapprox ⊈ notsubseteq ⊉ notsupseteq ≇ notcong ⋢ notsqsubseteq ⋣ notsqsupseteq ≭ notasymp ← leftarrow ⟵ longleftarrow ↑ uparrow ⇐ Leftarrow ⟸ Longleftarrow ⇑ Uparrow → rightarrow ⟶ longrightarrow ↓ downarrow ⇒ Rightarrow ⟹ Longrightarrow ⇓ Downarrow ↔ leftrightarrow ⟷ longleftrightarrow ↕ updownarrow ⇔ Leftrightarrow ⟺ Longleftrightarrow ⇕ Updownarrow ↦ mapsto ⟼ longmapsto ↗ nearrow ↩ hookleftarrow ↪ hookrightarrow ↘ searrow ↼ leftharpoonup ⇀ rightharpoonup ↙ swarrow ↽ leftharpoondown ⇁ rightharpoondown ↖ nwarrow ⇌ rightleftharpoons ↝ leadsto [ lbrack ⌊ lfloor ⌈ lceil ⟦ [![ \{ lbrace ⟨ langle ⟪ langle!langle ] rbrack ⌋ rfloor ⌉ rceil ⟧ ]!] \} rbrace ⟩ rangle ⟫ rangle!rangle ≠ ne or neq ≤ le ≥ ge → to ← gets ∋ owns ∧ land ∨ lor ¬ lnot ∣ vert ∥ Vert ⋮ vdots ⋯ cdots ⋱ ddots ’ ' ‘ ` ” '' “ `` ‐ - – -- — --- − $-$ ′ $'$ ″ $''$ ‴ $'''$ ⁗ $''''$ ff ff fi fi fl fl ffi ffi ffl ffl ¡ !` ¿ ?` œ oe Œ OE æ ae Æ AE å aa Å AA ø o Ø O ł l Ł L ß ss § S ¶ P † dag ‡ ddag © copyright £ pounds … ldots ◌́ ' ◌̀ ` ◌̂ ^ ◌̈ \" ◌̃ ~ ◌̄ = ◌̇ . ◌̆ u ◌̌ v ◌̋ H ◌͡ t ◌̧ c ◌̣ d ◌̱ b } proc arraymap { A string { char % } } { upvar $A a set map {} foreach { to from } [array get a] { lappend map $char$from $to } string map $map $string } puts [arraymap texlish "alpha %alpha"] ---- !!!!!! %| enter categories here |% !!!!!!