Seite 1 von 1

Multiples modifiziertes Literaturverzeichnis mit BIBER

Verfasst: So 4. Jan 2015, 14:21
von Michael2015
Hallo,

ich habe kurz vor Finalisierung meines Dokuments noch ein wichtiges zu lösendes Problem in meinem Literaturverzeichnis: Zitieren von Normen.

Ich verwende BIBLATEX mit BIBER 1.8

Das Ganze soll am Ende so aussehen:

Bücher zitieren [Küc 2009]
==> Funktioniert

Normen zitieren: [IEC 60060-1]
==> Funktioniert mit Trick und neuer Definition von @NORM, aber nur mit manuell gesetzten eckigen Klammern.

Was nicht funktioniert: Die korrekte Ausgabe des Literaturverzeichnisses. Das Unterverzeichnis "Normen" wird hier leider nicht so [IEC 60060-1] dargestellt, sondern mit Leerzeichen und Jahreszahl.

Leider kenne ich mich mit der Deklarierung neuer Literaturstile nicht gut aus. Das bisherige Resultat habe ich mir im Netz in diversen Foren zusammengesucht. Jetzt komme ich leider nicht mehr weiter...

Kann jemand helfen? Das Minimal-Beispiel unten verdeutlicht das Problem.

Vielen Dank schon mal für eure Hilfe !!!
Michael
 % Hier ein minimiertes Beispiel

\documentclass[12pt,twoside, a4paper, openright	, headsepline, parskip=half, draft=false]{scrbook}

%Pakete%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage[T1]{fontenc}
%\usepackage[latin1]{inputenc}													% Erlaubt Umlaute
\usepackage[ansinew]{inputenc} 													% Erlaubt Umlaute WINDOWS
%\usepackage[utf8]{inputenc}
\usepackage{lmodern} 																		% Neues Schriftartenpaket
\usepackage{mathdesign} 																% Matheschreibweisen
\usepackage{mathtools}
\usepackage{isomath}
\usepackage[ngerman, english]{babel} 										% Ausgabe in neuer deutscher Rechtschreibung
\usepackage[left=3.5cm,right=2.5cm,top=2.5cm,bottom=2cm,includeheadfoot]{geometry}
\usepackage[font=small]{caption}
\usepackage[section]{placeins}

\newenvironment{myitemize}{\begin{itemize}\itemsep -5pt}{\end{itemize}} %Aufruf kleinerer item-Abstände
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%LITERATURVERZEICHNIS BIBLATEX EINBINDEN
\usepackage[babel, german=quotes]{csquotes}
\usepackage[backend=biber, style=alphabetic, maxbibnames=10, maxcitenames=1, abbreviate=false]{biblatex}  

\usepackage{filecontents}
\begin{filecontents}{normen1.bib}

@NORM{IEC600601,
label = {IEC\,60060-1},
title = {High-voltage test techniques – Part 1: General definitions and test requirements. Edition 3.0  (IEC 60060-1:2010)},
organization = {IEC},
institution = {International Electrotechnical Commission},
author = {IEC 60060-1},
year = {2010},
keywords = {Normneu}
}
@NORM{IEC60093,
label = {IEC\,60093},
title = {Methods of test for volume resistivity and surface resistivity of solid electrical insulating materials. Second edition  (IEC 60093:1980), German version HD 429 S1:1983},
organization = {IEC},
institution = {International Electrotechnical Commission},
author = {IEC 60093},
year = {1980},
keywords = {Normneu}
}
\end{filecontents}

\usepackage{filecontents}
\begin{filecontents}{lit1.bib}
@BOOK{Kue09,
  title = {Hochspannungstechnik: Grundlagen - Technologie - Anwendungen},
  publisher = {3. Auflage, Springer-Verlag Berlin Heidelberg},
  year = {2009},
  author = {Andreas Küchler},
  owner = {Alpha},
  timestamp = {2013.10.25}
}
\end{filecontents}

\addbibresource{normen1.bib}
\addbibresource{Lit1.bib} 


%%DEfinitionen:

\DeclareDatamodelEntrytypes{norm}
\DeclareDatamodelEntryfields[norm]{
  label,
  sortkey,
  year
  }
\DeclareBibliographyDriver{norm}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{label}%
  %\addcolon
  %\printfield{year}%
  \newunit\newblock
  \printfield{title}%
  \newunit\newblock
	\printlist{organization}%
  \newunit\newblock
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
   \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \usebibmacro{related}%
  \newunit\newblock
	\printfield{isbn}%
  \newunit
  \iftoggle{bbx:url}
    {\usebibmacro{url+urldate}}
    {}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \usebibmacro{finentry}}

\newcommand*{\citenorm}{\addspace}
\DeclareCiteCommand{\citenorm}{}{\printfield{label}}{}{}  %{\addcolon\printfield{year}}

%%%%% ENDE NORMEN BIBER NEU


\renewcommand*{\labelalphaothers}{}
\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{shorthand}
	  \field{label}
    \field[strwidth=3,strside=left,ifnames=1]{labelname} %Bei nur einem Autor (ifnames=1) Abkürzung mit drei Buchstaben (strwidth=3)
    \field[strwidth=1,strside=left]{labelname}  %Abkürzung  Autoren mit je einem  Buchstaben strwidth=1
		%\field{labelname} % Nachnamen in voller Länge zitieren
    %\field{label} 
  }
  \labelelement{
  \literal{\,} %  Fügt ein halbes geschütztes Leerzeichen zwischen Autor und JAhr ein. Für ganzes Leerzeichen: \addhighpenspace}
  }
  \labelelement{
    \field{year}  %4-stellige Jahreszahl
  }
}

\renewcommand*{\labelalphaothers}{} % Kein Pluszeichen bei mehr als einem Autor
%\bibliography{Literatur}  % Definiert *.bib - Datei mit dem Literaturverzeichnis BIBLATEX


%Dokument%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\section{Normen zitieren}
Zitat von Normen:
\verb|\cite{IEC600601}| liefert falsche Ausgabe (Leerzeichen zwischen Normbezeichnung und Jahreszahl):\\ 
\cite{IEC600601}

\verb|\citenorm{IEC600601}| liefert richtige Ausgabe:\\ 
\citenorm{IEC600601} \newline
\\
\textbf{Und genau so soll es aussehen, also mit eckiger Klammer um das Zitat:} [\citenorm{IEC600601}]
\newline
(zugegebenermaßen etwas gepfuscht mit der manuellen eckigen Klammern...)


\textbf{Problem!!!: Im Literaturverzeichnis steht es leider so: \cite{IEC600601}}, also als ob man \verb|\cite{IEC600601}| verwenden würde.

\section{Bücher zitieren}
Und so normale Quellen: \cite{Kue09} also Name, halbes Leerzeichen, Jahreszahl und das Ganze in eckigen Klammern. Also hier alles korrekt.
%%%%%%%%%%%%%%%%%%


% LITERATUR MEHRFACHVERZEICHNIS
\printbibheading[heading=bibintoc,title=Literaturverzeichnis]
% Literatur ausgeben, OHNE Normen:
\printbibliography[heading=subbibliography,title=Literatur, notkeyword=Normneu]
% Normen ausgeben:
\printbibliography[heading=subbibliography,title=Normen und technische Richtlinien,keyword=Normneu]


\end{document}


Verfasst: So 4. Jan 2015, 15:02
von u_fischer
\DeclareLabelalphaTemplate[norm]
{\labelelement{\field{label}}}
Danach sollte auch der \cite-Befehl funktionieren.

Um eckige Klammern bei \citenorm zu erhalten:
\DeclareCiteCommand{\citenorm}{}{\printfield[brackets]{label}}{}{}  

Verfasst: So 4. Jan 2015, 16:25
von Michael2015
Danke für die schnelle Antwort! Das mit den eckigen Klammern bei \citenorm funktioniert.

Leider aber nach wie vor nicht die korrekte Darstellung der Normen im Literaturverzeichnis sowie bei \cite

Habe den Code ergänzt, keine Veränderung.
\DeclareLabelalphaTemplate[norm] 
{\labelelement{\field{label}}}
Muss das an eine ganz bestimmte Stelle, oder muss etwas anderes entfernt werden?

Verfasst: So 4. Jan 2015, 16:26
von u_fischer
Hast du biber/biblatex nochmal aufgerufen?

Verfasst: So 4. Jan 2015, 16:47
von Michael2015
OK, ein Durchlauf von BIBER hatte wohl noch gefehlt - jetzt klappt alles

VIELEN DANK !!!

:D