9

Org-modeとそのLaTeXエクスポートを使用する場合、参照を処理するためにBibTeXまたはBiblatexがよく使用されます。その場合、LaTeXコマンド\printbibliographyは多くの場合orgファイルに含まれています。\printbibliographyLaTeXが参照リストを書き出すことになっているorgファイルに配置されます。\printbibliography参照リストと一緒にLaTeXヘッダーを挿入することです。ほとんどの場合\printbibliography、参照リストが最後に配置されるため、ほとんどの場合、組織ファイルの最後に配置されます。これは\printbibliography、組織ファイルの最後の見出しの下に含まれることを意味します。

* Heading

  \printbibliography

それはまた、その見出しが折りたたまれたとき\printbibliographyに飲み込まれることを意味します:

* Heading...

ただし、これは\printbibliography、出力に独自の見出しが含まれているため、の意味に反します。また、飲み込んだときに新しい見出しが後に配置されると混乱し\printbibliographyます。これは、参照リストがドキュメントの最後に表示されなくなるためです。

\printbibliographyOrg-modeのセクションに飲み込まれないようにするにはどうすればよいですか?ボーナスの質問:カーソルがその後にあるときに押され\printbibliographyない限り、Org-modeが後に見出しを作成しないようにするにはどうすればよいですか?C-Ret

この問題の解決策を探しているときに、http://comments.gmane.org/gmane.emacs.orgmode/49545を見つけました。

4

5 に答える 5

3

この問題の回避策は\printbibliography、Org-mode 見出しの下に適切に配置できるように、LaTeX 見出しを返さないようにすることです。

biblatexでは\printbibliography、オプションheading=noneを指定して適切な見出しの下に配置することで、これを行うことができます。次に例を示します。

* Heading

* References

  \printbibliography[heading=none]

このようにして、参照は独自の見出しに保持でき、見出しに\printbibliography飲み込まれてしまうことは問題ではありません。

于 2012-02-16T10:55:15.557 に答える
1

1つの解決策は次のとおりです。

#+macro: printbiblio        (add extra spaces here, but cannot add comment)

* Test 2
  This is a test

* {{{printbiblio}}}
  Test text
  \printbibliography
* 
  asdf

このようにすると、ドキュメントの下部に空白の見出しが表示されます。マクロは空白のテキストブロックに展開されるため、最終的には次のようになります。

\section{Test 2}
\label{sec-1}

This is a test
\section{}

Test text
\printbibliography
\section{}

asdf

これにより、参考文献の後に誤って見出しを追加することもできなくなります。これは、それ自体が(空の)見出しだからです。それは(実際には)目次に含まれている可能性がありますが、これは残念なことですが、解決策は最悪の場合、エクスポート後にファイルから空の見出しを削除する(または変換する前に手動で実行する)ことになると思います。 PDF)。

于 2012-02-03T22:07:24.650 に答える
1

以下は軽くテストされていますが、タブとシフトタブを使用して物事を隠したり表示したりできます。これらは私が使用する唯一の非表示および表示コマンドであるため、他のコマンドを使用する場合は、他の方法でアドバイスまたは修正する必要がある場合があります。

もちろん、好きなように変更できorg-footer-regexpます。アドバイスを使用する必要がないことを望んでいましたがorg-end-of-subtree、最後の見出しが非表示ではないと見なされるため、タブで循環することはありません。非表示にしてから再表示org-cycle-hookします。org-end-of-subtree実行する前に呼び出すorg-pre-cycle-hookので、それもオプションではありません。

(defvar org-footer-regexp "^\\\\printbibliography\\[.*\\]$"
  "Regexp to match the whole line of the first line of the footer which should always be shown.")

(defun show-org-footer (&rest ignore)
  (save-excursion
    (goto-char (point-max))
    (when (re-search-backward org-footer-regexp nil t)
      (outline-flag-region (1- (point)) (point-max) nil))))

(add-hook 'org-cycle-hook 'show-org-footer)
(add-hook 'org-occur-hook 'show-org-footer)

(defadvice org-end-of-subtree (after always-show-org-footer
                                     ()
                                     activate)
  (when (>= (point) (1- (point-max)))
    (re-search-backward org-footer-regexp nil t)
    (setq ad-return-value (point))))
于 2012-02-16T08:01:14.820 に答える
0

別の解決策は、次のように「参照」という名前の見出しの下に参考文献を配置することです。

* Heading
Some text
* References
\printbibliography

\section{References}これをemacs initファイルに追加して、結果のlatexファイルからを削除します

(defun org-export-latex-remove-references-heading (contents backend info)
    (if (not (eq backend 'latex))
        contents
      (replace-regexp-in-string "\\\\section\\*?{References}\\s-*\\\\label{.*?}" "" contents)
      ))

(add-hook 'org-export-filter-final-output-functions 'org-export-latex-remove-references-heading)

これは、「参照」という名前の見出しが 1 つしかないことを前提としており、すべての見出しが置き換えられることに注意してください。また、セクションが次の形式であることも前提としています。

\section{References}
\label{<any_string>}
\printbibliography

他の形式については、関数の正規表現を変更する必要がありorg-export-latex-remove-references-headingます。

于 2014-11-27T07:19:04.000 に答える