Wenn ich so etwas wie *shrug*
im Org-Modus schreibe , wird es automatisch als fetter Text angezeigt . Wie kann ich verhindern, dass *shrug*
das beim Exportieren tatsächlich wörtlich erscheint?
Bearbeiten:
Ich möchte weiterhin in der Lage sein, Fettschrift zu verwenden (ohne die Standard-Sternsyntax für Fettschrift ändern zu müssen), und es sollte keine Rolle spielen, in welches Dateiformat meine Organisationsdatei exportiert wird, z. B. sollte es für Markdown und HTML funktionieren Export.
Das sind einige wichtige Dinge, deshalb ist es fett geschrieben. Aber für etwas anderes habe ich keine Ahnung * Achselzucken *.
\ast{}shrug\ast{}
oder\star{}shrug\star{}
, ähnlich, mit HTML können Sie Entity - Codierung verwenden:a;
, oder wenn das Hinzufügen Leerzeichen vor oder nach dem Sternchen eine Option, auch das funktionieren würde.code
Code in ein -Tag eingeschlossen wird und Abschriften Backticks enthalten. Ich möchte, dass es überhaupt nicht formatiert wird.\ast{}shrug\ast{}
von wvxvw erwähnte ist wahrscheinlich die beste Option. Es exportiert nach HTML als∗shrug∗
und nach Latex unter$\ast$shrug$\ast$
Verwendung der entsprechenden Zeicheneinheiten.org-toggle-pretty-entities
Zeigt sie als UTF8-Zeichen im Organisationspuffer an.Antworten:
Diese Antwort wurde nach kollektiven Vorschlägen in der GNU-Liste für den emacs-org-mode inspiriert , die
org-entity
(C-h i g
(org) Special symbols
)\ast{}
anstelle von Leerzeichen mit null Breite zu verwenden (die ich in meiner anderen Antwort hier vorgeschlagen habe ).Im Folgenden finden Sie eine allgemeine Lösung, bei der der Benutzer sich die Organisationsentitäten für verschiedene Symbole nicht merken muss. Es fügt die Organisationsentität (falls verfügbar) ein, wenn der Benutzer dies tut
C-u SYMBOL
. arbeitet fürC-u *
,C-u /
,C-u =
etc.Wenn der Benutzer eingibt
C-u *
,\ast{}
wird die folgende Meldung im Echobereich angezeigt.Wenn
org-pretty-entities
eingestellt istt
oben, das eingefügt\ast{}
wird , angezeigt , wie*
.Existiert
org-entity
für ein Zeichen X kein a und tut der BenutzerC-u
X , wird X einfach viermal eingefügt (wieC-u
normalerweise).quelle
\*thisisnotbold\*
gibt?org-entities
Dokumentation.Verwenden des ZERO WIDTH SPACE-Unicode-Zeichens
Sie können die fett gedruckte Hervorhebungsanalyse durch Hinzufügen eines Leerzeichens mit der Breite Null (angezeigt durch [ZWS] in den folgenden Ausschnitten) vor dem ersten Sternchen oder nach dem zweiten Sternchen fehlschlagen.
Die beiden folgenden Snippets wurden in meinen Tests problemlos in HTML exportiert:
[ZWS] vor dem ersten Stern
[ZWS] nach dem zweiten Stern
Sie können den ZERO WIDTH SPACE (Unicode-Name) eingeben, indem Sie dies tun
C-x 8
RET200b
RET.Ich benutze dies sehr oft, deshalb habe ich dies gebunden
C-x 8 0
.Aktualisieren
Gemäß der Diskussion in der Mailingliste im emacs-org-Modus wird die Verwendung von Nicht-ASCII-Zeichen für das Escape nicht empfohlen.
org-entities
sollte stattdessen verwendet werden, falls zutreffend. Auch ich stimmte dem zu und fand eine andere Lösung , die das Einfügenorg-entities
(C-u *
in diesem Fall) sehr einfach macht .quelle
[email protected]
Mailingliste gesetzt. Bei Interesse können Sie die Diskussion hier verfolgen / ergänzen .\ast{}
in den Dateien. Meine andere Lösung macht die Eingabe einfach\ast{}
schneller und einfacher zu merken.Wenn Sie wörtlich sagen, dass Sie im exportierten LaTeX tatsächlich ein Markup verwenden möchten, können Sie einfach verwenden
=*shrug*=
. Wenn Sie jedoch nur möchten, dass es exportiert wird*shrug*
, und dies die ganze Zeit tun möchten, würde ich Filter empfehlen . Wenn Sie dies jedoch nur für einige Instanzen von benötigen*shrug*
, sollten Sie die von @wvxvw vorgeschlagene Alternative verwenden. Sie könnten dies sauber mit Makros tun . Es folgen einige Beispiele.Filter
Im Wesentlichen sucht der obige Filter nach dem
\textbf{..}
Markup in der transkodierten Zeichenfolge und ersetzt es durch\ast{}..\ast{}
, ohne den Inhalt zu ändern{..}
. Ich habe den regulären Ausdruck und die Ersetzungszeichenfolge nicht getestet, daher kann es zu Fehlern kommen, aber Sie haben die Idee. Um auch andere Backends abzudecken, kann man zusätzliche Snippets wie dieses einfügen:Gleiche Einschränkung gilt für den regulären Ausdruck oben.
Makros
Org source:
exportiert nach LaTeX als:
und zu HTML als:
Natürlich können Sie dem Makro beliebig viele Backends hinzufügen.
Bearbeiten: Wie Kaushal in den Kommentaren ausführt, ist das Export-Snippet für Latex in diesem Fall optional. Ich bevorzuge es jedoch, sie zu verwenden, wenn nackter Latex betroffen ist, da ich es ziemlich schwierig finde, die Liste
org-entities
und die spezifischen Regeln für die Identifizierung von nacktem Latex in der Org-Quelle zu verfolgen .Hinweis:
HTML
, daher kann es in den jeweiligen Bits zu Fehlern kommen.quelle
#+macro: nobold \ast{}$1\ast{}
?ast
eines der Mitglieder ist dieorg-entities
Liste, die angibt , welche der Latex, html, ascii, etc Exporte sollte wie folgt aussehen:("ast" "\\ast" t "∗" "*" "*" "*")
. Die Reihenfolge der Elemente in dieser Liste lautet "Name, LaTeX-Ersetzung, LaTeX-Mathematik, HTML-Ersetzung, ASCII-Ersetzung, Latin1-Ersetzung, utf-8-Ersetzung".Dies wird durch die Variable org-emphasis-alist gesteuert und kann leicht geändert werden.
org-emphasis
.customize-group
und suchen Sie nach org-emphasisquelle