Seite 2 von 2

Verfasst: Fr 30. Aug 2019, 08:00
von Gast
Doch, im Grunde genau das.

Ersetze

Code: Alles auswählen

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Mustermann2019,
  author    = {Max Mustermann},
  shorthand = {Muster},
  title     = {Test},
  year      = {2019},
}
\end{filecontents}

\addbibresource{\jobname.bib}
durch

Code: Alles auswählen

\addbibresource{Literatur.bib}
Wobei Literatur.bib der Name Deiner (im selben Ordner wie die .tex-Datei gespeicherten) .bib-Datei ist.

Wenn da etwas nicht geht, zeig uns bitte den Code, den Du probierst, die .bib-Datei (idealerweise testest Du nur mit einem kleinen Teil Deiner .bib-Datei in einem neuen Ordner und zeigst uns das), sowie die .log und .blg-Dateien.

Verfasst: Fr 30. Aug 2019, 08:20
von Gast
Tex Datei

Code: Alles auswählen

\documentclass[a4paper,10pt]{article} 

\usepackage[ 
  style=authortitle-ibid, 
  backend=biber, 
  ibidtracker=constrict, 
  idemtracker=constrict, 
  loccittracker=constrict, 
]{biblatex} 


\DeclareNameAlias{labelname}{sortname} 

\newtoggle{cbx:droppageprefix} 

\renewbibmacro*{cite}{% 
  \global\boolfalse{cbx:loccit}% 
  \global\togglefalse{cbx:droppageprefix}% 
  \iffieldundef{shorthand} 
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} 
       {\usebibmacro{cite:ibid}} 
       {\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage} 
          {\bibstring[\mkibid]{idem\thefield{gender}}} 
          {\printnames{labelname}} 
        \setunit*{\printdelim{nametitledelim}}% 
        \usebibmacro{cite:title}}}% 
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} 
       {\usebibmacro{cite:ibid}} 
       {\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage} 
          {\bibstring[\mkibid]{idem\thefield{gender}}} 
          {\printnames{labelname}} 
        \setunit*{\printdelim{nametitledelim}}% 
        \usebibmacro{cite:shorthand}}}} 

\DeclareFieldFormat{shorthandbib}{\mkbibbrackets{#1}} 

\newbibmacro*{shorthand}{% 
  \printfield[shorthandbib]{shorthand}} 

\DeclareDelimFormat{nameshorthanddelim}{\addspace} 
\DeclareDelimAlias{nonameshorthanddelim}{nameshorthanddelim} 

\makeatletter 
\renewbibmacro*{author}{% 
  \ifboolexpr{ 
    test \ifuseauthor 
    and 
    not test {\ifnameundef{author}} 
  } 
    {\usebibmacro{bbx:dashcheck} 
       {\bibnamedash} 
       {\usebibmacro{bbx:savehash}% 
        \printnames{author}% 
        \iffieldundef{authortype} 
          {\setunit{\printdelim{nameshorthanddelim}}} 
          {\setunit{\printdelim{authortypedelim}}}}% 
     \iffieldundef{authortype} 
       {} 
       {\usebibmacro{authorstrg}% 
        \setunit{\printdelim{nameshorthanddelim}}}}% 
    {\global\undef\bbx@lasthash 
     \usebibmacro{labeltitle}% 
     \setunit*{\printdelim{nonameshorthanddelim}}}% 
  \usebibmacro{shorthand}} 

\renewbibmacro*{bbx:editor}[1]{% 
  \ifboolexpr{ 
    test \ifuseeditor 
    and 
    not test {\ifnameundef{editor}} 
  } 
    {\usebibmacro{bbx:dashcheck} 
       {\bibnamedash} 
       {\printnames{editor}% 
        \setunit{\printdelim{editortypedelim}}% 
        \usebibmacro{bbx:savehash}}% 
     \usebibmacro{#1}% 
     \clearname{editor}% 
     \setunit{\printdelim{nameshorthanddelim}}}% 
    {\global\undef\bbx@lasthash 
     \usebibmacro{labeltitle}% 
     \setunit*{\printdelim{nonameshorthanddelim}}}% 
  \usebibmacro{shorthand}} 

\renewbibmacro*{bbx:translator}[1]{% 
  \ifboolexpr{ 
    test \ifusetranslator 
    and 
    not test {\ifnameundef{translator}} 
  } 
    {\usebibmacro{bbx:dashcheck} 
       {\bibnamedash} 
       {\printnames{translator}% 
        \setunit{\printdelim{translatortypedelim}}% 
        \usebibmacro{bbx:savehash}}% 
     \usebibmacro{#1}% 
     \clearname{translator}% 
     \setunit{\printdelim{nameshorthanddelim}}}% 
    {\global\undef\bbx@lasthash 
     \usebibmacro{labeltitle}% 
     \setunit*{\prBintdelim{nonameshorthanddelim}}}% 
  \usebibmacro{shorthand}} 
\makeatother 


\addbibresource{Literatur.bib} 


\begin{document} 
Test.\footcite[Vgl.][133]{Mustermann2019} 
\printbibliography 
\end{document}
Bib-Datei

Code: Alles auswählen

\usepackage{filecontents} 
\begin{filecontents}{\Literatur.bib} 
@book{Mustermann2019,
	Author = {Max Mustermann},
	Date-Added = {2019-08-29 12:55:56 +0200},
	Date-Modified = {2019-08-29 12:58:27 +0200},
	Shorthand = {Muster},
	Title = {Test},
	Year = {2019}}
\end{filecontents} 
Bbl-Datei

Code: Alles auswählen

[0] Config.pm:304> INFO - This is Biber 2.13
[0] Config.pm:307> INFO - Logfile is 'Vorlage.blg'
[37] biber-darwin:315> INFO - === Fri Aug 30, 2019, 08:10:36
[54] Biber.pm:375> INFO - Reading 'Vorlage.bcf'
[156] Biber.pm:905> INFO - Found 1 citekeys in bib section 0
[174] Biber.pm:4196> INFO - Processing section 0
[174] Utils.pm:75> INFO - Globbing data source 'Literatur.bib'
[175] Utils.pm:91> INFO - Globbed data source 'Literatur.bib' to Literatur.bib
[184] Biber.pm:4373> INFO - Looking for bibtex format file 'Literatur.bib' for section 0
Log-Datei(bin mir unsicher, was du von dem brauchst)

Code: Alles auswählen

LaTeX Warning: Citation 'Mustermann2019' on page 1 undefined on input line 110.

LaTeX Warning: Empty bibliography on input line 111.

LaTeX Warning: There were undefined references.

Verfasst: Fr 30. Aug 2019, 08:30
von Gast
Habe grade keine Zeit zum Testen, aber das ganze filecontents gesums gehört nicht in die .bib-Datei, die sollte nur

Code: Alles auswählen

@book{Mustermann2019,
   Author = {Max Mustermann},
   Date-Added = {2019-08-29 12:55:56 +0200},
   Date-Modified = {2019-08-29 12:58:27 +0200},
   Shorthand = {Muster},
   Title = {Test},
   Year = {2019}}
enthalten.

In meinem Test-Dokument war das filecontents dafür da, eine .bib-Datei mit dem hier gezeigten Inhalt automatisch zu erstellen, sodass mein Beispiel aus einer Datei bestehen kann.

Die .blg-Datei sieht unvollständig aus. Das könnte daran liegen, dass sich Biber böse an dem falschen Inhalt der .bib-Datei verschluckt hat, es kann aber auch etwas anderes sein.

Verfasst: Fr 30. Aug 2019, 08:35
von Gast
eine Ahnung, was da zu tun ist?

Verfasst: Fr 30. Aug 2019, 08:44
von Gast
Was hast Du denn bis jetzt gemacht?

Ist die .bib-Datei korrigiert? Hast Du alle temporären Dateien (.aux, .bbl, .bcf, ....) gelöscht und nochmal neu kompiliert?

Da Du die Rückmeldung gabst, dass das Beispiel bei Dir funktioniert hat, können wir davon ausgehen, dass prinzipiell alle Dinge funktionieren. Wenn jetzt also irgendwo etwas hängt, dann wird das wahrscheinlich mit den konkreten Dateien zusammenhängen.

Verfasst: Fr 30. Aug 2019, 10:23
von Gast
jap, korrigiert und alles nochmal gelöscht. Ändert aber nichts

Das Problem muss ja irgendwie mit dem Verweis auf die bib Datei liegen, denn mit dem filecontents-Package direkt in der Datei funktioniert es ja.

Verfasst: Fr 30. Aug 2019, 10:36
von Gast
Heißt die Datei wirklich Literatur.bib? Befindet sie sich am richtigen Ort (im selben Ordner wie die Haupt-.tex-Datei)? Hast Du vielleicht zufällig mehrere Dateien mit dem Namen Literatur.bib und es liegt eine Verwechselung vor? Wie sieht die .bib-Datei denn jetzt aus? Wie die .log und .blg-Dateien?

Verfasst: Fr 30. Aug 2019, 11:00
von Gast
Ja die Datei heißt so und befindet sich im selben Ordner.

Keine weiteren Dateien außer die bib, die tex und die ganzen anderen Dateien, die tex erzeugt.

bib Datei

Code: Alles auswählen

%% This BibTeX bibliography file was created using BibDesk.
%% http://bibdesk.sourceforge.net/

%% Created for xxx at 2019-08-29 12:58:27 +0200 


%% Saved with string encoding Westeuropäisch (ISO Latin 1) 


@book{Mustermann2019,
	Author = {Max Mustermann},
	Date-Added = {2019-08-29 12:55:56 +0200},
	Date-Modified = {2019-08-29 12:58:27 +0200},
	Shorthand = {Muster},
	Title = {Test},
	Year = {2019}}


@comment{BibDesk Static Groups{
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>group name</key>
		<string> xxx </string>
		<key>keys</key>
		<string></string>
	</dict>
</array>
</plist>
}}
Was meinst du mit "Wie die .log und .blg-Dateien?

Verfasst: Fr 30. Aug 2019, 12:10
von Gast
Notfalls hab ich jetzt \DeclareBibliographyDriver{...} eingerichtet mit

Code: Alles auswählen

	\iffieldundef{shorthand}{}{[\printfield{shorthand}]}
ist natürlich umständlicher, weil es für alles manuell eingestellt werden muss (book, Artikel, usw.) aber naja. Besser als nichts

Verfasst: Fr 30. Aug 2019, 16:42
von MoeWe
Heißt das, das Beispiel von oben (Gestern 21:01) funktioniert wie gepostet, der Code tut es aber nicht in Deinem echten Dokument, aber dort funktioniert es, die Driver zu ändern?

Das wäre etwas mysteriös. Passieren in Deinem echten Dokument noch andere Dinge mit biblatex? Wie genau sieht die Ausgabe aus? Was genau hast Du bis jetzt probiert. Wo scheitert das?

Hier nochmal der für mich funktionierende Code mit zwei weiteren Einträgen mit shorthand zur Kontrolle, dass es auch wirklich geht.

Code: Alles auswählen

\documentclass[a4paper,10pt]{article}

\usepackage[
  style=authortitle-ibid,
  backend=biber,
  ibidtracker=constrict,
  idemtracker=constrict,
  loccittracker=constrict,
]{biblatex}


\DeclareNameAlias{labelname}{sortname}

\newtoggle{cbx:droppageprefix}

\renewbibmacro*{cite}{%
  \global\boolfalse{cbx:loccit}%
  \global\togglefalse{cbx:droppageprefix}%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage}
          {\bibstring[\mkibid]{idem\thefield{gender}}}
          {\printnames{labelname}}
        \setunit*{\printdelim{nametitledelim}}%
        \usebibmacro{cite:title}}}%
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifciteidem\AND\NOT\iffirstonpage}
          {\bibstring[\mkibid]{idem\thefield{gender}}}
          {\printnames{labelname}}
        \setunit*{\printdelim{nametitledelim}}%
        \usebibmacro{cite:shorthand}}}}

\DeclareFieldFormat{shorthandbib}{\mkbibbrackets{#1}}

\newbibmacro*{shorthand}{%
  \printfield[shorthandbib]{shorthand}}

\DeclareDelimFormat{nameshorthanddelim}{\addspace}
\DeclareDelimAlias{nonameshorthanddelim}{nameshorthanddelim}

\makeatletter
\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\usebibmacro{bbx:savehash}%
        \printnames{author}%
        \iffieldundef{authortype}
          {\setunit{\printdelim{nameshorthanddelim}}}
          {\setunit{\printdelim{authortypedelim}}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
        \setunit{\printdelim{nameshorthanddelim}}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameshorthanddelim}}}%
  \usebibmacro{shorthand}}

\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
        \setunit{\printdelim{editortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\printdelim{nameshorthanddelim}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameshorthanddelim}}}%
  \usebibmacro{shorthand}}

\renewbibmacro*{bbx:translator}[1]{%
  \ifboolexpr{
    test \ifusetranslator
    and
    not test {\ifnameundef{translator}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{translator}%
        \setunit{\printdelim{translatortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{translator}%
     \setunit{\printdelim{nameshorthanddelim}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameshorthanddelim}}}%
  \usebibmacro{shorthand}}
\makeatother

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Mustermann2019,
  author    = {Max Mustermann},
  shorthand = {Muster},
  title     = {Test},
  year      = {2019},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Test.\footcite[Vgl.][133]{Mustermann2019}

\cite{kant:kpv,kant:ku}

\printbibliography
\end{document}