文書の言語に応じて組織モードで目次のタイトルを変更する


14

組織モードで目次のデフォルトのタイトルを変更するオプションはありますか?
私の文書は英語ではないので、目次のタイトルを翻訳したいと思います。


回答

JeanPierreが言ったように、それはエクスポート設定に関するものです。この方法でドキュメントLANGUAGEの上部に設定できますorg

#+LANGUAGE: fr

またorg、エクスポート中に生成されるすべての文字列のデフォルト言語としてフランス語が使用されます。
翻訳マッピングを担当する定数org-export-dictionaryox.elあり、使用している言語がサポートされていない場合は、そこにドロップしてeval-defunから変更を行うことができます。私の場合:

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

私はで役立つことができる素朴な関数を書いた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")

免責事項

ラテックス経由でエクスポートする場合は機能しません(OrgをPDFにエクスポートするときにラテックスが使用されます)。タイラーの答えとコメントを見てください。


どの形式にエクスポートしますか?PDF、html、または?
タイラー

@TylerI主にODTとHTMLにエクスポートします。
-foki

回答:


3

組織のマニュアルでは、エクスポート設定について次のように記述されています(emacs infoで参照できるはずですC-h i m Org m exporting)。

'言語'

一部の文字列の翻訳に使用される言語(「org-export-default-language」)。たとえば、 '#+ LANGUAGE:fr'は、Org に、クロックテーブルでFile(英語)をFichier(フランス語)に翻訳するように指示します。

私はそれを試していませんが、あなたが望むことをするはずです。


1
すべてのエクスポーターにとって十分ではありません。ラテックスエクスポートについては、@renéの回答をご覧ください。
ジョスリンデラランド

9

JeanPierreの回答が指摘したように、言語のエクスポート設定を指定する必要があります。フランス語の場合、次の行で作業を行います。

#+LANGUAGE: fr

すべての言語がサポートされているわけではなく、あなたが言ったように、どの言語がorg-latex-export-dictionary変数を表示しているかを見ることができます(emacsコマンドを使用しC-h vて変数名を書くことができます)。一部の言語は、セルビア語のように部分的にしかサポートされていないか、まったくサポートされていない場合があります。サポートされていない言語で動作させたい場合は、翻訳された文字列を変数に追加し、できればそれらを開発者に送信して、最終的に組織モードにします。

LaTexとPDF

LaTexにエクスポートしていて、Babelにテキストの使用を変更させたい場合:

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

AUTOキーワードは対応するBabel言語名に置き換えられるため、これはHTMLとlatexの両方で機能します。サポートされている言語を表示するには、org-latex-babel-language-alist変数を表示します。Babelで利用可能なすべての言語が存在するわけではありませんが、セルビア語は動作しています(テスト済みで、「Contents」は「Sadržaj」と表示されます)。

あなたの言語がorg-latex-babel-language-alistブルトン語のようにバベルで利用可能ではないが利用可能な場合、以下を使用します:

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

ブルトンがでないので、変数HTMLエクスポートのために何もしません、それが英語であってもよいが、必要であるだろう。何がされるLaTeXファイルになってしまいますからだどこ場合は英語となります存在せず、最後の言語がバベルによってデフォルトと見なされます。通りではないである私達はで終わる、ブルトンはデフォルトがあります。org-latex-export-dictionaryLANGUAGE\usepackage[breton, <default-lang>]{babel}default-langLANGUAGEbrorg-latex-babel-language-alist\usepackage[breton, ]{babel}

Bretonが追加された場合、org-latex-babel-language-alistとにかく動作します(\usepackage[breton, breton]{babel})。Bretonが含まれorg-latex-export-dictionaryている場合、HTMLでも動作するようになりました。Bretonがbabelでサポートされていなかった場合、それはとにかく動作しますが、英語であるため、この構成は、フォールバックとして英語で可能な限り指定された言語で提供します。AUTO言語を配置する場所は1つしかないので、可能であれば使用します。

Babelが "Contents"として置いているものが気に入らないが、それを使いたい場合は、次のようなことができます:

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

これはタイラーの答えに似ていますが、バベルにとってはそうです。


ありがとう!標準のPDFエクスポートでは機能しますが、Beamerスライドエクスポートでは機能しません。
-foki

4

PDFにエクスポートする場合、org-modeはLaTeXを呼び出して変換を行います。その場合、LaTeXコマンドを挿入して、次の行でTOC見出しを変更できるはずです。

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

それをファイルの先頭に置き、エクスポートを試してください。


現在、LATEX環境が設定されていないため、PDFで試すことはできません。ここでODTとHTMLにエクスポートしたいので、ここでLATEXコマンドは役に立ちません(間違っている場合は教えてください)。
-foki

1
LaTeXにエクスポートするときは、LaTeX独自の言語処理を使用した方がよいでしょう\usepackage[mylanguage]{babel}
ジャンピエール

@JeanPierre奇妙な振る舞いに気付いた。タイラーのアプローチは私にはうまくいきませんが、ジャンピエールを使用して明示された動作はさらに興味深いです-私は両方を宣言しました、#+LANGUAGE: frそして#+LATEX_HEADER: \usepackage[english]{babel}この場合、ラテックスのエクスポートは最初の設定を尊重し、フランスの対応する文字列を翻訳します。de最初に宣言する場合、frenchまたはfrenchb2番目に宣言する場合- deが使用されます。また、記述されているケースでは、エクスポーターがを使用していないことに気付きましたorg-export-dictionary。何かアイデアがありますか?
-foki

@foki申し訳ありませんが、コロンがありませんでした:。答えを修正しました。
タイラー

2
奇妙なことに、それを#+LANGUAGE: fr単独で使用すると無視されます-出力LaTeXは英語です。とを使用すると#+LATEX_HEADER: \usepackage[english]{babel}、結果のLaTeXに行が含まれ\usepackage[english, frenchb]{babel}ます。そして、#+LATEX_HEADER: \usepackage[french]{babel}設定せずに使用するだけの場合、LANGUAGE:実際に挿入されるのは\usepackage[frenchb, english]{babel}。それらはどれもPDFを変更せず、常に英語です。
タイラー

0

短い答え:PDFエクスポートの場合、パッケージtexlive-lang-frenchが必要です

org 9.1.9#+LANGUAGE: fr単独で設定し ても効果はありません。

それを実現させます

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

または

#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[AUTO]{babel}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.