我正在写我的硕士论文,并且在使用 bibtex 时遇到了一个问题。下面是一个小例子:首先,我创建一个文件夹,在文件夹中,有一个 mini_example.txt ,一个 thesis.bib 文件,一个名为 include 的文件夹
\input{include/00-0-header}
\begin{document}
\include{include/01-introduction}
% Bibliography
\bibliographystyle{plainnat}
\bibliography{thesis}
\end{document}
thesis.bib 是这样的,
@inproceedings{erdmann2013modeling,
title={Modeling studies on alternative EUV mask concepts for higher NA},
author={Erdmann, Andreas and Fuehner, Tim and Evanschitzky, Peter and Neumann, Jens Timo and Ruoff, Johannes and Graeupner, Paul},
booktitle={SPIE Advanced Lithography},
pages={{86791Q--86791Q}},
year={2013},
organization={International Society for Optics and Photonics}
}
@article{fuhner2007direct,
title={Direct optimization approach for lithographic process conditions},
author={F{\"u}hner, Tim and Erdmann, Andreas and Seifert, Sebastian},
journal={Journal of Micro/Nanolithography, MEMS, and MOEMS},
volume={6},
number={3},
pages={{031006--031006}},
year={2007},
publisher={International Society for Optics and Photonics}
}
文件夹 'include' 有两个文件,第一个是 00-0-header.tex,第二个是 01-introduction.tex 00-0-header.tex 是这样的,
\documentclass[10pt,twoside,a4paper,bibliography=totoc]{scrbook}
\usepackage{url}
\usepackage{blindtext}
\usepackage[square,comma,numbers,sort&compress]{natbib}
\usepackage{enumerate}
\usepackage{listings}
\bibliographystyle{unsrtnat}
01-introduction.tex 是这样的,
solution\cite{fuhner2007direct}.
genetic algorithms integrated \cite{erdmann2013modeling}.
而我得到的结果是, 我不喜欢页面,只喜欢数字。
答案1
@andesgame 感谢您用代码更新您的原始问题。您似乎提供了足够的材料来查看确切的问题。
这是我的解决方案,我使用了您的代码中的必要部分来查找和解决问题。
在我看来,您的问题与您使用的特定引文有关@inproceedings
,您不希望在参考书目中打印“pages”一词。显然,在@type
显示的参考书目中打印“pages”一词是某些书目固有的特性。其中一些@type
包括 - @inproceedings
、@inbook
、@incollection
等。有关书目条目的更多信息@type
,请参阅:LaTeX WikiBook 中的书目管理
因此,我尝试了其他标准,@type
看看能否得到想要的结果。但是,@type
我测试的所有其他标准都无法提供想要的结果。因此,通过对原始@inproceedings
格式进行巧妙的修改,我能够得到想要的结果。这可能是一种肮脏的修改,但无论如何它都是有效的! :) 以下是我所做的:
%%%%%% begin: modified citation! %%%%%%
@inproceedings{erdm_13mod_cheat,
title={blah blah},
author={blah blah},
booktitle={SPIE Advanced Lithography, {\upshape 86791Q--86791Q}},
year={2013},
organization={blah blah}
}
%%%%%% end: modified citation! %%%%%%
子条目pages={86791Q--86791Q},
已从格式中删除@inproceedings
,而是添加到booktitle
子条目中:booktitle={SPIE Advanced Lithography, {\upshape 86791Q--86791Q}},
。此 hack 将产生您所需要的内容!
此外,对您提供的内容还有一些其他小的修改:
- 由于您使用的是
twopage
类选项,因此我不得不将添加openany
到可选参数列表中\documentclass[...]{scrbook}
,以避免在参考书目之前打印额外的空白页。如果您不想要这个,只需将其删除即可! - 正如@bernard 在上面的评论中正确指出的那样,您使用了两种不同的书目样式调用:
plainnat
&unsrtnat
。您只能使用一种。因此,我plainnat
在我的解决方案中将其视为书目样式。 - 该
filecontents
包允许我在同一个 TeX 文档中包含原生 BibTeX 代码;这使得每个人都可以更轻松地查看其内容。 - 为了显示原始引文和修改后的引文之间的区别,我编辑了正文的第二行以包含修改后的引文参考,如下所示:
\noindent genetic\cite{erdm_13mod_cheat} algorithms integrated \cite{erdmann2013modeling}.
比较输出参考书目中的第一个和第二个引文条目。第一个是由于修改@inproceedings
格式,第二个是由于您使用的原始格式。
梅威瑟:
\documentclass[10pt,twoside,a4paper,openany,bibliography=totoc]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[square,comma,numbers,sort&compress]{natbib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{erdmann2013modeling,
title={Modeling studies on alternative EUV mask concepts for higher {NA}},
author={Erdmann, Andreas and Fuehner, Tim and Evanschitzky, Peter and Neumann, Jens Timo and Ruoff, Johannes and Graeupner, Paul},
booktitle={SPIE Advanced Lithography},
pages={86791Q--86791Q},
year={2013},
organization={International Society for Optics and Photonics}
}
%%%%%% begin: modified citation! %%%%%%
@inproceedings{erdm_13mod_cheat,
title={Modeling studies on alternative EUV mask concepts for higher NA},
author={Erdmann, Andreas and Fuehner, Tim and Evanschitzky, Peter and Neumann, Jens Timo and Ruoff, Johannes and Graeupner, Paul},
booktitle={SPIE Advanced Lithography, {\upshape 86791Q--86791Q}},
year={2013},
organization={International Society for Optics and Photonics}
}
%%%%%% end: modified citation! %%%%%%
@article{fuhner2007direct,
title={Direct optimization approach for lithographic process conditions},
author={F{\"u}hner, Tim and Erdmann, Andreas and Seifert, Sebastian},
journal={Journal of Micro/Nanolithography, MEMS, and MOEMS},
volume={6},
number={3},
pages={{031006--031006}},
year={2007},
publisher={International Society for Optics and Photonics}
}
\end{filecontents}
\hbadness=10000 % For Underfull \hbox (badness 10000) warning!
\begin{document}
\noindent solution\cite{fuhner2007direct}.\\[10pt]
\noindent genetic\cite{erdm_13mod_cheat} algorithms integrated \cite{erdmann2013modeling}.
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
输出:
答案2
此代码应可完成您所做的事情。它使用biblatex
。默认样式为numeric
。
\documentclass{article}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{pages.bib}
@article{LbyLgraphic,
author = {M. Yamamoto and T. Namioka},
title = {{Layer-by-layer design method for soft-x-ray multilayers}},
journal = {Applied Opticas},
pages = {{1622--1630}},
year = 1992
}
@article{Erd,
author = {A. Erdmann and al. },
title = {{Multiple studies on alternative EUV mask concepts fir higher NA}},
journal = {Proc. of SPIE},
pages = {{86791Q-1}--{86791Q-12}},
year = 2013
}
}
\end{filecontents*}
\addbibresource{pages.bib}
\DefineBibliographyStrings{english}{%
page = {},
pages = {}
}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
\renewbibmacro{in:}{\relax}
\begin{document} As we see in \cite{LbyLgraphic} and \cite{Erd}
\printbibliography
\end{document}