LaTeXのを使用して、どのように私は、各セクションの最後に参考文献のリストを持つことができますか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/2503555

  •  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の前。最後に、引数としてどちらかrefsectionnonepartchapter、または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}

しかし、私はこれらの行のみの正しい順序で推測してます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top