Ich möchte in meiner Quellenangabe Zeitschriften tabellarisch aufführen, alles andere soll ganz normal aufgeführt werden. Unter TeX Stack Exchange habe ich auch einen Ansatz gefunden, weiß jetzt aber nicht weiter. Ich möchte die Titel (title) der Zeitschrift links in der Tabelle und Untertitel (subtitle) rechts. An welcher Schraube muss ich drehen?

Hier mal der Code:

Open in writeLaTeX
\documentclass{scrartcl}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[useprefix=true,uniquename=init,sorting=nyt,seriesformat=standard,firstfull=true,citedas=true,idemfont=normal,idembib=true,style=authortitle-dw,nopublisher=false,backend=biber,ibidtracker=context]{biblatex}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Folgender Code aus TeX StackExchange:
\makeatletter

% user-level command for printing tabular bibliography
\let\printbibtabular\printbibliography
\patchcmd{\printbibtabular}{\blx@printbibliography}{\bbx@printbibtabular}{}{}
\patchcmd{\printbibtabular}{\blx@printbibliography}{\bbx@printbibtabular}{}{}
\let\bbx@printbibtabular\blx@printbibliography 
\patchcmd{\bbx@printbibtabular}{\blx@bibliography}{\bbx@bibtabular}{}{} 
\patchcmd{\bbx@printbibtabular} 
{\def\blx@theenv{bibliography}}{\def\blx@theenv{bibtabular}}{}{}

% underlying macros
\def\bbx@bibtabular#1{%
\blx@bibheading\blx@theheading\blx@thetitle
\blx@bibnote\blx@theprenote
\begingroup
\blx@bibinit
\let\@noitemerr\@empty
\let\blx@noitem\blx@warn@bibempty 
\ifnum\bibinitsep=\z@
\let\blx@initsep\relax
\fi
\ifnum\bibnamesep=\z@
\let\blx@namesep\relax
\fi
\csuse{blx@hook@bibinit}%
% copy filtered list of entries to internal list macro
\def\blx@do##1{%
\blx@ifdata{##1}{%
  \begingroup
  \blx@getdata{##1}
  \blx@bibcheck
  \iftoggle{blx@skipentry}{}{%
    \global\let\blx@noitem\@empty
    \listadd\blx@tempa{##1}}%
  \endgroup}{}}
\let\blx@done\relax
\blx@listloop{#1}
% tabular output for each item in list macro
\def\do##1{\bbx@tab@label{##1} & \bbx@tab@item{##1} \\}
\csuse{blx@env@\blx@theenv}%
\dolistloop{\blx@tempa}
\csuse{blx@endenv@\blx@theenv}%
\blx@bibnote\blx@thepostnote
\endgroup}

\def\bbx@tab@label#1{%
\begingroup
\blx@getdata{#1}%
\blx@setoptions@type\abx@field@entrytype
\blx@setoptions@entry
\blx@thelabelnumber
\blx@addprefixnumber
\addtocounter{instcount}\@ne
\csuse{bbx@tabenv@\blx@theenv}\relax
\endgroup}

\def\bbx@tab@item#1{%
\begingroup
\blx@getdata{#1}%
\blx@setoptions@type\abx@field@entrytype
\blx@setoptions@entry
\csuse{blx@item@\blx@theenv}\relax
\blx@initsep
\blx@namesep
\csuse{blx@hook@bibitem}%
\blx@execute
\blx@initunit
\blx@anchor
\blx@beglang
\bibsentence
\blx@pagetracker
\blx@driver\abx@field@entrytype
\blx@postpunct
\blx@endlang
\endgroup}

% user-level command for defining tabular bibliography format
\newrobustcmd*{\defbibtabular}[5]{%
\long\csdef{blx@env@#1}{#2}%
\long\csdef{blx@endenv@#1}{#3}%
\long\csdef{bbx@tabenv@#1}{#4}%
\long\csdef{blx@item@#1}{#5}}

% user-level access to some entry options
\def\useeditorfalse{\togglefalse{blx@useeditor}}
\def\usetranslatorfalse{\togglefalse{blx@usetranslator}}

\makeatother

% sortname labels (a robust style should add provision for missing labelnames)
\newbibmacro*{sortname}{%
  \renewcommand*{\multinamedelim}{\addslash\break}%
  \let\finalnamedelim\multinamedelim
  \printtext[bold]{\printnames[last-first]{labelname}}}

% bibitem hook to suppress redundant sortname list
\newbibmacro*{omitsortname}{%
 \ifnameundef{labelname}{}{%
   \ifnameundef{author}
     {\ifnameundef{editor}
       {\ifusetranslator{\clearname{translator}}{}}}
       {\clearname{editor}}
     {\clearname{author}}%
  \useeditorfalse%
  \usetranslatorfalse}}

% demo new tabular bibliography format
\defbibtabular{bibtabular}
{\begin{tabular}{p{0.3\textwidth}p{0.7\textwidth}}}
{\end{tabular}}
{\usebibmacro{sortname}}
{\usebibmacro{omitsortname}}

%%%%%%%%%%%%%%% habe ich auskommentiert, um die normale Bibliografie-Umgebung zu erhalten %%%%%%%
% add multiline labels in default bibliography format
%\defbibenvironment{bibliography}
%{\list
 %{\usebibmacro{sortname}}
 %{\setlength{\labelwidth}{0.3\textwidth}%
  %\setlength{\leftmargin}{\labelwidth}%
  %\setlength{\labelsep}{\biblabelsep}%
  %\addtolength{\leftmargin}{\labelsep}%
  %\setlength{\itemsep}{\bibitemsep}%
  %\setlength{\parsep}{\bibparsep}}%
 %\renewcommand*{\makelabel}[1]{%
   %\nobreak\strut\smash{\parbox[t]\labelwidth{\raggedright##1}}}}
 %{\endlist}
 %{\item\usebibmacro{omitsortname}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{filecontents}

\begin{filecontents}{TestBib.bib}

@book{Dante2007,
author = {Dante Alighieri},
title = {Die Göttliche Kommödie},
gender = {sm},
location = {Stuttgart},
year = {2007},
translator = {Hermann Gmelin},
shorthand = {Alighieri 2007}
}
@periodical{Grundstein,
title = {Der Grundstein -- Wochenblatt für die deutschen Maurer und diesen verwandten Berufsgenossenschaften},
subtitle = {Jahrgänge 1910, 1933},
keywords = {Zeitung}
}

\end{filecontents}
\addbibresource{TestBib.bib}

\DeclareFieldFormat{shorthandinbib}{#1}
\renewcommand*{\shorthandinbibpunct}{\newline}
\setlength{\bibhang}{2em}

\begin{document}

\nocite{Grundstein}

\nocite{Dante2007}

\printbibliography[notkeyword=Zeitung,title={Literatur}]
\printbibtabular[keyword=Zeitung,title={Zeitschriften}]

\end{document}

So sieht es bisher aus:

alt text

Und so soll es ungefähr aussehen (passt jetzt nicht zum Code):

alt text

gefragt 03 Apr '14, 01:26

anne's gravatar image

anne
21181013
Akzeptiert-Rate: 25%

bearbeitet 10 Apr '14, 17:25

cgnieder's gravatar image

cgnieder
22.1k253463


Ich kenne mich mit biblatex nur sehr oberflächlich aus, daher ist meine Antwort vermutlich mit Vorsicht zu genießen. Ich habe Deinen Code kopiert. Darin habe ich die Definition von \bbx@tab@label entfernt, dafür die Definition

Open in Online-Editor
\newrobustcmd*\bbx@tab@subtitle[1]{%
  \begingroup
    \blx@getdata{#1}%
    \printfield{subtitle}
  \endgroup}

hinzugefügt. In der Definition von \bbx@tab@item habe ich \clearfield{subtitle} hinzugefügt:

Open in Online-Editor
\newrobustcmd*\bbx@tab@item[1]{%
  \begingroup
    \blx@getdata{#1}%
    \clearfield{subtitle}%
    ...

In der Definition von \bbx@bibtabular habe ich die Zeile \def\do##1{...} folgendermaßen geändert:

Open in Online-Editor
\def\do##1{ \bbx@tab@item{##1} & \bbx@tab@subtitle{##1} \\}

Zu guter Letzt habe ich die Tabellenbreite angepasst:

Open in Online-Editor
\defbibtabular{bibtabular}
  {\begin{tabular}{
     @{}p{\dimexpr0.5\textwidth-\tabcolsep\relax}
     p{\dimexpr0.5\textwidth-\tabcolsep\relax}@{}
  }}
  {\end{tabular}}
  {\usebibmacro{sortname}}
  {\usebibmacro{omitsortname}}

Damit erhalte ich:

alt text

Kompletter Code, dem ich der Übersichtlichkeit Einrückung spendiert habe und in dem ich die \def durch \newrobustcmd* ersetzt habe:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[
  useprefix=true,
  uniquename=init,
  sorting=nyt,
  seriesformat=standard,
  firstfull=true,
  citedas=true,
  idemfont=normal,
  idembib=true,
  style=authortitle-dw,
  nopublisher=false,
  backend=biber,
  ibidtracker=context
  ]{biblatex}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Folgender Code aus TeX StackExchange:
\makeatletter

% user-level command for printing tabular bibliography
\let\printbibtabular\printbibliography
\patchcmd{\printbibtabular}{\blx@printbibliography}{\bbx@printbibtabular}{}{}
\patchcmd{\printbibtabular}{\blx@printbibliography}{\bbx@printbibtabular}{}{}
\let\bbx@printbibtabular\blx@printbibliography 
\patchcmd{\bbx@printbibtabular}{\blx@bibliography}{\bbx@bibtabular}{}{} 
\patchcmd{\bbx@printbibtabular}
  {\def\blx@theenv{bibliography}}
  {\def\blx@theenv{bibtabular}}{}{}

% underlying macros
\newrobustcmd*\bbx@bibtabular[1]{%
  \blx@bibheading\blx@theheading\blx@thetitle
  \blx@bibnote\blx@theprenote
  \begingroup
    \blx@bibinit
    \let\@noitemerr\@empty
    \let\blx@noitem\blx@warn@bibempty 
    \ifnum\bibinitsep=\z@
      \let\blx@initsep\relax
    \fi
    \ifnum\bibnamesep=\z@
      \let\blx@namesep\relax
    \fi
    \csuse{blx@hook@bibinit}%
    % copy filtered list of entries to internal list macro
    \def\blx@do##1{%
      \blx@ifdata{##1}{%
        \begingroup
          \blx@getdata{##1}
          \blx@bibcheck
          \iftoggle{blx@skipentry}{}{%
            \global\let\blx@noitem\@empty
            \listadd\blx@tempa{##1}}%
        \endgroup}{}}
    \let\blx@done\relax
    \blx@listloop{#1}
    % tabular output for each item in list macro
    \def\do##1{ \bbx@tab@item{##1} & \bbx@tab@subtitle{##1} \\}
    \csuse{blx@env@\blx@theenv}%
      \dolistloop{\blx@tempa}
    \csuse{blx@endenv@\blx@theenv}%
    \blx@bibnote\blx@thepostnote
  \endgroup}

\newrobustcmd*\bbx@tab@subtitle[1]{%
  \begingroup
    \blx@getdata{#1}%
    \printfield{subtitle}
  \endgroup}

\newrobustcmd*\bbx@tab@item[1]{%
  \begingroup
    \blx@getdata{#1}%
    \clearfield{subtitle}%
    \blx@setoptions@type\abx@field@entrytype
    \blx@setoptions@entry
    \csuse{blx@item@\blx@theenv}\relax
    \blx@initsep
    \blx@namesep
    \csuse{blx@hook@bibitem}%
    \blx@execute
    \blx@initunit
    \blx@anchor
    \blx@beglang
      \bibsentence
      \blx@pagetracker
      \blx@driver\abx@field@entrytype
      \blx@postpunct
    \blx@endlang
  \endgroup}

% user-level command for defining tabular bibliography format
\newrobustcmd*{\defbibtabular}[5]{%
  \long\csdef{blx@env@#1}{#2}%
  \long\csdef{blx@endenv@#1}{#3}%
  \long\csdef{bbx@tabenv@#1}{#4}%
  \long\csdef{blx@item@#1}{#5}}

% user-level access to some entry options
\newrobustcmd*\useeditorfalse{\togglefalse{blx@useeditor}}
\newrobustcmd*\usetranslatorfalse{\togglefalse{blx@usetranslator}}

\makeatother

% sortname labels (a robust style should add provision for missing labelnames)
\newbibmacro*{sortname}{%
  \renewcommand*{\multinamedelim}{\addslash\break}%
  \let\finalnamedelim\multinamedelim
  \printtext[bold]{\printnames[last-first]{labelname}}}

% bibitem hook to suppress redundant sortname list
\newbibmacro*{omitsortname}{%
 \ifnameundef{labelname}{}{%
   \ifnameundef{author}
     {\ifnameundef{editor}
       {\ifusetranslator{\clearname{translator}}{}}}
       {\clearname{editor}}
     {\clearname{author}}%
  \useeditorfalse%
  \usetranslatorfalse\usesubtitlefalse}}

\showthe\tabcolsep
% demo new tabular bibliography format
\defbibtabular{bibtabular}
  {\begin{tabular}{
        @{}
        p{\dimexpr0.5\textwidth-\tabcolsep\relax}
        p{\dimexpr0.5\textwidth-\tabcolsep\relax}
        @{}
      }}
  {\end{tabular}}
  {\usebibmacro{sortname}}
  {\usebibmacro{omitsortname}}

\usepackage{filecontents}

\begin{filecontents}{TestBib.bib}
@book{Dante2007,
  author = {Dante Alighieri},
  title = {Die Göttliche Kommödie},
  gender = {sm},
  location = {Stuttgart},
  year = {2007},
  translator = {Hermann Gmelin},
  shorthand = {Alighieri 2007}
}
@periodical{Grundstein,
  title = {Der Grundstein -- Wochenblatt für die deutschen Maurer und diesen verwandten   
    Berufsgenossenschaften},
  subtitle = {Jahrgänge 1910, 1933},
  keywords = {Zeitung}
}
\end{filecontents}
\addbibresource{TestBib.bib}

\begin{document}

\nocite{Grundstein}

\nocite{Dante2007}

\printbibliography[notkeyword=Zeitung,title={Literatur}]
\printbibtabular[keyword=Zeitung,title={Zeitschriften}]

\end{document}
Permanenter link

beantwortet 30 Aug '15, 12:14

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×256
×222

gestellte Frage: 03 Apr '14, 01:26

Frage wurde gesehen: 11,962 Mal

zuletzt geändert: 30 Aug '15, 12:14