在我引用的一本书中,页码如下:X-Y
,其中X
是章节号,Y
是该章节的页码。例如,第三章第五页的页码为3-5
。
要获取参考文献中的页码3-5
,我必须写入3\-5
,因为 BibTeX 似乎会自动将页码中的连字符替换为短划线。所以这是我遇到的一个问题,现在已经解决了。
但是,即使pages = {3\-5}
在 BibTeX 代码中写入后,BibTeX 在参考书目中写入的是“第 3-5 页”,而不是“第 3-5 页”。我怎样才能让 BibTeX 理解“3-5”只是一页而不是一系列页面?
答案1
不要让 BibTeX 看到连字符:
\begin{filecontents*}{\jobname.bib}
@inbook{x,
author={A. Uthor},
title={A chapter},
booktitle={A book},
publisher={Publisher},
year={2012},
pages={3\pagehyphen5},
}
\end{filecontents*}
\documentclass{article}
\usepackage{natbib}
\newcommand{\pagehyphen}{-}
\begin{document}
\cite{x}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
.bib
您还可以在文件中通过条目来定义命令@preamble
。
\begin{filecontents*}{\jobname.bib}
@preamble{"\providecommand\pagehyphen{-}"}
@inbook{x,
author={A. Uthor},
title={A chapter},
booktitle={A book},
publisher={Publisher},
year={2012},
pages={3\pagehyphen5},
}
\end{filecontents*}
\documentclass{article}
\usepackage{natbib}
\begin{document}
\cite{x}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
无需任何额外的宏,您可以{\char45}
在 .bib 文件中使用连字符;但在我看来,这不是最好的解决方案。
\begin{filecontents*}{\jobname.bib}
@inbook{x,
author={A. Uthor},
title={A chapter},
booktitle={A book},
publisher={Publisher},
year={2012},
pages={3{\char45}5},
}
\end{filecontents*}
\documentclass{article}
\usepackage{natbib}
\begin{document}
\cite{x}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}