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 02 Apr '14, 19:26

anne's gravatar image

anne
1711710
Akzeptiert: 85%

bearbeitet 10 Apr '14, 11:25

Clemens's gravatar image

Clemens
19.0k112960


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, 06:14

Clemens's gravatar image

Clemens
19.0k112960

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×127

Frage gestellt: 02 Apr '14, 19:26

Frage wurde angeschaut: 4,218 Mal

Zuletzt aktualisiert: 30 Aug '15, 06:14