我正在写一篇限制为两页的文档。我试图找到一种方法,使参考书目中的每个引文不从新行开始。这样就足以满足我的页数限制。
我使用 natbib 和 bibtex 的“超级”(自然风格)引用选项。我尝试了在
以获得此行为。当与作者年份样式的引用一起使用时,它可以正常工作,但与 super(数字)选项一起使用时会产生尴尬的缩进(请参阅下面条目之间的非均匀间距):
有谁知道如何配置,以便参考书目中的条目看起来像这样齐平:
但是用数字代替了文中引用的每个参考资料中的点?
谢谢!
编辑:
我使用以下命令调用 natbib:
\usepackage[super,sort&compress]{natbib}
然后调用:
\bibliographystyle{apj_w_etal_3auth}
\usepackage{paralist}
\renewenvironment{thebibliography}[1]{%
\textsc{\textbf{References:}}
\let\par\relax\let\newblock\relax%
\inparaitem[{[}1{]}]}{\endinparaitem}
以下是样式文件:
https://gist.github.com/dannygoldstein/b8f77d3e4853ec983209aa8850898fb2
注意,这是略微修改的版本https://github.com/keflavich/tex_compact_bib。我从原始 bst 文件中删除了“SORT”命令,以使引用不按字母顺序显示。
答案1
解决方案简介
\hfil
s的参数中实际\item
呈现双项的负责水平空白。
bibitems 的渲染由命令完成
\@lbibitem
。因此,我们需要重新定义它。一种方法是使用
\renewcommand
。但毫无疑问,更聪明的方法是使用
\patchcmd
。
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@lbibitem}{\item[\hfil\NAT@anchor{#2}{\NAT@num}]}{\item[\NAT@anchor{#2}{\NAT@num}]}{}{}
\makeatother
完整代码
\documentclass{article}
\bibliographystyle{apj_w_etal_3auth}
\usepackage[super,sort&compress]{natbib}
\usepackage{paralist}
\renewenvironment{thebibliography}[1]{%
\textsc{\textbf{References:}}
\let\par\relax\let\newblock\relax%
\inparaitem[{[}1{]}]}{\endinparaitem}
\usepackage{times}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@lbibitem}{\item[\hfil\NAT@anchor{#2}{\NAT@num}]}{\item[\NAT@anchor{#2}{\NAT@num}]}{}{}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{einstein,
author = "Albert Einstein",
title = "{Zur Elektrodynamik bewegter K{\"o}rper}. ({German})
[{On} the electrodynamics of moving bodies]",
journal = "Annalen der Physik",
volume = "322",
number = "10",
pages = "891--921",
year = "1905",
DOI = "http://dx.doi.org/10.1002/andp.19053221004"
}
@book{latexcompanion,
author = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
title = "The \LaTeX\ Companion",
year = "1993",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts"
}
@article{belloche2014detection,
title={Detection of a branched alkyl molecule in the interstellar medium: iso-propyl cyanide},
author={Belloche, Arnaud and Garrod, Robin T and M{\"u}ller, Holger SP and Menten, Karl M},
journal={Science},
volume={345},
number={6204},
pages={1584--1587},
year={2014},
publisher={American Association for the Advancement of Science}
}
@article{mcnally1989anxiety,
title={Is anxiety sensitivity distinguishable from trait anxiety? Reply to Lilienfeld, Jacob, and Turner (1989).},
author={McNally, Richard J},
year={1989},
publisher={American Psychological Association}
}
\end{filecontents}
\begin{document}
\nocite{*}
\bibliography{\jobname}
% \show\bibitem
% \makeatletter
% \show\@lbibitem
% \makeatother
\end{document}
输出
侦探活动
检查 .bbl 文件可发现,每个书目条目均由 呈现\bibitem
。
因此,我们\show\bibitem
在源内发出一个。这将给出:
\bibitem=\long 宏:->\@ifnextchar [{\@lbibitem }{\@lbibitem []}。
我们深入探究并观察内部情况\@lbibitem
。
\makeatletter
\show\@lbibitem
\makeatother
给出:
\@lbibitem=macro: [#1]#2->\if \relax \@extra@b@citeb \relax \else \@ifundefined {br@#2\@extra@b@c iteb }{}{\@namedef {br@#2}{\@nameuse {br@#2\@extra@b@citeb }}}\fi \@ifundefined {b@#2\@extra@b@citeb }{\def \NAT@num {}}{\NAT@parse {#2}}\def \NAT@tmp {#1}\ex pandafter \let \expandafter \bibitemOpen \csname NAT@b@open@#2\endcsname \expan dafter \let \expandafter \bibitemShut \csname NAT@b@shut@#2\endcsname \@ifnum { \NAT@merge >\@ne }{\NAT@bibitem@first@sw {\@firstoftwo }{\@ifundefined {NAT@b*@ #2}{\@firstoftwo }{\expandafter \def \expandafter \NAT@num \expandafter {\the \ c@NAT@ctr }\@secondoftwo }}}{\@firstoftwo }{\global \advance \c@NAT@ctr \@ne \@ ifx {\NAT@tmp \@empty }{\@firstoftwo }{\@secondoftwo }{\expandafter \def \expan dafter \NAT@num \expandafter {\the \c@NAT@ctr }\global \NAT@stdbsttrue }{}\bibi tem@fin \item [\hfil \NAT@anchor {#2}{\NAT@num }]\global \let \NAT@bibitem@firs t@sw \@secondoftwo \NAT@bibitem@init }{\NAT@anchor {#2}{}\NAT@bibitem@cont \bib item@fin }\@ifx {\NAT@tmp \@empty }{\NAT@wrout {\the \c@NAT@ctr }{}{}{}{#2}}{\e xpandafter \NAT@ifcmd \NAT@tmp (@)(@)\@nil {#2}}.
我必须说,这个名字有点拗口,而且有点难以理解。因此,我们natbib.sty
在编辑器中打开文件并搜索\@lbibitem
。
随后的几行显示了书目条目的呈现方式。
\item[\hfil\NAT@anchor{#2}{\NAT@num}]
引起了我们的怀疑,并对此进行了调整,证实我们已经找到了正确的点。
进一步阅读
如果您想了解更多信息
\patchcmd
,请查看此精彩答案。