Cómo romper elegantemente un largo campo doi

Cómo romper elegantemente un largo campo doi

Este es un fragmento de código de mi artículo.

\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}

Genera un elemento bibliográfico cuyoDOIEl campo es demasiado largo.

ingrese la descripción de la imagen aquí

Naturalmente, supongo que todo el mundo quiere solucionarlo. Sé que puedo usar lo siguiente como se explica enestehilo.

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

En lugar de permitir saltos de línea en números, letras minúsculas y mayúsculas, me gustaría permitir saltos de línea en caracteres especiales /como .y -. Como estoy tratando con el campo DOI, creo que estos son lugares más apropiados para permitir saltos de línea en lugar de caracteres alfanuméricos comunes. ¿Cómo puedo hacer eso?

Respuesta1

La opción ocgcolorlinksno permite saltos de línea en los enlaces.

DehyperrefLÉAME

Opción experimental 'ocgcolorlinks'

La idea son enlaces coloreados, cuando se ven, pero impresos sin colores.

...

  • Principal desventaja: los enlaces no se pueden dividir entre líneas.

Es decir, es casi lo mismo que la opción colorlinks, pero con dos diferencias.

  • colorlinkspermite saltos de línea en enlaces, pero ocgcolorlinksno;
  • colorlinksconserva los colores cuando se imprime el documento, mientras que ocgcolorlinkslos imprime en negro.

Entonces, ¿qué puedes hacer para evitar esto?

Utilice la colorlinksopción en lugar de ocgcolorlinksy, cuando imprima el documento, elija imprimirlo en "blanco y negro".

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} 

Producción:

ingrese la descripción de la imagen aquí

Respuesta2

Sólo para completar esoocgcolorlinks(enlaces de color que se imprimen en negro) que se ajustan a saltos de línea (y saltos de página, si es necesario) ahora son posibles con elocgx2paquete:

\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}

Respuesta3

Puedes usarhttp://shortdoi.orgpara crear un alias breve y persistente para el DOI, como mencionó @matth. Estos DOI abreviados tienen varias ventajas sobre el DOI canónico:

  1. Son lo suficientemente cortos como para que no sea necesario saltar líneas.
  2. Son fáciles de copiar desde papel. Un DOI largo es casi inútil si solo tienes una copia impresa de un artículo (es más fácil buscar simplemente el título/los autores).
  3. Son más agradables estéticamente, lo que significa menos resistencia por parte de editores y coautores.

Escribí un script que procesará un archivo BibTeX existente y reemplazará todos los nombres DOI con DOI acortados: https://github.com/mosco/bibtex-shorten-doi

Una advertencia: desafortunadamente, los DOI cortos no se consideran DOI adecuados y no se pueden usar para búsquedas manuales en ningún sitio que no sea doi.org, como CrossRef, Sci-Hub, etc. Por lo tanto, por el momento, no recomiendo la conversión automática. de todos los DOI en su bibliografía.

información relacionada