PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Punkt zwischen Volume und Number entfernen.



Estibert
01-06-2014, 00:17
Hallo Leute.

Ich kämpfe seit kurzer Zeit mit BibLaTex, und dank etlicher kompetenter Leute im INternet komme ich auch voran, aber zuletzt scheitere ich an meinen Wünschen:

Mein Biblatex-Literaturverzeichnis sieht jetz fast genau so aus wie es soll, nämlich wie folgt:

R. D. Near, S. C. Hayden, and M. A. El-Sayed, Thin to Thick, Short to Long:
Spectral Properties of Gold Nanorods by Theoretical Modeling, The Journal
of Physical Chemistry C 2013, 117., 18653-18656.

Allerdings stört mich der Punkt nach der Volume, sowie dessen aufrechte Schrift, ich möchte es so haben:

R. D. Near, S. C. Hayden, and M. A. El-Sayed, Thin to Thick, Short to Long:
Spectral Properties of Gold Nanorods by Theoretical Modeling, The Journal
of Physical Chemistry C 2013, 117, 18653-18656.

Das ganze wird geregelt durch folgenden Code:


\documentclass[a4paper,12pt, twoside=true, DIV10]{scrartcl}
\usepackage[style=numeric, firstinits=true]{biblatex}
\addbibresource{test.bib}
\DeclareCiteCommand{\cite}[\mkbibsuperscript]
{\iffieldundef{prenote}
{}
{\BibliographyWarning{Ignoring prenote argument}}%
\iffieldundef{postnote}
{}
{\BibliographyWarning{Ignoring postnote argument}}}
{\usebibmacro{citeindex}%
\bibopenbracket\usebibmacro{cite}\bibclosebracket}
{\supercitedelim}
{}
\renewbibmacro{in:}{}
\DeclareFieldFormat{date}{\bfseries{#1}}
\DeclareFieldFormat[article]{number}{}
\DeclareFieldFormat[article]{title}{#1}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{issue+date}%
\setunit{\addcomma\space}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\usebibmacro{issue}%
\newunit}

\newbibmacro*{issue+date}{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}






\begin{document}


Zitat \cite{Near2013}

\printbibliography
\end{document}



@Article{Near2013,
Title = {Thin to Thick, Short to Long: Spectral Properties of Gold Nanorods by Theoretical Modeling},
Author = {Near, Rachel D. and Hayden, Steven C. and El-Sayed, Mostafa A.},
Journal = {The Journal of Physical Chemistry C},
Year = {2013},
Number = {36},
Pages = {18653-18656},
Volume = {117},

Doi = {10.1021/jp4078344},
Eprint = {http://pubs.acs.org/doi/pdf/10.1021/jp4078344},
Owner = {Fabian},
Timestamp = {2014.05.31},
Url = {http://pubs.acs.org/doi/abs/10.1021/jp4078344}
}

Das einzige Problem ist der Punkt nach der Volume, der normal Volume und Number voneinander trennt. Da ich letztere allerdings nicht haben möchte, steht da ein Punkt und direkt im Anschluss ein Komma. Ich finde einfach die Stelle nicht, an der dieser eingeführt wird. Allgemein blicke ich nicht ganz durch wo diese "kombinierten" macros definiert sind bzw. wie man sie kombiniert, im standard-File stehen nur die einzelnen Macros.

Vielen Dank schonmal. :)

bobmalaria
01-06-2014, 12:04
hi,

biblatex ist wirklich anpassbar aber auch verwinkelt! ich hab auch erstmal ein bisschen suchen müssen.

mein vorgehen:
1) im biblatex ordner in den bbx ordner. da sind die stile drin die man mit style= läd.
2) in der numeric.bbx nach "volume" gesucht. kein ergebnis!
3) dann schau ich was der stil läd. da sehe ich das als erstes standard.bbx geladen wird und dein numeric stil darauf basiert.
4) standard.bbx aufgemacht und nach \DeclareBibliographyDriver{article} gesucht, denn diese driver definieren das aussehen konkrekt.
5) darin findet man "volume" auch erstmal nicht aber "\usebibmacro{journal+issuetitle}%"
6) dann suche ich in der datei ob dieses makro da definiert wird
7) in diesem makro finde ich ein weiteres, nämlich "volume+number+eid"
8) ich suche also nach "volume+number+eid" und finde

\printfield{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
damit bin ich am ziel. denn in der zweiten zeile wird der punkt mit \setunit*{\adddot}% definiert. also muss ich einfach dieses makro umdefinieren.

in deinem code hast du sowas schon mal gemacht. beachte das du nicht \newbibmacro verwendest sondern \renewbibmacro. sonst bekommst du eine warnung das der befehl schon definiert ist. das war bei deinem beispiel schon der fall.

also alles in allem:


\begin{filecontents}{test.bib}
@Article{Near2013,
Title = {Thin to Thick, Short to Long: Spectral Properties of Gold Nanorods by Theoretical Modeling},
Author = {Near, Rachel D. and Hayden, Steven C. and El-Sayed, Mostafa A.},
Journal = {The Journal of Physical Chemistry C},
Year = {2013},
Number = {36},
Pages = {18653-18656},
Volume = {117},

Doi = {10.1021/jp4078344},
Eprint = {http://pubs.acs.org/doi/pdf/10.1021/jp4078344},
Owner = {Fabian},
Timestamp = {2014.05.31},
Url = {http://pubs.acs.org/doi/abs/10.1021/jp4078344}
}
\end{filecontents}


\documentclass[a4paper,12pt, twoside=true, DIV10]{scrartcl}
\usepackage[style=numeric, firstinits=true,url=false,doi=false,eprint=false,b ackend=biber]{biblatex}
\addbibresource{test.bib}
\DeclareCiteCommand{\cite}[\mkbibsuperscript]
{\iffieldundef{prenote}
{}
{\BibliographyWarning{Ignoring prenote argument}}%
\iffieldundef{postnote}
{}
{\BibliographyWarning{Ignoring postnote argument}}}
{\usebibmacro{citeindex}%
\bibopenbracket\usebibmacro{cite}\bibclosebracket}
{\supercitedelim}
{}
\renewbibmacro{in:}{}
\DeclareFieldFormat{date}{\bfseries{#1}}
\DeclareFieldFormat[article]{number}{}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[article]{volume}{\textit{#1}}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{issue+date}%
\setunit{\addcomma\space}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\usebibmacro{issue}%
\newunit}

\renewbibmacro*{issue+date}{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}

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

\begin{document}

Zitat \cite{Near2013}

\printbibliography
\end{document}

Estibert
01-06-2014, 12:30
Vielen, vielen Dank! Au mann, kein Wunder dass ich im .def-File die Makros nicht finde wenn sie in Standard.bbx stehen. :) Funktioniert bestens! Danke!