로마 숫자로 된 별도의 참고문헌은 어디에서나 인용 가능

로마 숫자로 된 별도의 참고문헌은 어디에서나 인용 가능

나는 내 박사 논문에 두 개의 참고문헌을 갖고 싶습니다. 첫 번째 목록에는 논문에 포함된 내 출판물이 나열되어 있으며 처음에는 로마 숫자로 번호가 매겨져 있습니다. 그러면 본문의 본문에서는 이 참고문헌을 로마 숫자로, 주요 참고문헌은 일반 숫자로 인용할 수 있어야 합니다.

지금까지 최선을 다해 노력했습니다.로마 숫자와 Biblatex를 사용한 하위 참고문헌그리고 일부 다른 스레드에는 두 가지 결함이 있습니다. 첫 번째 참고문헌에 대한 인용은 라틴 숫자로 번호가 매겨져 있으며, 본문(인용하고 싶은 곳) 내에서는 첫 번째 참고문헌을 전혀 인용할 수 없습니다.

최소한의 (완전히는 아니지만) 작동 예:

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\DeclareFieldFormat{Roman}{\RN{#1}}
% The following definition is copied from numeric.bbx
\defbibenvironment{roman-numerals}
  {\list
     {\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield[Roman]{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

\begin{filecontents}{\jobname-mine.bib}
@misc{Mine1,
  author = {Me, M.},
  year = {2001},
  title = {Alpha},
}
@misc{Mine2,
  author = {Me, M.},
  year = {2002},
  title = {Bravo},
}
@misc{Mine3,
  author = {Me, M.},
  year = {2003},
  title = {Charlie},
}

\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{\jobname-mine.bib}

\begin{document}
\begin{refsection}[\jobname-mine.bib]
\nocite{*}
\printbibliography[title={My publications}, env=roman-numerals]
\end{refsection}
Some text that won't be here, but note roman numerals don't work even here \cite{Mine1, Mine3}.

\section{Main text}

\begin{refsection}[\jobname.bib]
Citing things in body \cite{A01, B02}. Would like to cite things in section mine    \cite{Mine1}
\printbibliography[title=References]
\end{refsection}

\end{document}

답변1

내 목적에 충분히 적합한 솔루션을 찾았으므로 내 질문에 답하고 있습니다. @cfr이 제안한 것처럼 로마 숫자에 대한 약칭 필드를 사용하면 기본적으로 트릭이 수행됩니다. 분리 부분은 본문에 대한 참조 섹션을 사용하지 않음으로써 작동합니다.

이 문제를 개선하는 데 관심이 있는 사람을 위한 남은 단점은 다음과 같습니다.

  • 속기 필드에 로마 숫자를 수동으로 입력해야 합니다.
  • DeclareSourceMap은 내 출판물이 기본 참고문헌 목록에 다시 표시되는 것을 막는 것만으로는 약간 과도한 것처럼 느껴집니다. 이를 수행하는 더 좋은 방법이 있습니까?
  • 본체에서 별도의 참조 섹션을 사용하려는 경우에는 이 방법이 작동하지 않습니다(다행히도 그렇지 않습니다).

코드:

\documentclass{article}
\usepackage[backend=biber]{biblatex}

%test data: other references
\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

%test data: my papers
\begin{filecontents}{\jobname-mine.bib}
@misc{Mine1,
  author = {Me, M.},
  year = {2001},
  title = {My Alpha},
  shorthand={\RN{1}}
}
@misc{Mine2,
  author = {Me, M.},
  year = {2002},
  title = {My Bravo},
  shorthand={\RN{2}}
}
@misc{Mine3,
  author = {Me, M.},
  year = {2003},
  title = {My Charlie},
  shorthand={\RN{3}}
}

\end{filecontents}

%Auto-add the keyword thpaper. Not strictly necessary, but saves some trouble
\DeclareSourcemap{
 \maps[datatype=bibtex]{
  \map{\perdatasource{\jobname-mine.bib} \step[fieldset = keywords, fieldvalue = {thpaper}]
  }
 }
}


\addbibresource{\jobname.bib}    
\addbibresource{\jobname-mine.bib}

\begin{document}

%Print the references to my papers. Refsection allows easy shortcutting with nocite{*} limited to the correct file
\begin{refsection}[\jobname-mine.bib]
\nocite{*}
\printbibliography[title={My publications}]
\end{refsection}

\section{Main text}

Citing things in body \cite{A01, B02}. Would like to cite my own publications \cite{Mine1}, and now it works, with the roman numerals even.
%Print the main bibliography, notkeyword=thpaper keeps my papers from re-appearing. 
%Using a refsection with a filename would be nicer, but that breaks the citations to my 
%publications.
\printbibliography[title=References, notkeyword=thpaper]

\end{document} 

관련 정보