我应该让这个书目风格适应日文版的 JSME-Journal。
我已经对authoryear
风格进行了很多修补,但有两件事我无法正确完成:
- 放置(年)总是在前面,页或者出版商,以防万一最后没有得到所有的东西
- 获取卷和不。大写?
有任何想法吗?
这就是我得到的成果:
\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=authortitle
和citestyle=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={}}
再也没有了。