Seite 1 von 1

Unterstrich in URL nicht richtig in Literaturverzeichnis

Verfasst: Di 27. Dez 2016, 12:55
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!

Verfasst: Di 27. Dez 2016, 15:25
von Gast
Woher sollen wir das wissen?

Hast du die wichtigen Hinweise gelesen/durchgearbeitet?

Verfasst: Di 27. Dez 2016, 15:25
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.

Selbes Problem

Verfasst: Di 29. Mai 2018, 09:40
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.

Verfasst: Di 29. Mai 2018, 09:44
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.

Verfasst: Di 29. Mai 2018, 10:17
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}

Verfasst: Di 29. Mai 2018, 11:22
von albrechtloewe
Danke Dir, es funktioniert!