Use \newline entre campos amsrefs

Use \newline entre campos amsrefs

Eu uso o pacote amsrefs para formatar bibliografia. O problema é que às vezes as linhas ficam muito mal compostas. O problema geralmente é causado por um campo doi. Veja a imagem abaixo. Parte da bibliografia

Eu aceitaria a quebra manual de linha, mesmo que a entrada não esteja irregular no lado direito. Simples \newline no campo de páginas deixa uma vírgula na linha, que fica mal (veja a imagem abaixo)

vírgula ruim à direita

Alguma idéia de como quebrar linhas manualmente com tratamento adequado de sinais de pontuação? Aí vem o MWE

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsrefs}
\renewcommand{\PrintDOI}[1]{DOI~#1}
\begin{document}

\begin{bibdiv}
\begin{biblist}
\bib{14}{article}{
  author={Kim, S.G.},
  title={The unit ball},
  journal={Kyungpook Math. J.},
  volume={53},
  date={2013},
  pages={295--306},
  doi={10.5666/KMJ.2013.53.2.295},
}
\end{biblist}
\end{bibdiv}
\end{document}

Responder1

Que tal esse hack extremamente sujo?

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsrefs}
\renewcommand{\PrintDOI}[1]{DOI~#1}
\begin{document}

\DefineSimpleKey{bib}{doinewline}    
\BibSpec{article}{%
    +{}  {\PrintAuthors}                {author}
    +{,} { \textit}                     {title}
    +{.} { }                            {part}
    +{:} { \textit}                     {subtitle}
    +{,} { \PrintContributions}         {contribution}
    +{.} { \PrintPartials}              {partial}
    +{,} { }                            {journal}
    +{}  { \textbf}                     {volume}
    +{}  { \PrintDatePV}                {date}
    +{,} { \issuetext}                  {number}
    +{,} { \eprintpages}                {pages}
    +{,} { }                            {status}
    +{}  {, \newline\PrintDOI}          {doinewline}
    +{,} { \PrintDOI}                   {doi}
    +{,} { available at \eprint}        {eprint}
    +{}  { \parenthesize}               {language}
    +{}  { \PrintTranslation}           {translation}
    +{;} { \PrintReprint}               {reprint}
    +{.} { }                            {note}
    +{.} {}                             {transition}
    +{}  {\SentenceSpace \PrintReviews} {review}
}

\begin{bibdiv}
\begin{biblist}
\bib{14}{article}{
  author={Kim, S.G.},
  title={The unit ball},
  journal={Kyungpook Math. J.},
  volume={53},
  date={2013},
  pages={295--306},
  doinewline={10.5666/KMJ.2013.53.2.295},
}
\end{biblist}
\end{bibdiv}
\end{document}

Responder2

Use o \linebreakcomando para obter uma quebra de linha com o posicionamento adequado da pontuação. Consulte a Seção 8.5 dodocumentação do pacotepara mais detalhes:

Seção 8.5 Quebras de linha na bibliografia

Suponha que você precise recomendar ao LaTeX que ele quebre uma linha em um local específico. Sugerir uma quebra de linha no meio de um campo não apresenta dificuldades: basta editar o .bblarquivo final e inserir um \linebreakcomando:

subtitle={Toward a transformative hermeneutics\linebreak[3] of quantum gravity},

Mas e se você precisar forçar uma quebra de linhaentredois campos? À primeira vista você pode temer que

subtitle={...hermeneutics of quantum gravity\linebreak[3]},

causará uma quebra de linha antes da vírgula que amsrefsnormalmente é inserida após o título: A vírgula é colocada após a quebra de linha, em vez de antes. Não tenha medo; amsrefsirá detectar isso e mover automaticamente a vírgula na frente da quebra de linha, conforme desejado: A vírgula é colocada antes da quebra de linha, conforme desejado.

informação relacionada