So unterbrechen Sie elegant lange Doi-Felder

So unterbrechen Sie elegant lange Doi-Felder

Dies ist ein Codeausschnitt aus meinem Dokument.

\RequirePackage{filecontents}

\begin{filecontents}{bib.bib}
@article{baumert62,
  author = {Baumert, Leonard and Golomb, Solomon W. and Hall, Jr, Marshall},
  doi = {10.1090/S0002-9904-1962-10761-7},
  journal = {Bulletin of the American Mathematical Society},
  number = 3,
  pages = {237--238},
  title = {Discovery of an Hadamard Matrix of Order 92},
  volume = 68,
  year = 1962
}

\end{filecontents}

\documentclass{article}

% for back reference in bibliography
\usepackage[ocgcolorlinks,pdfusetitle]{hyperref}

% for biblatex with biber
\usepackage[
  backend=biber,
  style=alphabetic,
  citestyle=alphabetic,
  backref=true]{biblatex}

% for DOI field
\usepackage{doi}

\addbibresource{bib.bib}

\begin{document}
The first missing order of 92 was resolved in 1962 by Baumert, Golomb,
and Hall Jr. \cite{baumert62} who ran computer experiment on Williamson's method.

%%% bibliography
\printbibliography
\end{document}

Es wird ein Bibliographieeintrag generiert, dessenDOIFeld ist zu lang.

Bildbeschreibung hier eingeben

Natürlich möchte wohl jeder das Problem beheben. Ich weiß, dass ich Folgendes verwenden kann, wie inDasFaden.

\setcounter{biburlnumpenalty}{100}  % allow breaks at numbers
\setcounter{biburlucpenalty}{100}   % allow breaks at uppercase letters
\setcounter{biburllcpenalty}{100}   % allow breaks at lowercase letters

Anstatt Zeilenumbrüche bei Zahlen, Kleinbuchstaben und Großbuchstaben zuzulassen, möchte ich Zeilenumbrüche bei Sonderzeichen wie /, .und zulassen -. Da ich mit dem DOI-Feld arbeite, halte ich diese Stellen für geeignetere Zeilenumbrüche als gewöhnliche alphanumerische Zeichen. Wie kann ich das tun?

Antwort1

Die Option ocgcolorlinkserlaubt keine Zeilenumbrüche in Links.

AushyperrefREADME von

Experimentelle Option „ocgcolorlinks“

Die Idee dahinter sind farbige Links, die zwar beim Betrachten, aber ohne Farbe gedruckt werden.

...

  • Hauptnachteil: Links können nicht zeilenübergreifend unterbrochen werden.

Mit anderen Worten, es ist fast dasselbe wie die Option colorlinks, aber mit zwei Unterschieden.

  • colorlinkserlaubt Zeilenumbrüche in Links, ocgcolorlinkstut dies aber nicht;
  • colorlinksBehält die Farben beim Drucken des Dokuments bei, ocgcolorlinksdruckt sie jedoch in Schwarz.

Was können Sie also tun, um dies zu umgehen?

colorlinksNutzen Sie stattdessen die Option ocgcolorlinksund wählen Sie beim Drucken des Dokuments den Ausdruck in „Schwarzweiß“.

MWE:

\RequirePackage{filecontents}

\begin{filecontents}{bib.bib}
@article{baumert62,
  author = {Baumert, Leonard and Golomb, Solomon W. and Hall, Jr, Marshall},
  doi = {10.1090/S0002-9904-1962-10761-7},
  journal = {Bulletin of the American Mathematical Society},
  number = 3,
  pages = {237--238},
  title = {Discovery of an Hadamard Matrix of Order 92},
  volume = 68,
  year = 1962
}

\end{filecontents}

\documentclass{article}

% for back reference in bibliography
\usepackage[colorlinks,pdfusetitle]{hyperref}

% for biblatex with biber
\usepackage[
  backend=biber,
  style=alphabetic,
  citestyle=alphabetic,
  backref=true]{biblatex}

% for DOI field
\usepackage{doi}

\addbibresource{bib.bib}

\begin{document}
The first missing order of 92 was resolved in 1962 by Baumert, Golomb,
and Hall Jr. \cite{baumert62} who ran computer experiment on Williamson's method.

%%% bibliography
\printbibliography
\end{document} 

Ausgabe:

Bildbeschreibung hier eingeben

Antwort2

Nur der Vollständigkeit halber:ocgcolorlinks(farbige Links werden schwarz gedruckt), die Zeilenumbrüche (und ggf. Seitenumbrüche) umschließen, sind jetzt mit democgx2Paket:

\usepackage{hyperref}
\usepackage[ocgcolorlinks]{ocgx2}

MWE:

\RequirePackage{filecontents}

\begin{filecontents}{bib.bib}
@article{baumert62,
  author = {Baumert, Leonard and Golomb, Solomon W. and Hall, Jr, Marshall},
  doi = {10.1090/S0002-9904-1962-10761-7},
  journal = {Bulletin of the American Mathematical Society},
  number = 3,
  pages = {237--238},
  title = {Discovery of an Hadamard Matrix of Order 92},
  volume = 68,
  year = 1962
}

\end{filecontents}

\documentclass{article}

% for back reference in bibliography
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[pdfusetitle]{hyperref}
\usepackage[ocgcolorlinks]{ocgx2}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% for biblatex with biber
\usepackage[
  backend=biber,
  style=alphabetic,
  citestyle=alphabetic,
  backref=true]{biblatex}

% for DOI field
\usepackage{doi}

\addbibresource{bib.bib}

\begin{document}
The first missing order of 92 was resolved in 1962 by Baumert, Golomb,
and Hall Jr. \cite{baumert62} who ran computer experiment on Williamson's method.

%%% bibliography
\printbibliography
\end{document}

Antwort3

Sie könnenhttp://shortdoi.orgum einen kurzen, dauerhaften Alias ​​für den DOI zu erstellen, wie @matth erwähnte. Diese verkürzten DOIs haben gegenüber dem kanonischen DOI mehrere Vorteile:

  1. Sie sind kurz genug, sodass ein Zeilenumbruch nicht notwendig ist.
  2. Sie lassen sich leicht von Papier kopieren. Ein langer DOI ist fast nutzlos, wenn Sie nur eine Papierkopie eines Artikels haben (es ist einfacher, nur nach Titel/Autoren zu suchen).
  3. Sie sind ästhetisch ansprechender, was weniger Widerstand seitens der Verleger und Co-Autoren bedeutet.

Ich habe ein Skript geschrieben, das eine vorhandene BibTeX-Datei verarbeitet und alle DOI-Namen durch verkürzte DOIs ersetzt: https://github.com/mosco/bibtex-shorten-doi

Ein Wort der Warnung: Leider gelten kurze DOIs nicht als richtige DOIs und können nicht für die manuelle Suche auf anderen Websites als doi.org verwendet werden, wie etwa CrossRef, Sci-Hub usw. Daher empfehle ich derzeit keine automatische Konvertierung aller DOIs in Ihrer Bibliografie.

verwandte Informationen