Ändern Sie den Titel des Inhaltsverzeichnisses im Org-Modus entsprechend der Dokumentsprache


14

Gibt es eine Option, die den Standardtitel des Inhaltsverzeichnisses im Org-Modus ändert?
Mein Dokument ist nicht in Englisch, daher möchte ich den Titel des Inhaltsverzeichnisses übersetzen.


Antworten

Wie JeanPierre sagte, geht es um Exporteinstellungen. Sie können LANGUAGEden oberen Rand Ihres orgDokuments folgendermaßen festlegen :

#+LANGUAGE: fr

Und Französisch wird als Standardsprache für alle Zeichenfolgen verwendet, orgdie beim Export erzeugt werden.
Die Konstante, die für die Übersetzungszuordnungen verantwortlich ist, ist org-export-dictionaryin. ox.elWenn Ihre Sprache nicht unterstützt wird, können Sie sie dort eval-defunablegen und dann die Änderung zulassen. In meinem Fall:

(defconst org-export-dictionary 
    ...   
    ("Table of Contents"
         ...
         ("sr" :html "Sadržaj" :utf-8 "Sadržaj")
         ...)
    ...)

Ich habe eine naive Funktion geschrieben, die nützlich sein kann in init.el:

(defun org-export-translate-to-lang (term-translations &optional lang)
  "Adds desired translations to `org-export-dictionary'.
   TERM-TRANSLATIONS is alist consisted of term you want to translate
   and its corresponding translation, first as :default then as :html and
   :utf-8. LANG is language you want to translate to."
  (dolist (term-translation term-translations)
    (let* ((term (car term-translation))
           (translation-default (nth 1 term-translation))
           (translation-html (nth 2 term-translation))
           (translation-utf-8 (nth 3 term-translation))
           (term-list (assoc term org-export-dictionary))
           (term-langs (cdr term-list)))
      (setcdr term-list (append term-langs
                                (list
                                 (list lang
                                       :default translation-default
                                       :html translation-html
                                       :utf-8 translation-utf-8)))))))

(org-export-translate-to-lang '(("Table of Contents"
                                 "Sadržaj"
                                 "Sadržaj"
                                 "Sadržaj")
                                ("Another term"
                                 "coilogji"))
                              "sr")

Haftungsausschluss

Es funktioniert nicht, wenn Sie über Latex exportieren möchten (Latex wird verwendet, wenn Org als PDF exportiert). Sehen Sie sich die Antwort und Kommentare von Tyler an.


In welches Format exportieren Sie? PDF, HTML oder?
Tyler

@ TylerI Ich exportiere hauptsächlich nach ODT und HTML.
Foki

Antworten:


3

Das Org- Handbuch enthält folgende Informationen zu den Exporteinstellungen (Sie sollten sie in den Emacs-Informationen durchsuchen können C-h i m Org m exporting):

'SPRACHE'

Die Sprache, die zum Übersetzen einiger Zeichenfolgen verwendet wird ('org-export-default-language'). Beispiel: '# + LANGUAGE: fr' weist Org an, File (englisch) in Fichier (französisch) in der Uhrentabelle zu übersetzen.

Ich habe es nicht ausprobiert, aber ich gehe davon aus, dass es tun sollte, was Sie wollen.


1
Nicht für alle Exporteure ausreichend, für Latex-Exporte empfehlen wir @ rené answer.
Jocelyn delalande

9

Wie die Antwort von JeanPierre gezeigt hat, müssen Sie die Sprachexporteinstellung angeben. Für Französisch erledigt die nächste Zeile die Arbeit:

#+LANGUAGE: fr

Es werden nicht alle Sprachen unterstützt und wie Sie sagten, können Sie sehen, welche die org-latex-export-dictionaryVariable anzeigen (Sie können den Befehl emacs verwenden und C-h vdann den Variablennamen schreiben). Einige Sprachen werden möglicherweise nur teilweise oder gar nicht unterstützt, beispielsweise Serbisch. Wenn Sie möchten, dass es mit einer nicht unterstützten Sprache funktioniert, fügen Sie die übersetzten Zeichenfolgen der Variablen hinzu und senden Sie sie vorzugsweise an die Entwickler, damit der Organisationsmodus beendet wird.

LaTex und PDF

Wenn Sie nach LaTex exportieren und Babel den Text ändern lassen möchten, gehen Sie wie folgt vor:

#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[AUTO]{babel}

Dies funktioniert sowohl in HTML als auch in Latex, da das Schlüsselwort AUTO durch den entsprechenden Namen der Babel-Sprache ersetzt wird. Um zu sehen, welche Sprachen unterstützt werden, sehen Sie sich die org-latex-babel-language-alistVariable an. Es sind nicht alle Sprachen in Babel verfügbar, aber Serbisch ist und funktioniert (getestet und "Inhalt" wird als "Sadržaj" angezeigt).

Wenn Ihre Sprache nicht in Englisch ist org-latex-babel-language-alist, aber wie Bretonisch in Englisch verfügbar ist, verwenden Sie:

#+LANGUAGE: br
#+LATEX_HEADER: \usepackage[breton]{babel}

Da Breton nicht in org-latex-export-dictionaryder LANGUAGEVariablen ist, wird nichts für den HTML-Export getan, es wird in Englisch sein, ist aber notwendig. Das liegt daran , was in der LaTeX - Datei wird am Ende sein wird , \usepackage[breton, <default-lang>]{babel}wo default-langEnglisch sein wird , wenn LANGUAGEnicht vorhanden , und die letzte Sprache ist die Standardeinstellung von Babel betrachtet. Da brnicht in ist org-latex-babel-language-alistwir am Ende mit \usepackage[breton, ]{babel}, gibt es Breton die Standardeinstellung.

Wenn Breton hinzugefügt org-latex-babel-language-alistwird, funktioniert es trotzdem ( \usepackage[breton, breton]{babel}). Wenn Bretonisch enthalten ist, org-latex-export-dictionaryfunktioniert es jetzt auch in HTML. Wenn Bretonisch nicht von Babel unterstützt wird, funktioniert es trotzdem, aber es ist auf Englisch. Diese Konfiguration gibt Ihnen so viel wie möglich in der angegebenen Sprache mit Englisch als Ersatz. Ich benutze lieber, AUTOwenn verfügbar, da es nur einen Platz gibt, um die Sprache zu setzen.

Wenn Ihnen das, was Babel als "Inhalt" ausgibt, nicht gefällt, Sie es aber dennoch verwenden möchten, können Sie Folgendes tun:

#+LANGUAGE: en
#+LATEX_HEADER: \usepackage[AUTO]{babel}
#+LATEX_HEADER: \addto\captionsenglish{\renewcommand\contentsname{Outline}}

Dies ist wie die Antwort des Tyler, nur für Babel.


Vielen Dank! Es funktioniert für den Standard-PDF-Export, aber nicht für den Beamer-Folien-Export.
Foki

4

Wenn Sie nach PDF exportieren, ruft der Organisationsmodus LaTeX auf, um die Konvertierung durchzuführen. In diesem Fall sollten Sie in der Lage sein, den LaTeX-Befehl einzufügen, um die TOC-Überschrift mit der folgenden Zeile zu ändern:

#+LATEX_HEADER: \renewcommand*{\contentsname}{My Table of Contents Header}

Schreiben Sie das oben in Ihre Datei und versuchen Sie den Export.


Ich habe derzeit keine LATEX-Umgebung festgelegt, daher kann ich es nicht mit PDF versuchen. Jetzt möchte ich nach ODT und HTML exportieren, damit der LATEX-Befehl hier nicht weiterhilft (sag mir, wenn ich falsch liege).
Foki

1
Wenn Sie nach LaTeX exportieren, sollten Sie den LaTeX-eigenen Umgang mit Sprachen verwenden \usepackage[mylanguage]{babel}.
JeanPierre

@ JeanPierre Ich habe gerade ein seltsames Verhalten bemerkt. Tyler Ansatz für mich tun nicht Arbeit, sondern Verhalten manifestiert mit Jean - Pierre ist noch interessanter - Ich habe beide erklärt, #+LANGUAGE: frund #+LATEX_HEADER: \usepackage[english]{babel}in diesem Fall Latex Export Hinsicht die erste Einstellung und übersetzt Strings in Französisch - Pendants. Wenn ich dein der ersten und frenchoder frenchbin der zweiten deklariere - dewird verwendet. Mir ist auch aufgefallen, dass der Exporteur in den beschriebenen Fällen org-export-dictionaryeher keine Latex-Sprachen verwendet. Hast du eine Idee?
Foki

@foki sorry, mir hat ein Doppelpunkt gefehlt :. Ich habe meine Antwort korrigiert.
Tyler

2
Seltsam, wenn ich #+LANGUAGE: fres alleine benutze , wird es ignoriert - die Ausgabe von LaTeX ist in Englisch. Wenn ich es und benutze #+LATEX_HEADER: \usepackage[english]{babel}, enthält das resultierende LaTeX die Zeile \usepackage[english, frenchb]{babel}. Und wenn ich nur nutze #+LATEX_HEADER: \usepackage[french]{babel}, ohne einzustellen LANGUAGE:, was tatsächlich eingefügt wird, ist \usepackage[frenchb, english]{babel}. Keiner von ihnen ändert das PDF, es ist immer Englisch.
Tyler

0

Kurze Antwort: Für PDF-Exporte wird das Paket texlive-lang-french benötigt

org 9.1.9: Die Einstellung #+LANGUAGE: fralleine hat keine Auswirkung.

mach es möglich mit

#+LATEX_HEADER: \usepackage[frenchb]{babel}

oder

#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[AUTO]{babel}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.