Unterstrich in URL nicht richtig in Literaturverzeichnis

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


sunjel96

Unterstrich in URL nicht richtig in Literaturverzeichnis

Beitrag von sunjel96 »

Hallo,

ich habe folgendes Problem:

Ich möchte eine URL im Literaturverzeichnis einfügen, die auch Unterstriche enthält. Ich arbeite mit Mendeley Desktop und TEXstudio. Wenn ich bei Mendeley meinen Literatureintrag eingebe und mir dann die .bib-Datei anschaue, sieht es auch erstmal richtig aus.

Aus den Unterstrichen (Bsp.: www.test.de/_test) wird www.test.de/{\_}test. In meiner pdf-Datei wird allerdings folgendes ausgegeben: www.test.de/%7B%5C_%7Dtest

Wo könnte da der Fehler sein bzw. wie kann ich ihn beheben?
Ich freue mich auf eure Antworten!


Gast

Beitrag von Gast »

Mit biblatex ist das url-Feld sinnvollerweise ein verbose-Feld, das heißt, dass man Sonderzeichen dort einfach so eingeben kann, ohne dass sie von TeX gesondert interpretiert werden. Daher solltest Du in diesem Fall Mendeley anweisen, Sonderzeichen nicht zu escapen:
url = {http://example.edu/~sonder/sogarmit_unterstrich}
statt url = {http://example.edu/~sonder/sogarmit{\_}unterstrich}

Wenn Du nicht biblatex benutzt, oder wenn der Hinweis nicht hilft, wäre ein Minimalbeispiel recht hilfreich.

albrechtloewe
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 24. Aug 2017, 22:40

Selbes Problem

Beitrag von albrechtloewe »

Hallo,

ich habe das gleiche Problem, wie der Threadstarter, bei mir werden die Unterstriche von Mendeley immer als {\_} in die bib-Datei geschrieben, was später im latex-Dokumente als %7B%5C_%7D ausgegeben wird.
Wenn ich in Mendeley das Häkchen bei "Escape special characters" im Reiter BibTex entferne, zerschiesst es mir das komplette Literaturverzeichnis, so dass diese Möglichkeit rausfällt.
Ich habe also die Möglichkeit des sourcemapping von biblatex genutzt und mir ein biber.conf-file geschrieben:
<?xml version="1.0" encoding="UTF-8"?>
<config>
  <sourcemap>
    <maps datatype="bibtex" level="user">
      <map map_overwrite="1">
        <map_step map_field_source="url" map_match="u" map_replace="uuu"/>
      </map>
    </maps>
  </sourcemap>
</config>
FUnktioniert prächtig. Alle u werden in der URL jetzt als uuu geschrieben, aber wenn ich statt u "{\_}" suche, findet Latex diese Zeichenfolge nicht. Was muss ich also nach mapmatch= eingeben?

Meine bib-datei sieht so aus, aber alle Dateien sind auch im Anhang zu finden (die conf-Datei als zip, weil conf-Dateien nicht hochgeladen werden können)
@misc{Gruber,
author = {Gruber, E.},
title = {{Papier-Chemie, Skriptum der dualen Hochschule Karlsruhe f{\"{u}}r den Lehrgang Papiertechnologie}},
url = {http://www.gruberscript.net/09Fuellstoffe{\_}Pigmente.pdf},
urldate = {2018-05-01},
year = {2018}
}
Minimalbeispiel:
\documentclass[12pt,a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage[german]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
%\usepackage{graphicx}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}


\usepackage[style=Authoryear, citestyle=authoryear]{biblatex}
\addbibresource{library.bib}


\begin{document}

Schon \cite{Gruber} stellte fest, dass blablablabla ....

\printbibliography

\end{document}
Ich hoffe meine Beipiel ist minimal genug und ich freue mich auf Antworten.
Dateianhänge
library.bib
(261 Bytes) 209-mal heruntergeladen
biber.zip
(284 Bytes) 171-mal heruntergeladen

albrechtloewe
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 24. Aug 2017, 22:40

Beitrag von albrechtloewe »

Gibt es vvlt auch die Möglichkeit, das ganze onhe separates conf-file zu erledigen? Habe hier

https://tex.stackexchange.com/questions ... rnal-names

jemanden gefunden, der es per \declareSourcemap direkt im tex-file macht, aber leider hat das bei mir nicht funktioniert.

Gast

Beitrag von Gast »

Sag den Mendeley-Menschen, dass sie diesen Mist lassen sollen.
\DeclareSourcemap{
  \maps{
    \map{
      \step[fieldsource=url, 
            match=\regexp{\{\\_\}},
            replace=\regexp{_}]
    }
  }
}
sollte es tun. Man muss innerhalb von \regexp Zeichen nicht für LaTeX escapen sondern für RegExp. Daher muss man wissen, welche Zeichen für RegExp besonders sind.
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}

\usepackage[style=authoryear]{biblatex}
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{Gruber,
  author = {Gruber, E.},
  title = {{Papier-Chemie, Skriptum der dualen Hochschule Karlsruhe f{\"{u}}r den Lehrgang Papiertechnologie}},
  url = {http://www.gruberscript.net/09Fuellstoffe{\_}Pigmente.pdf},
  urldate = {2018-05-01},
  year = {2018}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\DeclareSourcemap{
  \maps{
    \map{
      \step[fieldsource=url, 
            match=\regexp{\{\\_\}},
            replace=\regexp{_}]
    }
  }
}

\begin{document}
Schon \cite{Gruber} stellte fest, dass blablablabla ....

\printbibliography
\end{document}

albrechtloewe
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 24. Aug 2017, 22:40

Beitrag von albrechtloewe »

Danke Dir, es funktioniert!

Antworten