PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \burlalt für URL in Bib-File



pi-c
05-06-2009, 12:59
Hallo,

ich habe in meinem BibTeX-File einen Eintrag mit einem sehr langen URL, der im Literaturverzeichnis nicht umgebrochen wird. Jetzt habe ich das Paket breakurl gefunden, das sich für einige andere URL schon sehr gut gemacht hat. Nur bei diesem einen Link wird der Domain-Name auseinandergerissen, so dass die Seite nicht gefunden wird, wenn man auf den Link klickt.

Nun stellt dieses Paket den Befehl \burlalt bereit, der es erlaubt, den angezeigten Link zu verändern, aber trotzdem das korrekte Ziel zu speichern. Eigentlich genau das, was ich brauche -- nur wie setze ich den richtig ein? Wenn ich den im Bibfile bei URL einbaue:



@WWW{id,
author = {Ein Autor},
title = {Seitentitel},
url = {\burlalt{OriginalLink}{Kurzform},
urldate = {Zugriffsdatum},
year = {Jahr}
}


erscheint in der Bibliographie anstelle der Kurzform "\burlalt{OriginalLink}{Kurzform}". Hat vielleicht jemand ein Beispiel?

Schönen Gruß,

Andreas

rais
08-06-2009, 00:44
Moin moin,




url = {\burlalt{OriginalLink}{Kurzform},


mal abgesehen davon, daß hier eine schließende Klammer fehlt: versuch es mit `note' statt `url' ... oder tu wenigstens kund, welchen Bibliographiestil Du verwendest, besser wäre noch ein Minimalbeispiel Deinerseits.

MfG

pi-c
08-06-2009, 12:29
Guten Morgen!


mal abgesehen davon, daß hier eine schließende Klammer fehlt:
Stimmt. Daran lag es aber nicht, das Problem liegt tiefer...


versuch es mit `note' statt `url'
Das wäre natürlich eine Idee! Aber werden notes nicht am Ende des Eintrags dargestellt? Habe es gerade mal probiert -- funktioniert so leider nicht ganz:

Wenn ich statt "url" einfach "note" verwende, erscheint nur "Autor (Jahr):" -- Seitentitel, URL und Zugriffsdatum werden ignoriert. Mit der Option "endnote" in jurabib.cfg ergibt sich "Autor (Jahr):. URL", was auch nicht richtig ist.


... oder tu wenigstens kund, welchen Bibliographiestil Du verwendest,MfG
Im Prinzip beruht der auf jureco -- ich hatte den Style irgendwann mal leicht angepasst (weiss nicht mehr genau, was ich da geändert habe, waren wohl irgendwelche Feldseparatoren und ähnlicher Kleinkram), aber gehen wir ruhig einmal von einem reinen jureco aus.


besser wäre noch ein Minimalbeispiel Deinerseits.
Das Problem hat sich mittlerweile übrigens etwas geändert, mit dem ursprünglichen URL klappte es auf einmal doch. Aktuell geht es allerdings immer noch darum, wie man entweder \burlalt oder aber einen mit \urldef vordefinierten Link verwendet, weil der Link ein Prozentzeichen enthält. Im Minimalbeispiel habe ich einmal drei Varianten des Bibliographieeintrags angegeben.

- pickard:1 funktioniert halbwegs. Es gibt keine Fehlermeldung und wenn man den Link anklickt, kommt man zur richtigen Seite. Allerdings wird im Druck das auskommentierte Prozentzeichen (\%) angezeigt -- kopiert man den Link so in den Browser, wird die Seite natürlich nicht gefunden.

- pickard:2 funktioniert, wenn man das hyperref-Paket nicht einbindet -- hyperref wird anscheinend durch das Prozentzeichen durcheinandergebracht. (Ist aktuell auskommentiert -- bitte extra aktivieren!)

-pickard:3 läuft zwar ohne Fehler durch, allerdings wird "\pickard" nicht durch den richtigen Link ersetzt.

Hier das Minimalbeispiel:

test.tex:


\documentclass[a4paper,12pt]{article}
\usepackage[spanish,ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{jurabib}
\usepackage{color}

% Evil URL
\urldef{\pickard}\url{http://www.ciepac.org/archivo/otras%20temas/ppprivalem.htm}

\usepackage[hyperfootnotes=false,%
pdfpagelabels,%
breaklinks,%
colorlinks=true,citecolor=blue,%
plainpages=false,%
linktocpage,%
naturalnames=true,%
dvips]{hyperref}
\usepackage{breakurl}


% Turn on Spanish
\newcommand{\spanish}[1]{%
\foreignlanguage{spanish}{\emph{#1}}%
}

\begin{document}
\bibliographystyle{jureco}
\bibliography{test}

\nocite{*}

\end{document}


test.bib:


@WWW{pickard:1,
author = {Pickard, Miguel},
title = {{PPP: \spanish{Plan Puebla-Panam{\'{a}}} oder Private Profit-Pläne?}},
url = {http://www.ciepac.org/archivo/otras\%20temas/ppprivalem.htm},
urldate = {30.\,08.\,2007},
year = 2002
}

WWW{pickard:2,
author = {Pickard, Miguel},
title = {{PPP: \spanish{Plan Puebla-Panam{\'{a}}} oder Private Profit-Pläne?}},
url = {http://www.ciepac.org/archivo/otras%20temas/ppprivalem.htm},
urldate = {30.\,08.\,2007},
year = 2002
}

@WWW{pickard:3,
author = {Pickard, Miguel},
title = {{PPP: \spanish{Plan Puebla-Panam{\'{a}}} oder Private Profit-Pläne?}},
url = {\pickard},
urldate = {30.\,08.\,2007},
year = 2002
}


jurabib.cfg


\jurabibsetup{%
authorformat=year,
crossref=long,
howcited=normal,
lookforgender,
pages=format,
pages=test,
see,
commabeforerest,
titleformat=italic,
titleformat=colonsep,
bibformat=compress,
dotafter=bibentry,
endnote,
}

% Fonts für Bibliographie
\renewcommand*{\biblnfont}{\textit} % Author (last name)
\renewcommand*{\bibfnfont}{\textit} % Author (first name)
\renewcommand*{\bibelnfont}{\textit} % Editor (last name)
\renewcommand*{\bibefnfont}{\textit} % Editor (first name)
\renewcommand*{\bibtfont}{\textnormal} % Title (Bücher)
\renewcommand*{\bibbtfont}{\textnormal} % Title (Sammelwerke)
\renewcommand*{\bibjtfont}{\textnormal} % Title (Journals)
\renewcommand*{\bibapifont}{\textnormal}% Title (Artikel, Beitrag in Sammelwerk etc.)
\renewcommand*{\bibsnfont}{\textnormal} % Title (Series)

% Separators
\AddTo\bibsgerman{%
\def\incollinname{in:} % New separator for @INCOLLECTION
\def\inbookinname{in:} % New separator for @INBOOK
}

\renewcommand*{\bibbtsep}{in: } % Book title Separation
\renewcommand*{\bibjtsep}{in: } % Journal title Separation
\renewcommand*{\bibansep}{: } % After Name Separation
\renewcommand*{\bibatsep}{, } % After Title Separation
\renewcommand*{\bibbdsep}{,} % Before Date Separation

\renewcommand*{\jbpagesep}{:} % Doppelpunkt anstelle Komma vor Seite (Zitat)
\renewcommand*{\jbcitationyearformat}[1]{#1} % Klammern weg um Jahr (Zitat)


\renewcommand*{\bibnumberformat}[1]{\hfill (#1)~~~}

\renewcommand*{\bibnotcited}{}

% Strings für "Herausgeber"
\AddTo\bibsgerman{%
\renewcommand*{\editorname}{(Hrsg.)}%
\renewcommand*{\editorsname}{(Hrsg.)}%
\renewcommand*{\sndeditorname}{(Hrsg.)}%
\renewcommand*{\sndeditorsname}{(Hrsg.)}%
\renewcommand*{\edbyname}{hrsg. v.}%
\renewcommand*{\Edbyname}{Hrsg. v.}%
}

% Strings für "ibid." anpassen
\AddTo\bibsgerman{%
\renewcommand*{\ibidemname}{Ebd.}%
\renewcommand*{\ibidemmidname}{ebd.}%
}

% Strings für URL/URLDATE anpassen
\AddTo\bibsgerman{%
\renewcommand*{\urldatecomment}{}% "Zugriff am" entfernen
\renewcommand*{\bibbudcsep}{, }% "--" zwischen URL und \urldatecomment ersetzen
}

% Format von Seitenzahlenprefix bei "pages=format"
\AddTo\bibsgerman{%
\def\jbpagename{}% im Zitat: Vowe 2003: 12
\def\jbpagesname{}% im Zitat: Vowe 2003: 12-15
\def\bibpagename{S.~}% in Bilbliography: Vowe 2003: [...], S.~12
\def\bibpagenames{S.~}% in Bilbliography: Vowe 2003: [...], S.~12-15
}

% Eintrag für "et al." ändern
\AddTo\bibsgerman{%
\def\etalname{\unskip\nobreakspace{}u.\,a.}%
\def\etalnamenodot{\unskip\nobreakspace{}u.\,a.}%
}

\renewcommand{\jbbeforestartpagesep}{:\space}


Schönen Gruß,

Andreas

pi-c
08-06-2009, 18:11
Der Maintainer von breakurl war so nett, mir weiterzuhelfen. Das Problem war einmal, dass die Version von breakurl, die in Debian über texlive-latex-extra installiert wird, veraltet ist: dort wird noch v. 1.20 installiert, während Upstream schon bei v. 1.30 ist. Außerdem scheint jurabib URLs irgendwie fehlerhaft zu erzeugen, so dass man das Prozentzeichen erst codieren muss:


The problem, as I can deduce, is that jurabib is taking control of URL
generation, but it has some glitches regarding percent signs. The only
workaround I found was to manually declare a command to output a percent
char and use that in the URLs.

Put this declaration at the beginning of your .bib file (NOT at the .tex
preamble):

@PREAMBLE{"{\catcode`\%=12\relax\gdef\urlpercent{%}}"}

This means: first reprogram the LaTeX parser to consider "%" as a
regular character, not a start-of-comment command (this is the meaning
of the \catcode thing); then globally define (\gdef) the \urlpercent
command to output a percent character. Afterwards the \catcode loses
its effect because it is restricted to a local scope (i.e., the entire
sequence is surrounded by {}).

Now use this definition in place of % or \% or whatever:

@WWW{pickard:2002,
[...]
url =
{http://www.ciepac.org/archivo/otras\urlpercent20temas/ppprivalem.htm},
[...]


In my tests this did the trick: both the generated text and the
underlying URL don't show the backspace before the percent sign.

It may not be the prettiest solution, but... :-/

Nach Update auf die neueste Version von breakurl funktioniert nun alles wie gewünscht. :-)