Ersetzen von Latex durch Unicode-Symbole

2586
Elazar Leibovich

Während eines Gesprächs oder einer E-Mail oder in einem Forum möchte ich oft etwas Mathematik eingeben, aber ich brauche keine vollständige Unterstützung für Gleichungen. Unicode-Symbole sollten ausreichen.

Was ich brauche, ist eine einfache Möglichkeit, mathematikbezogene Unicode-Symbole einzugeben. Da ich Latex bereits kenne, ist es sinnvoll, die Mathe-Symbole mit dem Latex-Symbol zu schreiben.

Derzeit habe ich ein AutoHotKey-Skript geschrieben, das \ latexSymbol automatisch durch das entsprechende Unicode-Symbol ersetzt, wobei die AutoHotKey-Funktionen "hotstrings" verwendet werden. Die AutoHotKey-Hotstrings erwiesen sich jedoch für viele Strings als instabil. Ein paar Zehnerzeilen führen dazu, dass AHK die Zeichenketten von Zeit zu Zeit nicht erkennt.

Irgendwelche andere Lösung? (Nein, Alt + Unicode-Nummer ist nicht bequem genug)

Im Anhang ist mein AHK-Skript. Die PutUniFunktion wird hier übernommen .

::\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 
3
Hat das Bookmarklet für Sie funktioniert? Kasper vor 11 Jahren 0
Habe das noch nicht probiert Elazar Leibovich vor 11 Jahren 0
Zu Ihrer Information: [Verwenden von AutoHotKey zur Rationalisierung der Erstellung von LaTeX-Dokumenten] (https://tex.stackexchange.com/q/61547/50146) Ooker vor 7 Jahren 0

6 Antworten auf die Frage

3
Kasper

Ich benutze ein Javascript-Bookmarklet, um Unicode-Symbole bei math.stackexchange.com einzugeben. Mathjax macht den meisten Unicode genauso wie die entsprechenden Latex-Makros. Zum Beispiel $ℝ$und $\mathbb$geben Sie das gleiche Ergebnis. Ich mag die Art und Weise, wie Tex-Code mit Unicode-Symbolen kompakter und lesbarer bleibt.

Ich denke, dass dieser Code in der Lage ist zu tun, was Sie wollen. Ich mag nicht zu viele Tastenanschläge zu verwenden, also statt \alphaich \azu produzieren α. Sie können dieses Skript an Ihre eigenen Bedürfnisse anpassen und dann in ein Bookmarklet umwandeln, indem Sie diese Website verwenden, beispielsweise: http://jasonmillerdesign.com/Free_Stuff/Instant_Bookmarklet_Converter

Wenn Sie dieses Skript auf einer Website ohne Jquery verwenden möchten, müssen Sie zuerst dieses Bookmarklet ausführen: http://www.learningjquery.com/2006/12/jquerify-bookmarklet/

jQuery.fn.autocorrect = function(options) { if ("text" != jQuery(this).attr("type") && !jQuery(this).is("textarea")) { return; } var defaults = { corrections: { a: "α", b: "β", c: "γ", d: "δ", e: "ϵ", emp : "∅", f: "\\frac{}{}", in : "∈", s: "σ", t: "\\text{}", tau : "τ", th : "θ", p: "π", pm : "±", o : "ω", O : "Ω", r : "ρ", A : "∀", E : "∃", R: "ℝ", C: "ℂ", H: "ℍ", N: "ℕ", Q: "ℚ", Z: "ℤ", int: "\\int_{}^{}", inf : "∞", sum : "\\sum_{}^{}", "-1": "^{-1}", ph: "ϕ", ch: "χ", ps: "ψ", leq : "≥", xi : "ξ",  geq : "≤", "/=" : "≠", "==" : "≡", "<" : "\\langle {} \\rangle", "->" : "→", "=>" : "⇒", "<=" : "⇐", "<>" : "⇔", "sq" : "\\sqrt{}" } }; if (options && options.corrections) { options.corrections = jQuery.extend(defaults.corrections, options.corrections); } var opts = jQuery.extend(defaults, options); getCaretPosition = function(oField) { var iCaretPos = 0; if (document.selection) { var oSel = document.selection.createRange(); oSel.moveStart("character", 0 - oField.value.length); iCaretPos = oSel.text.length; } else if (oField.selectionStart || oField.selectionStart == "0") { iCaretPos = oField.selectionStart; } return (iCaretPos); } function setCaretPosition (oField, iCaretPos) { if (document.selection) { var oSel = document.selection.createRange(); oSel.moveStart("character", 0 - oField.value.length); oSel.moveStart("character", iCaretPos); oSel.moveEnd("character", 0); } else if (oField.selectionStart || oField.selectionStart == "0") { oField.selectionStart = iCaretPos; oField.selectionEnd = iCaretPos; } } this.keyup(function(e) { if (32 != e.keyCode) { return; } var caretPosition = (getCaretPosition(this) - 1); if (1 > caretPosition) { return; } var valueOfField = this.value; var stringUptoCaretPosition = (valueOfField).substr(0, caretPosition); if (" " == stringUptoCaretPosition.charAt(caretPosition - 1)) { return; } var beginIndex = stringUptoCaretPosition.lastIndexOf('\\'); if (beginIndex < stringUptoCaretPosition.lastIndexOf(' ')) { return; } var stringToSearch = stringUptoCaretPosition.substring(beginIndex+1); var stringNotToSearch = stringUptoCaretPosition.substring(0, beginIndex); if (!opts.corrections[stringToSearch]) { return; } var stringToReplace = opts.corrections[stringToSearch]; stringUptoCaretPosition = stringNotToSearch+ stringToReplace; var stringFromCaretPositionUptoEnd = (valueOfField).substr(caretPosition+1); this.value = (stringUptoCaretPosition + stringFromCaretPositionUptoEnd); if (stringToReplace.indexOf("{}")!=-1 ) { setCaretPosition(this, stringUptoCaretPosition.indexOf("{}")+1); } else { setCaretPosition(this, stringUptoCaretPosition.length);}  }); }; $(document).ready(function() { $("textarea").autocorrect(); }); 
0
Joey

Wenn ich es brauche, neige ich dazu, die Mathematik in Word einzugeben und zu kopieren / einfügen. Word verwendet dieselben Makros, die LaTeX standardmäßig verwendet, und konvertiert sie automatisch in den richtigen Unicode. Und ich finde das lineare Format dort besser lesbar als LaTeX-Markup.

Wenn Ihre E-Mail-Empfänger jedoch von einem dummen Terminal oder ohne geeignete Zeichensatzunterstützung lesen (möglicherweise unter XP), möchten Sie wahrscheinlich unformatiertes LaTeX anstelle von Unicode eingeben, damit sie verstehen, was Sie sagen möchten.

Zunächst habe ich den Anwendungsfall explizit angegeben. Online-Internetforum / -chat. Es gibt heute keinen vernünftigen Webservice, der UTF-8 nicht unterstützt. Ich könnte zwar nicht in der Lage sein, die unscheinbareren Symbole zu verwenden, aber gewöhnliche Maschinen mit gängigen Unicode-Schriftarten haben viel mehr, als ich verwenden könnte. Ich habe nicht die Absicht, das Terminal zu unterstützen, obwohl xterm damit umgehen kann. Über Word: (1) Es funktioniert nur mit Office07, andere mathematische Unterstützung lahm. (2) Ich versuche diesen Kontextwechsel zu vermeiden. Was ist mit einer Chat-Sitzung? Alt-Tab + Strg + C + Strg + v ist nicht gut genug. Elazar Leibovich vor 14 Jahren 1
0
bobince

Sie können MSKLC verwenden, um ein mathematisch zentriertes Tastaturlayout zu erstellen. Zum Beispiel enthält Eurokb Symbole wie ≡≤ ≠ ± ∔π∜ in AltGr-Tastenkombinationen. (Eurokb ist wahrscheinlich nicht mathematisch schwer genug für Sie, aber es könnte Ihnen ein paar Ideen geben.)

Der einzige Nachteil ist, keine Mnemonics. Ich muss mir zehn Tastenkombinationen merken. Übrigens: Ich denke, Sie sollten eine Simulation der Tastaturbelegung Ihrer Eurokb-Karte in die Website aufnehmen, und nicht nur in der Distribution. Das wäre nützlich, um es zu testen. Elazar Leibovich vor 14 Jahren 0
(Ich tippe auf den Dokumentationslink für Großbritannien oder die USA und er ist ganz oben.) Ja, Sie müssten sich sicherlich eine logische Methode einfallen lassen, um das Layout zu arrangieren und sich daran zu erinnern, aber Sie haben ziemlich viel Spielraum mit, wenn Sie eine beliebige Kombination von zwei möglicherweise versetzten oder veränderten Schlüsseln haben können. Die griechischen Buchstaben, die Sie bereits haben, wenn Sie wie Eurokb arbeiten und dem Standard-Tastaturlayout für Griechisch folgen (http://en.wikipedia.org/wiki/Keyboard_layout#Greek). Dann könnten Sie nach Funktionen gruppieren, z. AltGr + S für gesetzte Funktionen; AltGr + S, = für ∈, AltGr + S, / für ∉ oder was auch immer. bobince vor 14 Jahren 0
0
MunHo

Ich benutze gerne ein Softwarepaket zur Eingabe von Zeichen aus Sprachen mit nicht lateinischen Zeichen, wie z. B. Chinesisch. In Sogou pinyin kann man zum Beispiel Zeichenfolgen definieren, die andere Zeichenfolgen aus Unicode-Zeichen sind. Dann schalte ich beim Tippen schnell auf Chinesisch um, schreibe alpha, wähle αaus der Liste der Vorschläge aus und schalte still meine ursprüngliche Eingabesprache zurück. Das ist sehr praktisch!

0
Ooker

Autohotkey-Skript zum Konvertieren von LaTeX-ähnlichen Eingaben in Unicode-Zeichen

"Strg + Alt + Umschalt + U" schaltet es ein und aus (sehen Sie das Symbol unten rechts an, um zu sehen, dass es sich im Suspense-Modus (Symbol S) des aktiven Modus (Symbol H) befindet.

Test: αβΓ∞¹₂ℝ

-2
Peon

Geben Sie ein kurzes LaTeX-Fragment ein und fordern Sie es auf, es zu schneiden und in http://www.numberempire.com/texequationeditor/equationeditor.php einzufügen, und drücken Sie "Rendern". Beispiel:

\begin R_s &\;=\; \frac{\widehat{\sigma}_s} \left(\sqrt_ \beta_k^2} \right) G_s \quad. \\ & \textais? Czy mo\.zna u\.zy\'c tego?} \\ & \mathbb_2 \oplus \mathbb_3 \cdots \oplus \mathbb_p,  \end 
-1. Ich fragte: "Was ich brauche, ist eine einfache Möglichkeit, mathematikbezogene Unicode-Symbole einzugeben." Sie haben mir gesagt, wie man Latex online zu einem Bild rendern kann. Ich sehe nicht, wie das, was Sie sagen, mir hilft. Es erlaubt mir nicht, das Ergebnis irgendwo einzufügen. Elazar Leibovich vor 14 Jahren 2
Ich sagte, Sie sollten "Ihren Lesern" sagen, dass sie den LaTeX auf der Website "ausschneiden und einfügen" sollen, um die Gleichungen anzuzeigen. Peon vor 14 Jahren 0
Es ist wirklich eine Belastung. Was ist, wenn ich 10 kleine Gleichungen einbeziehe? Was ist, wenn ich mit meinem Freund plaudere und er ihn über ein Smartphone liest? Elazar Leibovich vor 13 Jahren 0
Wenn dies Sie so sehr stört, warum schreiben Sie nicht eine App, die Unicode-Mechanik in Zeichen übersetzt? Schreiben Sie es für sein Smartphone (Android, PalmOS oder WebOS) und portieren Sie es auch auf Windows und Mac. Lassen Sie es auch in alle vorhandenen Apps integrieren. Wenn Sie es wirklich sehr ernst meinen, natürlich. Ansonsten können Sie ihn Latex lesen lernen. Da Ihre Symbole so begrenzt sind, können Sie eine App verwenden, die HTML versteht und daher Unicode-Escape-Sequenzen in Unicode-Zeichen darstellen kann. Peon vor 13 Jahren 0
Das Schöne an Unicode ist, dass ich die App nicht für sein Smartphone schreiben muss. Ich kann einfach die Unicode-Symbole eingeben, und sie werden ohne Anstrengung von meiner Seite auf dem Smartphone angezeigt. Eine App für Windows ist genug (und eigentlich ist es das, was ich in der Antwort geschrieben habe). Elazar Leibovich vor 13 Jahren 0