BibTeX 在应该写为“page”的地方写为“pages”

BibTeX 在应该写为“page”的地方写为“pages”

在我引用的一本书中,页码如下: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}

相关内容