aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTassilo Horn2015-08-20 07:56:09 +0200
committerTassilo Horn2015-08-20 07:56:09 +0200
commit88afeeeafcf018e3eecbcc9be46e227eb312d45a (patch)
treeadb6c910eb527b872bad8ffe5bf70f3649cc10da
parent82a3da21ffece64ce9f4f99f35cbc0afe851e6ee (diff)
downloademacs-88afeeeafcf018e3eecbcc9be46e227eb312d45a.tar.gz
emacs-88afeeeafcf018e3eecbcc9be46e227eb312d45a.zip
Add a prettify-symbols-alist for (La)TeX
* tex-mode.el (tex-prettify-symbols-alist): New variable holding an alist suitable as prettify-symbols-alist in (La)TeX modes.
-rw-r--r--lisp/textmodes/tex-mode.el455
1 files changed, 455 insertions, 0 deletions
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 535b8857677..54783869403 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -2943,6 +2943,461 @@ There might be text before point."
2943 (setq-local syntax-propertize-function 2943 (setq-local syntax-propertize-function
2944 (syntax-propertize-rules doctex-syntax-propertize-rules))) 2944 (syntax-propertize-rules doctex-syntax-propertize-rules)))
2945 2945
2946;;; Prettify Symbols Support
2947
2948(defvar tex-prettify-symbols-alist
2949 '( ;; Lowercase Greek letters.
2950 ("\\alpha" . ?α)
2951 ("\\beta" . ?β)
2952 ("\\gamma" . ?γ)
2953 ("\\delta" . ?δ)
2954 ("\\epsilon" . ?ε)
2955 ("\\zeta" . ?ζ)
2956 ("\\eta" . ?η)
2957 ("\\theta" . ?θ)
2958 ("\\iota" . ?ι)
2959 ("\\kappa" . ?κ)
2960 ("\\lambda" . ?λ)
2961 ("\\mu" . ?μ)
2962 ("\\nu" . ?ν)
2963 ("\\xi" . ?ξ)
2964 ;; There is no \omicron becase it looks like a latin o.
2965 ("\\pi" . ?π)
2966 ("\\rho" . ?ρ)
2967 ("\\sigma" . ?σ)
2968 ("\\tau" . ?τ)
2969 ("\\upsilon" . ?υ)
2970 ("\\phi" . ?φ)
2971 ("\\chi" . ?χ)
2972 ("\\psi" . ?ψ)
2973 ("\\omega" . ?ω)
2974 ;; Uppercase Greek letters.
2975 ("\\Gamma" . ?Γ)
2976 ("\\Delta" . ?Δ)
2977 ("\\Lambda" . ?Λ)
2978 ("\\Phi" . ?Φ)
2979 ("\\Pi" . ?Π)
2980 ("\\Psi" . ?Ψ)
2981 ("\\Sigma" . ?Σ)
2982 ("\\Theta" . ?Θ)
2983 ("\\Upsilon" . ?Υ)
2984 ("\\Xi" . ?Ξ)
2985 ("\\Omega" . ?Ω)
2986
2987 ;; Other math symbols (taken from leim/quail/latin-ltx.el).
2988 ("\\Box" . ?□)
2989 ("\\Bumpeq" . ?≎)
2990 ("\\Cap" . ?⋒)
2991 ("\\Cup" . ?⋓)
2992 ("\\Diamond" . ?◇)
2993 ("\\Downarrow" . ?⇓)
2994 ("\\H{o}" . ?ő)
2995 ("\\Im" . ?ℑ)
2996 ("\\Join" . ?⋈)
2997 ("\\Leftarrow" . ?⇐)
2998 ("\\Leftrightarrow" . ?⇔)
2999 ("\\Ll" . ?⋘)
3000 ("\\Lleftarrow" . ?⇚)
3001 ("\\Longleftarrow" . ?⇐)
3002 ("\\Longleftrightarrow" . ?⇔)
3003 ("\\Longrightarrow" . ?⇒)
3004 ("\\Lsh" . ?↰)
3005 ("\\Re" . ?ℜ)
3006 ("\\Rightarrow" . ?⇒)
3007 ("\\Rrightarrow" . ?⇛)
3008 ("\\Rsh" . ?↱)
3009 ("\\Subset" . ?⋐)
3010 ("\\Supset" . ?⋑)
3011 ("\\Uparrow" . ?⇑)
3012 ("\\Updownarrow" . ?⇕)
3013 ("\\Vdash" . ?⊩)
3014 ("\\Vert" . ?‖)
3015 ("\\Vvdash" . ?⊪)
3016 ("\\aleph" . ?ℵ)
3017 ("\\amalg" . ?∐)
3018 ("\\angle" . ?∠)
3019 ("\\approx" . ?≈)
3020 ("\\approxeq" . ?≊)
3021 ("\\ast" . ?∗)
3022 ("\\asymp" . ?≍)
3023 ("\\backcong" . ?≌)
3024 ("\\backepsilon" . ?∍)
3025 ("\\backprime" . ?‵)
3026 ("\\backsim" . ?∽)
3027 ("\\backsimeq" . ?⋍)
3028 ("\\backslash" . ?\\)
3029 ("\\barwedge" . ?⊼)
3030 ("\\because" . ?∵)
3031 ("\\beth" . ?ℶ)
3032 ("\\between" . ?≬)
3033 ("\\bigcap" . ?⋂)
3034 ("\\bigcirc" . ?◯)
3035 ("\\bigcup" . ?⋃)
3036 ("\\bigstar" . ?★)
3037 ("\\bigtriangledown" . ?▽)
3038 ("\\bigtriangleup" . ?△)
3039 ("\\bigvee" . ?⋁)
3040 ("\\bigwedge" . ?⋀)
3041 ("\\blacklozenge" . ?✦)
3042 ("\\blacksquare" . ?▪)
3043 ("\\blacktriangle" . ?▴)
3044 ("\\blacktriangledown" . ?▾)
3045 ("\\blacktriangleleft" . ?◂)
3046 ("\\blacktriangleright" . ?▸)
3047 ("\\bot" . ?⊥)
3048 ("\\bowtie" . ?⋈)
3049 ("\\boxminus" . ?⊟)
3050 ("\\boxplus" . ?⊞)
3051 ("\\boxtimes" . ?⊠)
3052 ("\\bullet" . ?•)
3053 ("\\bumpeq" . ?≏)
3054 ("\\cap" . ?∩)
3055 ("\\cdots" . ?⋯)
3056 ("\\centerdot" . ?·)
3057 ("\\checkmark" . ?✓)
3058 ("\\chi" . ?χ)
3059 ("\\circ" . ?∘)
3060 ("\\circeq" . ?≗)
3061 ("\\circlearrowleft" . ?↺)
3062 ("\\circlearrowright" . ?↻)
3063 ("\\circledR" . ?®)
3064 ("\\circledS" . ?Ⓢ)
3065 ("\\circledast" . ?⊛)
3066 ("\\circledcirc" . ?⊚)
3067 ("\\circleddash" . ?⊝)
3068 ("\\clubsuit" . ?♣)
3069 ("\\coloneq" . ?≔)
3070 ("\\complement" . ?∁)
3071 ("\\cong" . ?≅)
3072 ("\\coprod" . ?∐)
3073 ("\\cup" . ?∪)
3074 ("\\curlyeqprec" . ?⋞)
3075 ("\\curlyeqsucc" . ?⋟)
3076 ("\\curlypreceq" . ?≼)
3077 ("\\curlyvee" . ?⋎)
3078 ("\\curlywedge" . ?⋏)
3079 ("\\curvearrowleft" . ?↶)
3080 ("\\curvearrowright" . ?↷)
3081 ("\\dag" . ?†)
3082 ("\\dagger" . ?†)
3083 ("\\daleth" . ?ℸ)
3084 ("\\dashv" . ?⊣)
3085 ("\\ddag" . ?‡)
3086 ("\\ddagger" . ?‡)
3087 ("\\ddots" . ?⋱)
3088 ("\\diamond" . ?⋄)
3089 ("\\diamondsuit" . ?♢)
3090 ("\\divideontimes" . ?⋇)
3091 ("\\doteq" . ?≐)
3092 ("\\doteqdot" . ?≑)
3093 ("\\dotplus" . ?∔)
3094 ("\\dotsquare" . ?⊡)
3095 ("\\downarrow" . ?↓)
3096 ("\\downdownarrows" . ?⇊)
3097 ("\\downleftharpoon" . ?⇃)
3098 ("\\downrightharpoon" . ?⇂)
3099 ("\\ell" . ?ℓ)
3100 ("\\emptyset" . ?∅)
3101 ("\\eqcirc" . ?≖)
3102 ("\\eqcolon" . ?≕)
3103 ("\\eqslantgtr" . ?⋝)
3104 ("\\eqslantless" . ?⋜)
3105 ("\\equiv" . ?≡)
3106 ("\\exists" . ?∃)
3107 ("\\fallingdotseq" . ?≒)
3108 ("\\flat" . ?♭)
3109 ("\\forall" . ?∀)
3110 ("\\frown" . ?⌢)
3111 ("\\ge" . ?≥)
3112 ("\\geq" . ?≥)
3113 ("\\geqq" . ?≧)
3114 ("\\geqslant" . ?≥)
3115 ("\\gets" . ?←)
3116 ("\\gg" . ?≫)
3117 ("\\ggg" . ?⋙)
3118 ("\\gimel" . ?ℷ)
3119 ("\\gnapprox" . ?⋧)
3120 ("\\gneq" . ?≩)
3121 ("\\gneqq" . ?≩)
3122 ("\\gnsim" . ?⋧)
3123 ("\\gtrapprox" . ?≳)
3124 ("\\gtrdot" . ?⋗)
3125 ("\\gtreqless" . ?⋛)
3126 ("\\gtreqqless" . ?⋛)
3127 ("\\gtrless" . ?≷)
3128 ("\\gtrsim" . ?≳)
3129 ("\\gvertneqq" . ?≩)
3130 ("\\hbar" . ?ℏ)
3131 ("\\heartsuit" . ?♥)
3132 ("\\hookleftarrow" . ?↩)
3133 ("\\hookrightarrow" . ?↪)
3134 ("\\iff" . ?⇔)
3135 ("\\imath" . ?ı)
3136 ("\\in" . ?∈)
3137 ("\\infty" . ?∞)
3138 ("\\int" . ?∫)
3139 ("\\intercal" . ?⊺)
3140 ("\\langle" . 10216) ; Literal ?⟨ breaks indentation.
3141 ("\\lbrace" . ?{)
3142 ("\\lbrack" . ?\[)
3143 ("\\lceil" . ?⌈)
3144 ("\\ldots" . ?…)
3145 ("\\le" . ?≤)
3146 ("\\leadsto" . ?↝)
3147 ("\\leftarrow" . ?←)
3148 ("\\leftarrowtail" . ?↢)
3149 ("\\leftharpoondown" . ?↽)
3150 ("\\leftharpoonup" . ?↼)
3151 ("\\leftleftarrows" . ?⇇)
3152 ;; ("\\leftparengtr" ?〈), see bug#12948.
3153 ("\\leftrightarrow" . ?↔)
3154 ("\\leftrightarrows" . ?⇆)
3155 ("\\leftrightharpoons" . ?⇋)
3156 ("\\leftrightsquigarrow" . ?↭)
3157 ("\\leftthreetimes" . ?⋋)
3158 ("\\leq" . ?≤)
3159 ("\\leqq" . ?≦)
3160 ("\\leqslant" . ?≤)
3161 ("\\lessapprox" . ?≲)
3162 ("\\lessdot" . ?⋖)
3163 ("\\lesseqgtr" . ?⋚)
3164 ("\\lesseqqgtr" . ?⋚)
3165 ("\\lessgtr" . ?≶)
3166 ("\\lesssim" . ?≲)
3167 ("\\lfloor" . ?⌊)
3168 ("\\lhd" . ?◁)
3169 ("\\rhd" . ?▷)
3170 ("\\ll" . ?≪)
3171 ("\\llcorner" . ?⌞)
3172 ("\\lnapprox" . ?⋦)
3173 ("\\lneq" . ?≨)
3174 ("\\lneqq" . ?≨)
3175 ("\\lnsim" . ?⋦)
3176 ("\\longleftarrow" . ?←)
3177 ("\\longleftrightarrow" . ?↔)
3178 ("\\longmapsto" . ?↦)
3179 ("\\longrightarrow" . ?→)
3180 ("\\looparrowleft" . ?↫)
3181 ("\\looparrowright" . ?↬)
3182 ("\\lozenge" . ?✧)
3183 ("\\lq" . ?‘)
3184 ("\\lrcorner" . ?⌟)
3185 ("\\ltimes" . ?⋉)
3186 ("\\lvertneqq" . ?≨)
3187 ("\\maltese" . ?✠)
3188 ("\\mapsto" . ?↦)
3189 ("\\measuredangle" . ?∡)
3190 ("\\mho" . ?℧)
3191 ("\\mid" . ?∣)
3192 ("\\models" . ?⊧)
3193 ("\\mp" . ?∓)
3194 ("\\multimap" . ?⊸)
3195 ("\\nLeftarrow" . ?⇍)
3196 ("\\nLeftrightarrow" . ?⇎)
3197 ("\\nRightarrow" . ?⇏)
3198 ("\\nVDash" . ?⊯)
3199 ("\\nVdash" . ?⊮)
3200 ("\\nabla" . ?∇)
3201 ("\\napprox" . ?≉)
3202 ("\\natural" . ?♮)
3203 ("\\ncong" . ?≇)
3204 ("\\ne" . ?≠)
3205 ("\\nearrow" . ?↗)
3206 ("\\neg" . ?¬)
3207 ("\\neq" . ?≠)
3208 ("\\nequiv" . ?≢)
3209 ("\\newline" . ?
)
3210 ("\\nexists" . ?∄)
3211 ("\\ngeq" . ?≱)
3212 ("\\ngeqq" . ?≱)
3213 ("\\ngeqslant" . ?≱)
3214 ("\\ngtr" . ?≯)
3215 ("\\ni" . ?∋)
3216 ("\\nleftarrow" . ?↚)
3217 ("\\nleftrightarrow" . ?↮)
3218 ("\\nleq" . ?≰)
3219 ("\\nleqq" . ?≰)
3220 ("\\nleqslant" . ?≰)
3221 ("\\nless" . ?≮)
3222 ("\\nmid" . ?∤)
3223 ;; ("\\not" ?̸) ;FIXME: conflict with "NOT SIGN" ¬.
3224 ("\\notin" . ?∉)
3225 ("\\nparallel" . ?∦)
3226 ("\\nprec" . ?⊀)
3227 ("\\npreceq" . ?⋠)
3228 ("\\nrightarrow" . ?↛)
3229 ("\\nshortmid" . ?∤)
3230 ("\\nshortparallel" . ?∦)
3231 ("\\nsim" . ?≁)
3232 ("\\nsimeq" . ?≄)
3233 ("\\nsubset" . ?⊄)
3234 ("\\nsubseteq" . ?⊈)
3235 ("\\nsubseteqq" . ?⊈)
3236 ("\\nsucc" . ?⊁)
3237 ("\\nsucceq" . ?⋡)
3238 ("\\nsupset" . ?⊅)
3239 ("\\nsupseteq" . ?⊉)
3240 ("\\nsupseteqq" . ?⊉)
3241 ("\\ntriangleleft" . ?⋪)
3242 ("\\ntrianglelefteq" . ?⋬)
3243 ("\\ntriangleright" . ?⋫)
3244 ("\\ntrianglerighteq" . ?⋭)
3245 ("\\nvDash" . ?⊭)
3246 ("\\nvdash" . ?⊬)
3247 ("\\nwarrow" . ?↖)
3248 ("\\odot" . ?⊙)
3249 ("\\oint" . ?∮)
3250 ("\\ominus" . ?⊖)
3251 ("\\oplus" . ?⊕)
3252 ("\\oslash" . ?⊘)
3253 ("\\otimes" . ?⊗)
3254 ("\\par" . ?
)
3255 ("\\parallel" . ?∥)
3256 ("\\partial" . ?∂)
3257 ("\\perp" . ?⊥)
3258 ("\\pitchfork" . ?⋔)
3259 ("\\prec" . ?≺)
3260 ("\\precapprox" . ?≾)
3261 ("\\preceq" . ?≼)
3262 ("\\precnapprox" . ?⋨)
3263 ("\\precnsim" . ?⋨)
3264 ("\\precsim" . ?≾)
3265 ("\\prime" . ?′)
3266 ("\\prod" . ?∏)
3267 ("\\propto" . ?∝)
3268 ("\\qed" . ?∎)
3269 ("\\quad" . ? )
3270 ("\\rangle" . 10217) ; Literal ?⟩ breaks indentation.
3271 ("\\rbrace" . ?})
3272 ("\\rbrack" . ?\])
3273 ("\\rceil" . ?⌉)
3274 ("\\rfloor" . ?⌋)
3275 ("\\rightarrow" . ?→)
3276 ("\\rightarrowtail" . ?↣)
3277 ("\\rightharpoondown" . ?⇁)
3278 ("\\rightharpoonup" . ?⇀)
3279 ("\\rightleftarrows" . ?⇄)
3280 ("\\rightleftharpoons" . ?⇌)
3281 ;; ("\\rightparengtr" ?⦔) ;; Was ?〉, see bug#12948.
3282 ("\\rightrightarrows" . ?⇉)
3283 ("\\rightthreetimes" . ?⋌)
3284 ("\\risingdotseq" . ?≓)
3285 ("\\rtimes" . ?⋊)
3286 ("\\sbs" . ?﹨)
3287 ("\\searrow" . ?↘)
3288 ("\\setminus" . ?∖)
3289 ("\\sharp" . ?♯)
3290 ("\\shortmid" . ?∣)
3291 ("\\shortparallel" . ?∥)
3292 ("\\sim" . ?∼)
3293 ("\\simeq" . ?≃)
3294 ("\\smallamalg" . ?∐)
3295 ("\\smallsetminus" . ?∖)
3296 ("\\smallsmile" . ?⌣)
3297 ("\\smile" . ?⌣)
3298 ("\\spadesuit" . ?♠)
3299 ("\\sphericalangle" . ?∢)
3300 ("\\sqcap" . ?⊓)
3301 ("\\sqcup" . ?⊔)
3302 ("\\sqsubset" . ?⊏)
3303 ("\\sqsubseteq" . ?⊑)
3304 ("\\sqsupset" . ?⊐)
3305 ("\\sqsupseteq" . ?⊒)
3306 ("\\square" . ?□)
3307 ("\\squigarrowright" . ?⇝)
3308 ("\\star" . ?⋆)
3309 ("\\straightphi" . ?φ)
3310 ("\\subset" . ?⊂)
3311 ("\\subseteq" . ?⊆)
3312 ("\\subseteqq" . ?⊆)
3313 ("\\subsetneq" . ?⊊)
3314 ("\\subsetneqq" . ?⊊)
3315 ("\\succ" . ?≻)
3316 ("\\succapprox" . ?≿)
3317 ("\\succcurlyeq" . ?≽)
3318 ("\\succeq" . ?≽)
3319 ("\\succnapprox" . ?⋩)
3320 ("\\succnsim" . ?⋩)
3321 ("\\succsim" . ?≿)
3322 ("\\sum" . ?∑)
3323 ("\\supset" . ?⊃)
3324 ("\\supseteq" . ?⊇)
3325 ("\\supseteqq" . ?⊇)
3326 ("\\supsetneq" . ?⊋)
3327 ("\\supsetneqq" . ?⊋)
3328 ("\\surd" . ?√)
3329 ("\\swarrow" . ?↙)
3330 ("\\therefore" . ?∴)
3331 ("\\thickapprox" . ?≈)
3332 ("\\thicksim" . ?∼)
3333 ("\\to" . ?→)
3334 ("\\top" . ?⊤)
3335 ("\\triangle" . ?▵)
3336 ("\\triangledown" . ?▿)
3337 ("\\triangleleft" . ?◃)
3338 ("\\trianglelefteq" . ?⊴)
3339 ("\\triangleq" . ?≜)
3340 ("\\triangleright" . ?▹)
3341 ("\\trianglerighteq" . ?⊵)
3342 ("\\twoheadleftarrow" . ?↞)
3343 ("\\twoheadrightarrow" . ?↠)
3344 ("\\ulcorner" . ?⌜)
3345 ("\\uparrow" . ?↑)
3346 ("\\updownarrow" . ?↕)
3347 ("\\upleftharpoon" . ?↿)
3348 ("\\uplus" . ?⊎)
3349 ("\\uprightharpoon" . ?↾)
3350 ("\\upuparrows" . ?⇈)
3351 ("\\urcorner" . ?⌝)
3352 ("\\u{i}" . ?ĭ)
3353 ("\\vDash" . ?⊨)
3354 ("\\varprime" . ?′)
3355 ("\\varpropto" . ?∝)
3356 ;; ("\\varsigma" ?ς) ;FIXME: Looks reversed with the non\var.
3357 ("\\vartriangleleft" . ?⊲)
3358 ("\\vartriangleright" . ?⊳)
3359 ("\\vdash" . ?⊢)
3360 ("\\vdots" . ?⋮)
3361 ("\\vee" . ?∨)
3362 ("\\veebar" . ?⊻)
3363 ("\\vert" . ?|)
3364 ("\\wedge" . ?∧)
3365 ("\\wp" . ?℘)
3366 ("\\wr" . ?≀)
3367 ("\\Bbb{N}" . ?ℕ) ; AMS commands for blackboard bold
3368 ("\\Bbb{P}" . ?ℙ) ; Also sometimes \mathbb.
3369 ("\\Bbb{R}" . ?ℝ)
3370 ("\\Bbb{Z}" . ?ℤ)
3371 ("--" . ?–)
3372 ("---" . ?—)
3373 ("\\ordfeminine" . ?ª)
3374 ("\\ordmasculine" . ?º)
3375 ("\\lambdabar" . ?ƛ)
3376 ("\\celsius" . ?℃)
3377 ("\\textmu" . ?µ)
3378 ("\\textfractionsolidus" . ?⁄)
3379 ("\\textbigcircle" . ?⃝)
3380 ("\\textmusicalnote" . ?♪)
3381 ("\\textdied" . ?✝)
3382 ("\\textcolonmonetary" . ?₡)
3383 ("\\textwon" . ?₩)
3384 ("\\textnaira" . ?₦)
3385 ("\\textpeso" . ?₱)
3386 ("\\textlira" . ?₤)
3387 ("\\textrecipe" . ?℞)
3388 ("\\textinterrobang" . ?‽)
3389 ("\\textpertenthousand" . ?‱)
3390 ("\\textbaht" . ?฿)
3391 ("\\textnumero" . ?№)
3392 ("\\textdiscount" . ?⁒)
3393 ("\\textestimated" . ?℮)
3394 ("\\textopenbullet" . ?◦)
3395 ("\\textlquill" . 8261) ; Literal ?⁅ breaks indentation.
3396 ("\\textrquill" . 8262) ; Literal ?⁆ breaks indentation.
3397 ("\\textcircledP" . ?℗)
3398 ("\\textreferencemark" . ?※))
3399 "A `prettify-symbols-alist' usable for (La)TeX modes.")
3400
2946(run-hooks 'tex-mode-load-hook) 3401(run-hooks 'tex-mode-load-hook)
2947 3402
2948(provide 'tex-mode) 3403(provide 'tex-mode)