
Gibt es eine Möglichkeit, den URL-Bruch mit zu kontrollieren biblatex
? Ich verwendeACS-Handbuchund es heißt:
Notiz:Verschiedene Webbrowser unterbrechen den Text einer URL an unterschiedlichen Stellen. Wenn in einem gedruckten Werk die URL am Ende einer Zeile unterbrochen werden muss, sollte der Unterbruch nach einem Doppelpunkt oder einem doppelten Schrägstrich erfolgen; vor einem einfachen Schrägstrich, einer Tilde, einem Punkt, einem Komma, einem Bindestrich, einem Unterstrich, einem Fragezeichen, einem Nummernzeichen oder einem Prozentzeichen; oder vor oder nach einem Gleichheitszeichen oder einem Et-Zeichen.
Ich verwende das url
Paket auch, um die URL mit derselben Schriftart wie meinen Text zu setzen. Ich habe die Paketdokumentation gelesen und bin etwas verwirrt von den Makros \UrlBreaks
und \UrlBigBreaks
, aber soweit ich weiß, können diese nur verwendet werden, um einen Zeilenumbruch nach den aufgelisteten Zeichen zuzulassen, aber nicht davor, wie es einige der Anforderungen des Stilleitfadens vorsehen (und ich persönlich möchte auf keinen Fall Zeilenumbrüche vor einem Punkt!). Gibt es eine Möglichkeit, dies zu tun?
Antwort1
Ich denke, das sollte das tun, was Sie wollen. Es definiert einen neuen Stil \urlstyle{acs}
, der Ihre Regeln neu definiert \UrlBreaks
und einhält.\UrlSpecials
Es gibt ein kleines Problem. Es wird bevorzugt zwischen :
und //
statt zwischen den umgebrochen //
, aber wenn Sie //
irgendwo anders haben, besteht die Möglichkeit, dass es zwischen umbricht. Ich habe versucht, das zu beheben, aber es hat nicht funktioniert. Ich glaube jedoch nicht, dass dies in einem echten Beispiel passieren wird.
MWE
\documentclass{article}
\usepackage{url}
\makeatletter
\def\url@acsstyle{%
\def\UrlBreaks{\do\/}%
\def\UrlSpecials{%
\do\~{\penalty\UrlBreakPenalty\mathchar`~}%
\do\.{\penalty\UrlBreakPenalty\mathchar`.}%
\do\,{\penalty\UrlBreakPenalty\mathchar`,}%
\do\-{\penalty\UrlBreakPenalty\mathchar`-}%
\do\_{\penalty\UrlBreakPenalty\mathchar`_}%
\do\?{\penalty\UrlBreakPenalty\mathchar`?}%
\do\#{\penalty\UrlBreakPenalty\mathchar"23}%
\do\%{\Url@percent}%
\do\={\penalty\UrlBreakPenalty\mathchar`=\penalty\UrlBreakPenalty}%
\do\&{\penalty\UrlBreakPenalty\mathchar`&\penalty\UrlBreakPenalty}%
\do\ {\Url@space}\do\^^M{\Url@space}%
\Url@force@Tilde}%
}
\makeatother
\raggedright
\begin{document}
\hsize 5cm
\section*{Default Style}
\url{https://tex.stackexchange.com/questions/477945/control-url-breaking}
\section*{ACS Style}
\urlstyle{acs}
\url{https://tex.stackexchange.com/questions/477945/control-url-breaking}
\end{document}
Antwort2
Sie benötigen drei verschiedene Pakete. Fügen Sie Folgendes in Ihren Code ein:
\usepackage{url}
\usepackage{breakurl}
\usepackage[breaklinks]{hyperref}
Jetzt müssen Sie nur noch hinzufügen, ob es nach einem oder einem \def\UrlBreaks{\do\/\do-}
unterbrochen werden kann ./
-
Wenn der Eintrag beispielsweise folgendermaßen lautet:
@misc{GartnerNFC,
author = "Clark, Sarah",
howpublished = "nfcworld.com",
month = aug,
note = "Cited July 3rd 2012",
title = "{Gartner’s Hype Cycle places NFC at ‘Peak of Inflated Expectations’}",
url = "http://www.nfcworld.com/2011/08/11/39008/gartner-hype-cycle-places-nfc-at-peak-of-inflated-expectations",
year = "2011"
}
Es wird so aussehen:
Weitere Optionen finden Sie in der url
Paketdokumentation.