Ela*_*ich 5 windows typing autohotkey unicode
通常,在对话、电子邮件或论坛中,我想输入一些数学公式,但我不需要完整的方程支持。Unicode 符号应该足够了。
我需要的是一种简单的方法来输入与数学相关的 Unicode 符号。由于我已经了解 LaTeX,因此使用 LaTeX 符号助记符来键入数学符号是有意义的。
我目前所做的是编写一个 AutoHotkey 脚本,\使用 AutoHotkey 功能自动将 后面的 LaTeX 符号名称替换为相应的 Unicode 符号hotstring。然而,事实证明 AutoHotkey 热字符串对于许多字符串来说不稳定。有几十行会导致 AHK 有时无法识别字符串。
还有其他解决方案吗?(不,Alt+(Unicode number)不够方便。)
附件是我的 AHK 脚本。该PutUni函数取自此处。
::\infty::
PutUni("e2889e")
return
::\sum::
PutUni("e28891")
return
::\int::
PutUni("e288ab")
return
::\pm::
PutUni("c2b1")
return
::\alpha::
PutUni("c991")
return
::\beta::
PutUni("c992")
return
::\phi::
PutUni("c9b8")
return
::\delta::
PutUni("ceb4")
return
::\pi::
PutUni("cf80")
return
::\omega::
PutUni("cf89")
return
::\in::
PutUni("e28888")
return
::\notin::
PutUni("e28889")
return
::\iff::
PutUni("e28794")
return
::\leq::
PutUni("e289a4")
return
::\geq::
PutUni("e289a5")
return
::\sqrt::
PutUni("e2889a")
return
::\neq::
PutUni("e289a0")
return
::\subset::
PutUni("e28a82")
return
::\nsubset::
PutUni("e28a84")
return
::\nsubseteq::
PutUni("e28a88")
return
::\subseteq::
PutUni("e28a86")
return
::\prod::
PutUni("e2888f")
return
::\N::
PutUni("e28495")
return
Run Code Online (Sandbox Code Playgroud)
我使用 JavaScript 书签在 math.stackexchange.com 上输入 unicode 符号。Mathjax 呈现大多数 unicode 与相应的 Latex 宏相同。例如$\xe2\x84\x9d$并$\\mathbb{R}$给出相同的结果。我喜欢 tex 代码与 unicode 符号保持更紧凑和可读的方式。
我认为这段代码能够实现你想要的功能。我不喜欢使用太多的击键,所以\\alpha我不使用\\a来生成\xce\xb1. 您可以根据自己的需要修改此脚本,然后将其转换为小书签,例如使用此网站:http://jasonmillerdesign.com/Free_Stuff/Instant_Bookmarklet_Converter
如果您想在没有 jquery 的网站上使用此脚本,那么您首先需要运行此书签: http: //www.learningjquery.com/2006/12/jquerify-bookmarklet/
\n\njQuery.fn.autocorrect = function(options)\n{\n if ("text" != jQuery(this).attr("type") && !jQuery(this).is("textarea"))\n {\n return;\n }\nvar defaults = {\n corrections: {\n a: "\xce\xb1",\n b: "\xce\xb2",\n c: "\xce\xb3",\n d: "\xce\xb4",\n e: "\xcf\xb5",\n emp : "\xe2\x88\x85",\n f: "\\\\frac{}{}",\n in : "\xe2\x88\x88",\n s: "\xcf\x83",\n t: "\\\\text{}",\n tau : "\xcf\x84",\n th : "\xce\xb8",\n p: "\xcf\x80",\n pm : "\xc2\xb1",\n o : "\xcf\x89",\n O : "\xce\xa9",\n r : "\xcf\x81",\n A : "\xe2\x88\x80",\n E : "\xe2\x88\x83",\n R: "\xe2\x84\x9d",\n C: "\xe2\x84\x82",\n H: "\xe2\x84\x8d",\n N: "\xe2\x84\x95",\n Q: "\xe2\x84\x9a",\n Z: "\xe2\x84\xa4",\n int: "\\\\int_{}^{}",\n inf : "\xe2\x88\x9e",\n sum : "\\\\sum_{}^{}",\n "-1": "^{-1}",\n ph: "\xcf\x95",\n ch: "\xcf\x87",\n ps: "\xcf\x88",\n leq : "\xe2\x89\xa5",\n xi : "\xce\xbe", \n geq : "\xe2\x89\xa4",\n "/=" : "\xe2\x89\xa0",\n "==" : "\xe2\x89\xa1",\n "<" : "\\\\langle {} \\\\rangle",\n "->" : "\xe2\x86\x92",\n "=>" : "\xe2\x87\x92",\n "<=" : "\xe2\x87\x90",\n "<>" : "\xe2\x87\x94",\n "sq" : "\\\\sqrt{}"\n }\n};\nif (options && options.corrections)\n{\n options.corrections = jQuery.extend(defaults.corrections, options.corrections);\n}\nvar opts = jQuery.extend(defaults, options);\ngetCaretPosition = function(oField)\n{\n var iCaretPos = 0;\n if (document.selection)\n {\n var oSel = document.selection.createRange();\n oSel.moveStart("character", 0 - oField.value.length);\n iCaretPos = oSel.text.length;\n }\n else if (oField.selectionStart || oField.selectionStart == "0")\n {\n iCaretPos = oField.selectionStart;\n }\n return (iCaretPos);\n}\nfunction setCaretPosition (oField, iCaretPos)\n{\n if (document.selection)\n {\n var oSel = document.selection.createRange();\n oSel.moveStart("character", 0 - oField.value.length);\n oSel.moveStart("character", iCaretPos);\n oSel.moveEnd("character", 0);\n }\n else if (oField.selectionStart || oField.selectionStart == "0")\n {\n oField.selectionStart = iCaretPos;\n oField.selectionEnd = iCaretPos;\n }\n}\nthis.keyup(function(e)\n{\n if (32 != e.keyCode)\n {\n return;\n }\n var caretPosition = (getCaretPosition(this) - 1);\n if (1 > caretPosition)\n {\n return;\n }\n var valueOfField = this.value;\n var stringUptoCaretPosition = (valueOfField).substr(0, caretPosition);\n if (" " == stringUptoCaretPosition.charAt(caretPosition - 1))\n {\n return;\n }\n var beginIndex = stringUptoCaretPosition.lastIndexOf(\'\\\\\');\n if (beginIndex < stringUptoCaretPosition.lastIndexOf(\' \'))\n {\n return;\n }\n var stringToSearch = stringUptoCaretPosition.substring(beginIndex+1);\n var stringNotToSearch = stringUptoCaretPosition.substring(0, beginIndex);\n if (!opts.corrections[stringToSearch])\n {\n return;\n }\n var stringToReplace = opts.corrections[stringToSearch];\n stringUptoCaretPosition = stringNotToSearch+ stringToReplace;\n var stringFromCaretPositionUptoEnd = (valueOfField).substr(caretPosition+1);\n this.value = (stringUptoCaretPosition + stringFromCaretPositionUptoEnd);\n if (stringToReplace.indexOf("{}")!=-1 )\n {\n setCaretPosition(this, stringUptoCaretPosition.indexOf("{}")+1);\n }\n else { setCaretPosition(this, stringUptoCaretPosition.length);}\n\n});\n};\n$(document).ready(function()\n{\n $("textarea").autocorrect();\n});\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3335 次 |
| 最近记录: |