natbib을 사용하여 보조 multibib 참고문헌에서 역참조 비활성화

natbib을 사용하여 보조 multibib 참고문헌에서 역참조 비활성화

LaTeX로 작성한 박사학위 논문을 마무리하는 중입니다.

문서 맨 끝에는 내가 출판한 출판물과 전체 참고 문헌 목록을 나열하는 섹션이 있습니다. 이 목록은 다소 길기 때문에 쉽게 읽을 수 있도록 역참조를 포함하기로 결정했습니다. natbib, multibib및 를 조합하여 사용했습니다 backref. 불행히도 이로 인해 내 출판물이 포함된 2차 참고문헌에서도 이러한 기능이 가능해졌습니다.

출판물에 대한 역참조를 비활성화하고 참고문헌에 대해 활성화하려면 어떻게 해야 합니까? 머리가 다 타버린 것 같은데 혼자서는 해결책을 찾을 수가 없어요! 어쨌든 최소한의 작업 예제를 첨부해 주시기 바랍니다.

보너스 질문:내 작업을 포함시켰고 (주 참고문헌 DB) 키에 접미사를 추가하여 publications.bib반복했습니다 . 그것을 인용하여 논문 문단 에 나열하고 , 역참조는 모두 문단에 빼고 주요 참고문헌에 나열하는 것보다 제가 추구했던 것보다 더 영리한 방법이 있을까요?biblio,bibcopyPublicationsPublications

main.tex

\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}
}

biblio.bib

@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

"출판물" 참고문헌에 대한 역참조를 비활성화하고 주요 참고문헌에 대해서는 활성화하는 것에 대한 주요 질문의 경우 첫 번째 참고문헌에 대한 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에서도 패키지가 누락되었습니다 .)

귀하의 "보너스 질문"은 적절한 제목으로 자체 질문을 보증할 만큼 충분히 다릅니다.

관련 정보