Как сослаться на заголовок с помощью natbib?

Как сослаться на заголовок с помощью natbib?

Я долго искал решение, но не нашел работающего. Наиболее заметные из них выглядят так: \citetitle и \citeeditor с использованием пакетов natbib и hyperref и https://stackoverflow.com/questions/2496599/how-do-i-cite-the-title-of-an-article-in-latex

Моя соответствующая настройка:

\documentclass[a4paper,11pt,oldfontcommands]{memoir}
\usepackage[colorlinks=true]{hyperref}
\usepackage{natbib}
%\bibliographystyle{agsm}
\bibliographystyle{myabbrvnat}
\newcommand{\myand}{\&\ }
\setcitestyle{authoryear,aysep={},open={(},close={)}}
\begin{document}
In the book (Book Name) such and such is told to be true \citep{RefWorks:}.
\bibliography{cource}
\end{document}

с моим файлом source.bib, который выглядит так:

@book{RefWorks:1
     author={John Johnson},
     year={2015},
     title={Book Name},
     publisher={Publishing Company},
     address={United States of America},
     edition={1st},
     isbn={XXX-X-XXXX-XXXX-X}
}

Вероятно, причина, по которой некоторые из найденных мной предложений не работают, заключается в \bibliographystyle{myabbrvnat}. Я не помню, где я это нашел, но это нужно для настройки моей библиографии так, как мне нужно. Это важно? Если нужно разместить, где я могу разместить текст, поскольку он превышает лимит символов здесь?

Я знаю, что есть "своего рода" решение, где я могу сделать псевдоним цитаты, как \defcitealias{RefWorks:1}{Book Name}и затем вставить его в текст, как \citetalias{RefWorks:1}чтобы дать название источника. Это нормально, но это не то, что я ищу, потому что тогда мне нужно будет настроить это для всей моей библиотеки, что будет утомительно.

Есть ли способ настроить \cite+-type для указания названия источника?

Редактировать: Я забыл добавить пакет hyperref в свою настройку.

решение1

Я изменил abbrvnat.bst, чтобы выдать \myand{}вместо and(изменяя места, где " and "появляется). Затем подготовил этот входной файл:

\begin{filecontents*}{\jobname.bib}
@book{RefWorks:1,
     author={John Johnson},
     year={2015},
     title={Book Name},
     publisher={Publishing Company},
     address={United States of America},
     edition={1st},
     isbn={XXX-X-XXXX-XXXX-X}
}
@book{RefWorks:2,
     author={John Johnson and Jack Jackson},
     year={2015},
     title={Book Name},
     publisher={Publishing Company},
     address={United States of America},
     edition={1st},
     isbn={XXX-X-XXXX-XXXX-X}
}
\end{filecontents*}

\documentclass[a4paper,11pt,oldfontcommands,article]{memoir}

\usepackage{natbib}
\usepackage{usebib}
\bibliographystyle{myabbrvnat}
\setcitestyle{authoryear,aysep={},open={(},close={)}}
\bibinput{\jobname} % <--- the same argument as in \bibliography
\newcommand{\myand}{\&}

\begin{document}

In the book ``\usebibentry{RefWorks:1}{title}'' by 
\citeauthor{RefWorks:1}, such and such is told 
to be true \citep{RefWorks:1}.

In the book ``\usebibentry{RefWorks:2}{title}'' by 
\citeauthor{RefWorks:2}, such and such is told 
to be true \citep{RefWorks:2}.

\bibliography{\jobname}

\end{document}

Это выход

введите описание изображения здесь

Обратите внимание, что filecontentsиспользуется только для удобства, и вы можете использовать свой собственный .bibфайл. Помните об ограниченииusebib этого полядолженбыть разделены фигурными скобками, а не ".

С другой стороны, можно принудить biblatexк получению желаемого результата:

\begin{filecontents*}{\jobname.bib}
@book{RefWorks:1,
     author={John Johnson},
     year={2015},
     title={Book Name},
     publisher={Publishing Company},
     address={United States of America},
     edition={1st},
     isbn={XXX-X-XXXX-XXXX-X}
}
@book{RefWorks:2,
     author={John Johnson and Jack Jackson},
     year={2015},
     title={Book Name},
     publisher={Publishing Company},
     address={United States of America},
     edition={1st},
     isbn={XXX-X-XXXX-XXXX-X}
}
\end{filecontents*}

\documentclass[a4paper,11pt,oldfontcommands,article]{memoir}

\usepackage[style=authoryear,firstinits,uniquename=init]{biblatex}
\addbibresource{\jobname.bib}
\AtBeginBibliography{%
  \DeclareNameAlias{author}{first-last}%
}
\renewcommand{\finalnamedelim}{%
  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \addspace\&\space
}

\begin{document}

In the book ``\citetitle{RefWorks:1}'' by 
\citeauthor{RefWorks:1}, such and such is told 
to be true \parencite{RefWorks:1}.

In the book ``\citetitle{RefWorks:2}'' by 
\citeauthor{RefWorks:2}, such and such is told 
to be true \parencite{RefWorks:2}.

\printbibliography

\end{document}

введите описание изображения здесь

Связанный контент