Отключение backref во вторичной библиографии multibib с помощью natbib

Отключение backref во вторичной библиографии multibib с помощью natbib

Я завершаю работу над докторской диссертацией, написанной с помощью LaTeX.

У меня есть раздел, в котором я перечисляю свои собственные публикации и весь список ссылок в самом конце документа. Этот список довольно длинный, и я решил включить обратные ссылки, чтобы облегчить чтение. Я использовал комбинацию natbib, multibibи backref. К сожалению, это включило их во вторичной библиографии, содержащей также мои собственные публикации.

Как мне отключить обратные ссылки для публикаций и включить их для библиографии? Кажется, я сжег себе мозг и не могу найти решение самостоятельно! В любом случае, пожалуйста, прикрепите минимальный рабочий пример.

Бонусный вопрос:Я включил свои собственные работы publications.bibи повторил их в biblio,bib(основной библиографической базе данных), добавив copyсуффикс к их ключам, чтобы не возиться с ними. Есть ли более умный способ, чем тот, который я использовал, чтобы процитировать их и перечислить их в Publicationsпараграфе диссертации, и перечислить их в основной библиографии со всеми обратными ссылками, кроме тех, что в параграфе Publications?

основной.текс

\documentclass{scrreprt}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[square,numbers,sort&compress]{natbib}
\usepackage[resetlabels]{multibib}
\newcites{publications}{\null}

\usepackage[pdftex]{hyperref}
\usepackage[hyperpageref]{backref}
\usepackage{bookmark}

\newcommand{\backrefnotcitedstring}{\relax} %(Not cited.)
\newcommand{\backrefcitedsinglestring}[1]{\\\textsmaller{(Cited on page~#1)}}
\newcommand{\backrefcitedmultistring}[1]{\\\textsmaller{(Cited on pages~#1)}}
\renewcommand{\backreftwosep}{ and~} % separate 2 pages
\renewcommand{\backreflastsep}{, and~} % separate last of longer list
\renewcommand*{\backref}[1]{}  % disable standard
\renewcommand*{\backrefalt}[4]{\ifcase #1 \backrefnotcitedstring \or \backrefcitedsinglestring{#2} \else \backrefcitedmultistring{#2} \fi}

\begin{document}
    \chapter*{Publications}
    Some ideas and figures have previously and partially appeared in \citep{me2012a,me2012b}.
    \begingroup     
        \let\clearpage\relax    
        \vspace{-6ex}
        \nocitepublications{*}
        \bibliographystylepublications{abbrvnat}
        \bibliographypublications{publications}
    \endgroup

    \chapter{Introduction} 
    In this thesis I take some of the concepts that I introduced in \citep{me2012acopy,me2012bcopy} and I quote others proposed in \citep{he2011,she2011,them2011}.

    \appendix   
    \bibliographystyle{abbrvnat}
    \bibliography{biblio}
\end{document}

публикации.bib

@article {me2012a,
  author = {Me, I},
  title = {Title 1},
  journal = {A Journal},
  journaltitle = {A Journal},
  year = {2012}
}

@article {me2012b,
  author = {Me, I},
  title = {Title 2},
  journal = {A Journal},
  journaltitle = {A Journal},
  year = {2012}
}

библио.биб

@article {me2012acopy,
  author = {Me, I},
  title = {Title 1},
  journal = {A Journal},
  journaltitle = {A Journal},
  year = {2012}
}

@article {me2012bcopy,
  author = {Me, I},
  title = {Title 2},
  journal = {A Journal},
  journaltitle = {A Journal},
  year = {2012}
}

@article {he2011,
  author = {He, Author},
  title = {Title He},
  journal = {A Journal},
  journaltitle = {A Journal},
  year = {2011}
}

@article {she2011,
  author = {She, Author},
  title = {Title She},
  journal = {A Journal},
  journaltitle = {A Journal},
  year = {2011}
}

@article {them2011,
  author = {Them, Authors},
  title = {Title Them},
  journal = {A Journal},
  journaltitle = {A Journal},
  year = {2011}
}

решение1

Для вашего основного вопроса об отключении обратных ссылок для библиографии «публикации», но включении их для основной библиографии, вы можете просто задать макросам backref ничего не делать внутри группы TeX для первой библиографии (это макросы \backrefcitedsinglestringи \backrefcitedmultistring):

\documentclass{scrreprt}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[square,numbers,sort&compress]{natbib}
\usepackage[resetlabels]{multibib}
\newcites{publications}{\null}

\usepackage[pdftex]{hyperref}
\usepackage[hyperpageref]{backref}
\usepackage{bookmark}
\usepackage{relsize}

\newcommand{\backrefnotcitedstring}{\relax} %(Not cited.)
\newcommand{\backrefcitedsinglestring}[1]{\\\textsmaller{(Cited on page~#1)}}
\newcommand{\backrefcitedmultistring}[1]{\\\textsmaller{(Cited on pages~#1)}}
\renewcommand{\backreftwosep}{ and~} % separate 2 pages
\renewcommand{\backreflastsep}{, and~} % separate last of longer list
\renewcommand*{\backref}[1]{}  % disable standard
\renewcommand*{\backrefalt}[4]{\ifcase #1 \backrefnotcitedstring \or \backrefcitedsinglestring{#2} \else \backrefcitedmultistring{#2} \fi}

\begin{document}
    \chapter*{Publications}
    Some ideas and figures have previously and partially appeared in \citeppublications{me2012a,me2012b}.
    \begingroup
        % disable backref here
        \renewcommand{\backrefcitedsinglestring}[1]{}%
        \renewcommand{\backrefcitedmultistring}[1]{}%
        % end changes added by cyberSingularity
        \let\clearpage\relax
        \vspace{-6ex}
        \nocitepublications{*}
        \bibliographystylepublications{abbrvnat}
        \bibliographypublications{publications}
    \endgroup

    \chapter{Introduction} 
    In this thesis I take some of the concepts that I introduced in \citep{me2012acopy,me2012bcopy} and I quote others proposed in \citep{he2011,she2011,them2011}.

    \appendix
    \bibliographystyle{abbrvnat}
    \bibliography{biblio}
\end{document}

relsize( В вашем MWE также отсутствовал пакет.)

Ваш «бонусный вопрос» настолько отличается, что заслуживает отдельного вопроса с соответствующим заголовком.

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