
参考文献の @misc エントリを学術会議の出版物の後の最後に移動して、それらのエントリの重みを下げたいと思っています。それ以外の点では、abbrvnat が参考文献項目を表示する方法が気に入っています。また、引用番号と圧縮を取得するために natbib も使用しています。
デフォルトでは、引用は著者名で並べ替えられます (これは問題ありません)。著者名が利用できない場合は、参考文献の並べ替えフィールドとして何か他のもの (タイトルなど) が使用されているようです。
相対的な順序を維持しながら、すべての @misc 参照をドキュメントの最後に送信する最も簡単な方法は何ですか?
サンプルドキュメント:
\documentclass[11pt]{article}
\usepackage[hyphens]{url}
\usepackage[numbers,sort&compress]{natbib}
\begin{document}
Articles: \cite{bogus, greenwade93}
Website: \cite{example}
\bibliographystyle{abbrvnat}
\bibliography{biblio}
\end{document}
\bibliographystyle{myabbrvnat}
\bibliography{biblio}
例の文献:
@misc{example,
title = {{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
note = {Accessed: June 2017.}
}
@article{bogus,
aurhor = {Bogus Redwade},
title = {A Bogus Article},
year = {1993},
}
@article{greenwade93,
author = {George D. Greenwade},
title = {The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})},
year = {1993},
journal = {TUGBoat},
volume = {14},
number = {3},
pages = {342--351}
}
この例では、Web サイトをリストの最後に移動したいと思います。Web サイトが複数ある場合は、それらの相対的な順序を維持する必要があります。
答え1
参考文献ファイルを変更しても構わないのであれば、よく知られた\noopsort
回避策を使うことができます(https://tex.stackexchange.com/search?q=noopsort) を使用して、その他のエントリを残りのエントリの後に並べ替えます。並べ替えは作成者に基づいて実行されるため、その他のエントリのタイトル フィールドも作成者に変更する必要があります。このソリューションでは、.bst
-file を変更する必要はありません。
例:
@PREAMBLE{ {\providecommand{\noopsort}[1]{}} }
@misc{example,
author = {{\noopsort{zzz-example}}{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
note = {Accessed: June 2017.}
}
結果:
あるいは、biblatex
参考文献ファイルを変更せずに、タイプごとに別々の参考文献セクションを印刷することで、これを使用することもできます。https://tex.stackexchange.com/a/6966:
\printbibliography[nottype=misc,title={References}]
\vspace{-6mm}
\printbibliography[heading=none,type=misc]
ここでの小さな問題は、2 番目の参考文献セクションでは、見出しがなくても、削除する必要がある余分なスペースが導入されることです (たとえば、負の を使用vspace
)。
答え2
1 つの方法を見つけましたが、BST ファイルを編集する必要があります。やりすぎのように感じます。ただし、bst ファイルはソートを担当しているようです。
まず、エントリのキーと思われるものを変更してみましたが、たとえば@misc{foo,...}
に変更してみました@misc{z-foo,...}
が、まったく効果がなかったので、さらに深く調べました。
ステップ1. bstファイルを編集する
- abbrvnat.bstをプロジェクトディレクトリ(
$ cp /usr/share/texlive/texmf-dist/bibtex/bst/natbib/abbrvnat.bst ./myabbrtnat.bst
)にコピーします ファイルの先頭に、「著者と出版年が同一の作品は、自然な順序を保つために引用キーでさらにソートされます」と書かれていることに注目してください。Abbrvnat はまず著者でソートします。これはおそらく、タプルでソートすることを意味します
(author(s), year, key)
。コピーしたファイルを編集します。
- セクションで
ENTRY
、 の後に、独自の行でkey
という新しいフィールドを追加します。sortkey
- author.sort 関数があります。これを変更して、author フィールドを上書きするために 'sortkey' フィールドを処理しました。
- セクションで
(引用の種類によっては、著者による並べ替えを行わないものもあります (編集者による並べ替えなど)。そのため、参考文献によっては、他の場所でもこれを再現する必要がある場合があります)
FUNCTION {author.sort}
{ sortkey empty$
{ author empty$
{ key empty$
{ "to sort, need author or key in " cite$ * warning$
""
}
{ key sortify }
if$
}
{ author sort.format.names }
if$
}
{ sortkey sortify }
if$
}
ステップ2.修正したBSTを使用する
メインのLaTeXファイルで、次のように変更します。
\bibliographystyle{myabbrvnat}
順序を変更する必要がある参考文献項目ごとに、
sortkey
順序を決定するために使用する新しい値を持つフィールドを追加します。最後に送信したい場合は、エントリの名前の前に「zz-」を付けます。
テキストで:
...
Website: F~\cite{example-f}, E~\cite{example-e}, A~\cite{example-a}
...
そして書誌:
@misc{example-a,
sortkey = {axample}, % will go before others - starts with 'a'
title = {{Axample.org Home Page}},
howpublished = {\url{http://example.org/}},
}
@misc{example-e,
sortkey = {zzz-example}, % send to the back. prefix with 'zzz-'
title = {{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
}
@misc{example-f,
sortkey = {zzz-fxample}, % send to the back. prefix with 'zzz-'
title = {{Fxample.org Home Page}},
howpublished = {\url{http://example.org/}},
}
生産: