LaTeXのを使用して、どのように私は、各セクションの最後に参考文献のリストを持つことができますか? [閉まっている]
-
21-09-2019 - |
質問
私は、各セクションの参考文献を生成し、セクションの終わりにそれを持っていると思います。私は、現時点ではこれを行うと、それは、各セクションの後に完全な書誌情報を生成し、それをます。
これを行うことができるという方法はありますか?
と言います「chapterbibパッケージが提供 置くオプションsectionbib \セクションの参考文献*の代わりに、 \の章*、理にかなって何か 各参考文献があれば 章。このオプションは機能しません natbibもロードされたとき。代わりに、 natbibにオプションを追加します。 「
私は何この意味を理解していない、と私はオプションが考えたものを試してみました。具体的には、どのような「natbibにオプションを追加」とはどういう意味?
(私の最初のものが解決した後に進化して)私のその後の質問は、参照、次のセクション間のpagebreaksを持っていないことです。
ご協力いただきありがとうございます。
解決
を使用している場合は Biblatex の、などは、記事のタイトルを引用するために、あなたをにセクションまたは章の最後に参考文献を生成する、あるいはそれらは章/節によって分離されている合成参考文献を持つようにそれを使用できます。パッケージとしては、置き換えることを意図している "babelbib、bibtopic、bibunits、chapterbib、引用、inlinebib、mlbib、multibib、splitbibを。"
次の3つの方法のいずれかで、各セクションの後に参考文献を置くことができます。まず、
として、\begin{refsection}
/ \end{refsection}
のペアであなたのセクションのテキストを折り返します
\section{SomeSectionName}
\begin{refsection}
% your text goes here
\printbibliography
\end{refsection}
\section{NextSection}
第二には、各\section
文の後、あなたは前のセクションを終了し、新しいものを開始します\newrefsection
文を置きます。そして、あなたは再び、\section
文で次の\printbibliography
の前。最後に、引数としてどちらかrefsection
、none
、part
、chapter
、またはsection
を取るsubsection
パッケージオプションがあります。あなたの代わりにrefsegment
を使用するグローバルな参考文献でセクションごとにグループ化するには、あなたの書誌エントリ、順番にすべてのセグメントを印刷する\bibbysegment
を使用。 (\bibbysection
も、REF-セクションのために同様に使用することができる。)
私はあなたがノーマンの答え@あたりとして、あなたのテキストを分割する必要がありますどのくらいかわからないが、少し実験して、あなたがそれを把握することができます。
他のヒント
に加え
\usepackage[sectionbib]{natbib}
\usepackage{chapterbib}
あなたはその後、別の\include
.texファイルの各セクションを配置する必要があります。あなたは個別.texファイルにbibtex
を実行する必要があります。
N.B。 \input
が不要な改ページを避けるのではなく、\include
を使用しますが、BibTeXのは、その作業を行う必要があるとそれが.auxファイルを作成しません。私は\include
の定義を見て、私は完全に\clearpage
を無効にする以外のページ破りの機能を無効にする方法を表示されません。あなたが試みることができる。
\let\originalclearpage=\clearpage
\def\clearpage{\relax}
右のあなたの\begin{document}
後にが、あなたは手でいくつかの\originalclearpage
を配置する必要があります。
@celenius - あなたが本当にその改ページを取り除きたい場合は、ここでそれを行うには、を非常に汚いのトリックだ...
\makeatletter \let\O@@input@\@input@ \def\@noclearpage{\@ifnextchar\clearpage\@gobble\relax} \def\@input@#1{\O@@input@{#1}\@noclearpage} \let\O@@include\@include \def\@include{\expandafter\@noclearpage\O@@include} \let\O@include\include \def\include{\expandafter\@noclearpage\O@include} \makeatother
は基本的にあなたが見ることができるように、我々は、すべての\include
インスタンスを取り除くために\clearpage
マクロに手術を行うが、これを行うにはクリーンな方法、まだ本当にの汚れです。これは恐ろしく脆く、あなたは別のarticle
を使用している場合はそう\documentclass
クラスの唯一の仕事なので、あなたは運の外出ます。私は基本的に\tracingcommands=1
と\tracingmacros=1
を有効にして、私は.log
を挿入するために、その前に呼び出されるものは何でもハックできるように\clearpage
ため\@noclearpage
ファイルをgrepをすることによってこれを得ています。
chapterbib
作品にはるかに優れた外観になるし、それを正しい方法を修正し、\include
とそれが生成する別の.aux
ファイルに依存することなくなり...しかし、私は肯定的だということ - 私は、このソリューションをお勧めしません。かなり困難な作業になります。私は別の回避策が実際に含まれています...
を行わず、エミュレート\include
のは.aux
ファイルの解体にコマンドを書くことであろうと思います
EDIT:大丈夫、ここに急ごしらえだ
\makeatletter \newenvironment{auxfile}[1]{\relax \ifnum\@auxout=\@partaux \@latex@error{auxfile environments cannot be nested or \string\include d} \@eha \else\@changeaux{#1}\fi }{\immediate\closeout\@partaux\let\@auxout\@mainaux} \def\@changeaux#1{% \immediate\write\@mainaux{\string\@input{#1.aux}}% \let\@auxout\@partaux \immediate\openout\@partaux#1.aux% \immediate\write\@partaux{\relax}} \makeatother
次に、あなただけの\begin{auxfile}{foo}...\end{auxfile}
を挿入することができ、それが代わりに通常のfoo.aux
ファイルの.aux
を使用します。これはchapterbib
と完全に互換性があります。私はので、多分、私はミニパッケージとしてそれを提出するよ、CTANはこのようなものを持っていないと思います。
私はそれを試していないが、私はそれが示唆することを読んでます:
\usepackage[sectionbib]{natbib} % Note the option in the optional argument
\usepackage{chapterbib}
しかし、私はこれらの行のみの正しい順序で推測してます。