2016-10-04 3 views
1

Da ich Emacs' org-Modus für wissenschaftliches Schreiben, am Anfang meiner .org Dateien, ich habe immer eine lange Liste von Latex-Exporteinstellungen der Form:Wie verwenden Sie verschiedene Schriftarten im selben (org-Modus) Puffer?

#+LATEX_HEADER: lorem ipsum dolor 
#+LATEX_HEADER: lorem ipsum dolor 
... 

oder Code-Schnipsel verstreut um das Dokument von der Form:

#+BEGIN_SRC emacs-lips 
lorem ipsum dolor 
#+END_SRC 

Alle diese Leitungen (sowohl die lorem ipsum Teil und der # + blahBlah Teil), würde Ich mag in einem Mono-Abstand Schriftart angezeigt haben, sagen Befreiungs Mono, respektiert die benutzerdefinierten Farben und benutzerdefinierte Größen, die ich anderswo definiert habe.

Ich suchte, und ich kam zu dem Schluss, dass, wie vorgeschlagen here, mit Font-Sperre wäre der Weg zu gehen. Leider konnte ich anhand von Beispielen nicht selbst herausfinden, wie man es richtig aufbaut. Ich habe versucht, die folgenden, aber entweder die regexp ist falsch, oder die Syntax ist falsch:

(add-hook 'org-mode-hook 
      (lambda() 
      (font-lock-add-keywords nil 
      '(("^\#\+.*$" 1 
       font-lock-comment-face t))))) 

Also, die Frage ist: ist dies jemand in der Lage zu arbeiten? Oder würde jemand einen anderen Weg vorschlagen?

+1

'org-mode' ist zu komplex, um einfach etwas mit' font-lock-add-keywords' hinzuzufügen. Der bessere Ansatz besteht darin, in den Quellcode zu schauen und Funktionen wie "org-set-font-lock-defaults" und eine Reihe weiterer Funktionen zu betrachten, die für die Steuerung des Font-Lock-Verhaltens in 'org-mode'-Puffern verantwortlich sind . Finden Sie heraus, welche Funktionen ein bestimmtes Verhalten steuern, das Sie ändern möchten, und implementieren Sie dann diese Änderung von Fall zu Fall, indem Sie die Funktionen und/oder Variablen ändern, die dafür verantwortlich sind. Wenn Sie einen Bereich von 'org-mode' finden, der überhaupt nicht markiert ist, wäre das etwas einfacher (* vielleicht *). – lawlist

+0

Vielen Dank für Ihren Kommentar! Von dem, was du sagst, denke ich, dass ich Hausaufgaben machen muss. Ich dachte, was ich wollte, war relativ einfach zu implementieren. Ich werde den Org-Quellcode ansehen und die Frage entsprechend aktualisieren, sobald ich weiter komme. –

Antwort

1

Ich habe versucht, etwas ähnliches für mich gehen zu lassen. Ich habe den folgenden Code erstellt, nachdem ich hier und im Emacs Stack Exchange nach Antworten gesucht habe.

(add-hook 'org-mode-hook 
      '(lambda() 
       (variable-pitch-mode 1) ;; All fonts with variable pitch. 
       (mapc 
       (lambda (face) ;; Other fonts with fixed-pitch. 
        (set-face-attribute face nil :inherit 'fixed-pitch)) 
       (list 'org-code 
         'org-link 
         'org-block 
         'org-table 
         'org-block-begin-line 
         'org-block-end-line 
         'org-meta-line 
         'org-document-info-keyword)))) 

Ich habe es mit Emacs 25.1 und Org-Modus 9.0.3 versucht.

0

Sie können immer eine Überschrift * Configuration :ARCHIVE: mit dem Tag ARCHIVE am Anfang Ihrer Datei erstellen. Dadurch wird verhindert, dass die Überschrift erweitert wird, sodass sie nicht der normalen Ansicht entspricht. The ARCHIVE tag

  • [...] öffnet sich nicht, wenn Sie so mit einem Sichtbarkeits Radfahren Befehl zu tun versuchen (siehe Sichtbarkeit Radfahren). Sie können das Archivieren von archivierten Unterbäumen mit C-TAB erzwingen oder indem Sie die Option org-cycle-open-archive-trees setzen. Auch normale Gliederungsbefehle wie show-all öffnen archivierte Teilbäume.
  • Während der Konstruktion mit spärlichem Baum (siehe Spärliche Bäume) werden Übereinstimmungen in archivierten Teilbäumen nicht angezeigt, es sei denn, Sie konfigurieren die Option org-sparse-tree-open-archive-trees.
  • Während der Konstruktion der Agendaansicht (siehe Agenda-Ansichten) wird der Inhalt der archivierten Bäume ignoriert, es sei denn, Sie konfigurieren die Option org-agenda-skip-archived-trees. In diesem Fall werden diese Bäume immer enthalten. In der Agenda können Sie va drücken, um die Archive vorübergehend zu erhalten.
  • Archivierte Bäume werden nicht exportiert (siehe Exportieren), nur die Überschrift ist. Konfigurieren Sie die Details mit der Variablen org-export-with-archive-trees.
  • Archivierte Bäume werden von der Spaltenansicht ausgeschlossen, es sei denn, die Variable org-columns-skip-archive-trees ist auf null eingestellt.

LaTeX-Export funktioniert, wenn Sie '(org-export-with-archived-trees nil) gesetzt.

Verwandte Themen