Замена latex символами unicode

часто, во время разговора или по электронной почте, или на форуме, я хотел бы ввести некоторую математику, но мне не нужна полная поддержка уравнения. Символов Юникода должно быть достаточно.

то, что мне нужно, это простой способ ввести математические символы юникода. Поскольку я уже знаю latex, имеет смысл использовать мнемонику символов latex для ввода математических символов.

что я в настоящее время сделал, это написать скрипт AutoHotKey, который автоматически заменяет latexSymbol соответствующим символ Юникода, используя "hotstrings" с клавиатуры. Однако hotstrings аутохотки-AutoHotkey оказалось нестабильным для многих строк. Наличие нескольких десятков строк приведет к тому, что AHK время от времени не сможет распознать строки.

любое другое решение? (Нет, Alt+unicode недостаточно удобен)

Это мое АХК скрипт. The 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
9
задан KronoS
07.02.2023 13:26 Количество просмотров материала 3318
Распечатать страницу

6 ответов

Я использую букмарклет javascript для ввода символов unicode в math.stackexchange.com. Mathjax отображает большинство unicode так же, как соответствующие макросы latex. Например $ℝ$ и $\mathbb{R}$ даст тот же результат. Мне нравится, как код tex остается более компактным и читаемым с символами unicode.

Я думаю, что этот код может делать то, что вы хотите. Мне нравится использовать не слишком много нажатий клавиш, поэтому вместо \alpha Я использую \a для производства α. Вы можете изменить этот сценарий собственные потребности, а затем преобразовать его в букмарклет, используя этот сайт, например:http://jasonmillerdesign.com/Free_Stuff/Instant_Bookmarklet_Converter

если вы хотите использовать этот скрипт на веб-сайте без jquery, то сначала вам нужно запустить этот букмарклет: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();
});
3
отвечен Kasper 2023-02-08 21:14

Если мне это нужно, я просто набираю математику в Word и копирую / вставляю. Word использует те же макросы, что и LaTeX по умолчанию, и автоматически преобразует их в надлежащий Юникод. И я нахожу линейный формат там более читаемым, чем разметка LaTeX.

тем не менее, если ваши почтовые получатели читают из какого-то тупого терминала или без надлежащей поддержки шрифтов (на XP, возможно), вы, вероятно, хотите просто ввести raw LaTeX вместо Unicode, чтобы позволить им понять, что вы хотите сказать.

0
отвечен Joey 2023-02-08 23:31

можно использовать MSKLC для создания математически ориентированной раскладки клавиатуры. Например eurokb включает в себя символы, такие как ≤ ≤ ≤ ±π π π на AltGr мертвых комбинаций клавиш. (eurokb, вероятно, недостаточно тяжелый для вас, но это может дать вам некоторые идеи.)

0
отвечен bobince 2023-02-09 01:48

мне нравится использовать программный пакет для ввода символов из языков с нелатинскими символами, таких как китайский. В, например, Sogou pinyin можно определить строки как другие строки символов Юникода. Затем, при наборе текста, я быстро переключаюсь на китайский, пишу alpha выберите α из списка предложений и молча переключиться обратно на мой исходный язык ввода. Это действительно удобно!

0
отвечен MunHo 2023-02-09 04:05

Autohotkey-скрипт для конвертации LaTeX-подобных входных данных в Unicode символы

"Ctrl + Alt + Shift+U" включает и выключает его (посмотрите на нижний правый значок, чтобы увидеть, что он находится в режиме ожидания (значок S) активного режима (значок H).

тест:∞αβΓ 1₂ℝ

0
отвечен Ooker 2023-02-09 06:22

введите короткий фрагмент LaTeX и скажите им вырезать и вставить его вhttp://www.numberempire.com/texequationeditor/equationeditor.php и нажмите "Render". Пример:

\begin{align*}
R_s &\;=\; \frac{\widehat{\sigma}_s}{K} \left(\sqrt{1 - \sum^{15}_{k=1} \beta_k^2} \right) G_s
\quad.
\
& \text{Parlez-vous Fran{\c c}ais? Czy mo\.zna u\.zy\'c tego?}
\
& \mathbb{Z}_2 \oplus \mathbb{Z}_3 \cdots \oplus \mathbb{Z}_p,  
\end{align*}
-2
отвечен Peon 2023-02-09 08:39

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх