Kuruluş Modunda [veya] köşeli ayraç içeren bağlantılar yapabilir miyim?


13

Bir Kuruluş modu bağlantısının açıklamasına eklenebilecek şekilde köşeli parantezlerden ( [ve ]) kaçmak için bir yol var mı ? Aşağıdaki bağlantı çalışmaz, örneğin:

[[http://mathoverflow.net/questions/195203/automorphisms-of-ideals-of-mathbbct][Automorphisms of ideals of C[t]]]

Ters eğik çizgi ( \[) kullanmasını veya bir kuruluş varlığı olacağını umuyordum , ancak durum böyle görünmüyor.


1
Sorun, Kuruluştaki bağlantıların normal ifadeler kullanılarak ayrıştırılması ve bu görevin, normal ifadelerle ayrıştırılamayan özyineleme ile eşdeğer olmasıdır. Yalnızca bir seviye yineleme eklemek isterseniz, yama ile yapılabilir org-make-link-regexps, ancak genel olarak mevcut kurulumla yapılamaz.
wvxvw

Kaçış yapılabilir. İlgili regexp'i org-bracket-link-regexpbununla başa çıkmaya çalışabilirsiniz , ancak org-insert-linkyine de köşeli parantezleri parantezlerle değiştirmek istiyor ve başka sonuçları olabilir.
politza

Oh, sadece hatırladım \[ve kaçan köşeli parantezler değil, \]görüntülenen denklemler vermeliyim $$.
Omar

Yanıtlar:


5

Yine de hoş olmayan bir çalışma çözümü, kuruluş modu Makrolarını kullanmaktır .

Aşağıdaki makrolar, html veya latekse dışa aktarılırken [ve ASCII kodlarıyla değiştirilir ].

# Square Bracket Open [
#+MACRO: BO @@latex:\char91@@ @@html:[@@
# Square Bracket Close ]
#+MACRO: BC @@latex:\char93@@ @@html:]@@

[[http://emacs.stackexchange.com][{{{BO}}}Emacs SE{{{BC}}}]]

Referans


Teşekkürler, ancak org modunu arabellek içinde parantez haline getirmeye ikna etmeyi umuyordum. Çözümünüz elbette ihracat için işe yarıyor.
Omar

HTML dışa aktarma için çalışmaz.
Alex

3

Aşağıda, org-make-link-regexpaçıklaması içinde köşeli parantezlerin bir iç içe geçme düzeyine izin verecek şekilde değiştirilmiş sürümü bulunmaktadır :

(defun org-make-link-regexps ()
  "Update the link regular expressions.
This should be called after the variable `org-link-types' has changed."
  (setq org-link-types-re
    (concat
     "\\`\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):")
    org-link-re-with-space
    (concat
     "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^" org-non-link-chars "]*"
     "[^" org-non-link-chars " ]\\)>?")
    org-link-re-with-space2
    (concat
     "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^\t\n\r]*"
     "[^" org-non-link-chars " ]\\)>?")
    org-link-re-with-space3
    (concat
     "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^\t\n\r]*\\)")
    org-angle-link-re
    (concat
     "<\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^" org-non-link-chars "]*"
     "\\)>")
    org-plain-link-re
    (concat
     "\\<\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     (org-re "\\([^ \t\n()<>]+\\(?:([[:word:]0-9_]+)\\|\\([^[:punct:] \t\n]\\|/\\)\\)\\)"))
    ;;   "\\([^]\t\n\r<>() ]+[^]\t\n\r<>,.;() ]\\)")
    org-bracket-link-regexp
    ;; "\\[\\[\\([^][]+\\)\\]\\(\\[\\([^][]+\\)\\]\\)?\\]"
    "\\[\\[\\([^][]+\\)\\]\\(\\[\\([^[]*?\\[[^]]*?\\][^]]*?\\|[^][]+\\)\\]\\)?\\]"
    org-bracket-link-analytic-regexp
    (concat
     "\\[\\["
     "\\(\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):\\)?"
     "\\([^]]+\\)"
     "\\]"
     "\\(\\[" "\\([^[]*?\\[[^]]*?\\][^]]*?\\|[^]]+\\)" "\\]\\)?"
     ;; "\\(\\[" "\\([^]]+\\)" "\\]\\)?"
     "\\]")
    org-bracket-link-analytic-regexp++
    (concat
     "\\[\\["
     "\\(\\(" (mapconcat 'regexp-quote (cons "coderef" org-link-types) "\\|") "\\):\\)?"
     "\\([^]]+\\)"
     "\\]"
     "\\(\\[" "\\([^]]+\\)" "\\]\\)?"
     "\\]")
    org-any-link-re
    (concat "\\(" org-bracket-link-regexp "\\)\\|\\("
        org-angle-link-re "\\)\\|\\("
        org-plain-link-re "\\)")))

Ancak yukarıda belirtildiği gibi, bu bağlantı düzenleme sorununu çözmez (Org yine de parantezleri parantezle değiştirmek isteyecektir.) Bu aynı zamanda bir parantez grubunun yalnızca bir yuvalama düzeyini işleyebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.