Я работаю с библиографией. Для этого есть два способа, один с использованием bibtex, а другой с использованием biber. Когда я печатаю библиографию с использованием biber, то он дает мне желаемый результат. Это означает, что он может печатать название, автора и т. д. в определенных местах моего документа. Но bibtex не может этого сделать. С использованием bibtex моя библиография генерируется, но когда я использую \citeauthor{is4562000}
для печати authorname, он показывает «author?». Можем ли мы напечатать authorname, title и year с использованием bibtex. Вот код.
demo.bib
@book{is4562000,
title={Indian Standard Plain and reinforced concrete--code of
practice (IS 456 : 2000)},
shorttitle = {IS 456~:~2000},
author={Cement and Concrete Sectional Committee, CED 2},
%author={Morrison, Norving,peter},
journal={New Delhi: },
year={2000},
publisher={Bureau of Indian Standards},
}
Основной документ
\documentclass[a4paper,10pt]{article}
\usepackage{natbib}
%Includes "References" in the table of contents
%\usepackage[nottoc]{tocbibind}
%Title, date an author of the document
\title{Bibliography management: BibTeX}
\author{Manpreet}
%Begining of the document
\begin{document}
\maketitle
\tableofcontents
\medskip
\section{First Section}
This is bibliography using bibtex \cite{is4562000}\\
\citeauthor{is4562000}
\bibliographystyle{unsrt}
\bibliography{demo}
\end{document}
Выход
решение1
Вы допускаете две ошибки: автор — корпорация, поэтому он должен получить дополнительную пару скобок; во-вторых, стиль bib несовместим с natbib
, используйте unsrtnat
.
Обратите внимание, что author
поле должно быть
author={{Cement and Concrete Sectional Committee, CED 2}},
Вот полный пример, который я использовал filecontents*
просто для того, чтобы не засорять свои файлы.
\begin{filecontents*}{\jobname.bib}
@book{is4562000,
title={Indian Standard Plain and reinforced concrete--code of practice (IS 456 : 2000)},
shorttitle = {IS 456~:~2000},
author={{Cement and Concrete Sectional Committee, CED 2}},
journal={New Delhi: },
year={2000},
publisher={Bureau of Indian Standards},
}
\end{filecontents*}
\documentclass[a4paper,10pt]{article}
\usepackage{natbib}
%Includes "References" in the table of contents
%\usepackage[nottoc]{tocbibind}
%Title, date an author of the document
\title{Bibliography management: BibTeX}
\author{Manpreet}
%Begining of the document
\begin{document}
\maketitle
\tableofcontents
\medskip
\section{First Section}
This is bibliography using bibtex \cite{is4562000}
\citeauthor{is4562000}
\bibliographystyle{unsrtnat}
\bibliography{\jobname}
\end{document}
решение2
Это исходит из вашего библиографического стиля, т. е. unsrt
.
Используя библиографический стиль plainnat
,
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{is4562000,
author={{Cement and Concrete Sectional Committee, CED 2}},
title={Indian Standard Plain and reinforced concrete--code of practice (IS 456 2000)},
shorttitle = {IS 456~:~2000},
journal={New Delhi: },
year={2000},
publisher={Bureau of Indian Standards},
}
\end{filecontents}
\documentclass[a4paper,10pt]{article}
\usepackage{natbib}
\begin{document}
This is bibliography using bibtex \cite{is4562000}.
\citeauthor{is4562000}.
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}
мы получаем
что не очень приятно, я согласен.
С biber
, вы можете иметь
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{is4562000,
author={{Cement and Concrete Sectional Committee, CED 2}},
title={Indian Standard Plain and reinforced concrete--code of practice (IS 456 2000)},
shorttitle = {IS 456~:~2000},
journal={New Delhi: },
year={2000},
publisher={Bureau of Indian Standards},
}
\end{filecontents}
\documentclass[a4paper,10pt]{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{\jobname}
\begin{document}
This is bibliography using biber~\cite{is4562000}.
\citeauthor{is4562000}
\printbibliography
\end{document}
Третий вариант — использовать biblatex
, и я рекомендую этот (по личному вкусу). Он поддерживает \citeauthor{key}
команду:
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{is4562000,
author={{Cement and Concrete Sectional Committee, CED 2}},
title={Indian Standard Plain and reinforced concrete--code of practice (IS 456 2000)},
shorttitle = {IS 456~:~2000},
journal={New Delhi: },
year={2000},
publisher={Bureau of Indian Standards},
}
\end{filecontents}
\documentclass[a4paper,10pt]{article}
\usepackage[backend=bibtex]{biblatex}
\addbibresource{\jobname}
\begin{document}
This is bibliography using biblatex \cite{is4562000}.
\citetitle{is4562000}.
\citeauthor{is4562000}.
\printbibliography
\end{document}
Дает тебе: