MWE

MWE

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 urlPaket auch, um die URL mit derselben Schriftart wie meinen Text zu setzen. Ich habe die Paketdokumentation gelesen und bin etwas verwirrt von den Makros \UrlBreaksund \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 \UrlBreaksund 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}

Ausgabe

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 urlPaketdokumentation.

verwandte Informationen