Authoryear biblatex 스타일에서 연도 필드 위치 변경

Authoryear biblatex 스타일에서 연도 필드 위치 변경

나는 일본 JSME-Journal에 이 참고문헌 스타일을 적용하려고 합니다.

여기에 이미지 설명을 입력하세요

authoryear이미 스타일을 꽤 많이 패치했지만 제대로 처리할 수 없는 두 가지 사항은 다음과 같습니다.

  1. 두는(년도)항상 앞에, pp.아니면 그발행자, 마지막에 모든 것을 사용할 수 없는 경우
  2. 첫 글자를 얻는 가장 쉬운 방법은 무엇입니까?권.그리고아니요.대문자?

어떤 아이디어가 있나요?

그것이 내가 얻은 정도입니다.

\documentclass{article}
\usepackage{filecontents}

\RequirePackage[
    natbib, 
    style=authoryear,           
    maxnames = 99,
    maxcitenames = 1,
    uniquelist=false,
    url=false,
    isbn=false,
    sorting=nyt,                
    abbreviate=true,            
    firstinits=true,            
    backend=biber,              
    bibencoding=utf8,           
]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\renewcommand*{\multinamedelim}{\addspace\addcomma\addspace}
\renewcommand*{\finallistdelim}{\addspace\addcomma\addspace}
\renewcommand*{\labelnamepunct}{\addcomma\addspace}
\renewcommand*{\finentrypunct}{}


\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit{\addcomma\space}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}%
}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addcomma\space}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}


\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{subtitle}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\DeclareFieldFormat*{booksubtitle}{#1}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat[periodical]{issuetitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{number}{\bibstring{number}\addnbspace#1}
\DeclareFieldFormat*{volume}{\bibstring{jourvol}\addnbspace#1}

\renewcommand*{\labelalphaothers}{}
\renewcommand*{\intitlepunct}{}
\DefineBibliographyStrings{german}{in={}}
\DefineBibliographyStrings{english}{in={}}

\begin{filecontents*}{\jobname.bib}
@ARTICLE{Sun,
author={Yanhua Sun and Yick-Sing Ho and Lie Yu},
journal={IEEE Transactions on Magnetics},
title={Dynamic Stiffnesses of Active Magnetic Thrust Bearing Including Eddy-Current Effects},
year={2009},
month={Jan},
volume={45},
number={1},
pages={42-142},
}
@book{Moon,
  title={Field Theory Handbook},
  author={Moon, P. and Spencer, D.E.},
  year={1961},
  location={Berlin, Heidelberg},
  publisher={Springer}
}
@InProceedings{Kucera,
  author    = {Kucera, Ladislav and Ahrens, Markus},
  title     = {A Model for Axial Magnetic Bearings Including Eddy Currents},
  booktitle = {Third International Symposium on Magnetic Suspension Technology},
  year      = {1996},
  volume    = {45},
  number    = {2},
  month     = {Jul},
  pages     = {421-437},
}
\end{filecontents*}

\bibliography{\jobname.bib} 
\begin{document}
\cite{Sun,Moon,Kucera}
\printbibliography
\end{document}

여기에 이미지 설명을 입력하세요

답변1

bibstyle=authortitlecitestyle=authoryear기본으로 사용할 수 있습니다 . 그렇다면 벌써 한 해가 다가왔습니다.

그런 다음 사용

\renewbibmacro*{in:}{}

\newbibmacro*{pubinstorg+location+date}[1]{%
  \setunit{\addspace}%
  \usebibmacro{date}%
  \newunit
  \printfield{chapter}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \newunit\newblock
  \printlist{#1}%
  \newunit}

\renewbibmacro*{organization+location+date}{\usebibmacro{pubinstorg+location+date}{organization}}
\renewbibmacro*{institution+location+date}{\usebibmacro{pubinstorg+location+date}{institution}}
\renewbibmacro*{publisher+location+date}{\usebibmacro{pubinstorg+location+date}{publisher}}

\renewbibmacro*{chapter+pages}{}

그리고

\renewbibmacro*{date}{\printtext[parens]{\printdate}}
\renewbibmacro*{issue+date}{%
  \printtext[parens]{%
    \printfield{issue}%
    \setunit*{\addspace}%
     \printdate}%
  \newunit}

볼륨과 숫자를 대문자로 사용하려면 다음과 같이 하십시오.

\DeclareFieldFormat*{number}{\bibsentence\bibstring{number}\addnbspace#1}
\DeclareFieldFormat*{volume}{\bibsentence\bibstring{jourvol}\addnbspace#1}

전체 MWE

\documentclass{article}
\usepackage{filecontents}

\RequirePackage[
  natbib, 
  citestyle=authoryear,           
  bibstyle=authortitle,
  sorting=nyt,
  maxnames = 99,
  maxcitenames = 1,
  uniquelist=false,
  uniquename=false,
  url=false,
  isbn=false,
  abbreviate=true,            
  giveninits=true,            
  backend=biber,              
]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\renewcommand*{\multinamedelim}{\addspace\addcomma\addspace}
\renewcommand*{\finallistdelim}{\multinamedelim}
\renewcommand*{\labelnamepunct}{\newunitpunct}
\renewcommand*{\finentrypunct}{}


\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit{\addcomma\space}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}%
}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addcomma\space}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}


\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{subtitle}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\DeclareFieldFormat*{booksubtitle}{#1}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat[periodical]{issuetitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{number}{\bibsentence\bibstring{number}\addnbspace#1}
\DeclareFieldFormat*{volume}{\bibsentence\bibstring{jourvol}\addnbspace#1}

\renewcommand*{\labelalphaothers}{}
\renewcommand*{\intitlepunct}{}

\renewbibmacro*{in:}{}

\newbibmacro*{pubinstorg+location+date}[1]{%
  \setunit{\addspace}%
  \usebibmacro{date}%
  \newunit
  \printfield{chapter}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \newunit\newblock
  \printlist{#1}%
  \newunit}

\renewbibmacro*{organization+location+date}{\usebibmacro{pubinstorg+location+date}{organization}}
\renewbibmacro*{institution+location+date}{\usebibmacro{pubinstorg+location+date}{institution}}
\renewbibmacro*{publisher+location+date}{\usebibmacro{pubinstorg+location+date}{publisher}}

\renewbibmacro*{chapter+pages}{}

\renewbibmacro*{date}{\printtext[parens]{\printdate}}
\renewbibmacro*{issue+date}{%
  \printtext[parens]{%
    \printfield{issue}%
    \setunit*{\addspace}%
     \printdate}%
  \newunit}

\begin{filecontents*}{\jobname.bib}
@ARTICLE{Sun,
author={Yanhua Sun and Yick-Sing Ho and Lie Yu},
journal={IEEE Transactions on Magnetics},
title={Dynamic Stiffnesses of Active Magnetic Thrust Bearing Including Eddy-Current Effects},
year={2009},
month={Jan},
volume={45},
number={1},
pages={42-142},
}
@book{Moon,
  title={Field Theory Handbook},
  author={Moon, P. and Spencer, D.E.},
  year={1961},
  location={Berlin, Heidelberg},
  publisher={Springer}
}
\end{filecontents*}

\addbibresource{\jobname.bib} 
\begin{document}
\cite{Sun,Moon}
\printbibliography
\end{document}

필요하지 않다는 점을 참고하세요.

\DefineBibliographyStrings{german}{in={}}
\DefineBibliographyStrings{english}{in={}}

더 이상.

관련 정보