Используйте \newline между полями amsrefs

Используйте \newline между полями amsrefs

Я использую пакет amsrefs для форматирования библиографии. Проблема в том, что иногда строки очень плохо набраны. Проблема часто возникает из-за поля doi. Смотрите изображение ниже. Часть библиографии

Я бы принял ручной перенос строки, даже если запись не рваная с правой стороны. Простой \newline в поле страниц оставляет запятую в строке, что выглядит плохо (см. изображение ниже)

плохая запятая справа

Есть идеи, как вручную разбить строки с правильными знаками препинания? Вот и 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}

решение1

А как насчет этого крайне грязного трюка?

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

решение2

Использовать\linebreak команду для переноса строки с правильной расстановкой знаков препинания. См. раздел 8.5пакет документацииБольше подробностей:

Раздел 8.5 Разрывы строк в библиографии

Предположим, вам нужно рекомендовать LaTeX разрыв строки в определенном месте. Предложение разрыва строки в середине поля не представляет никаких трудностей: просто отредактируйте ваш конечный .bblфайл и вставьте \linebreakкоманду:

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

Но что делать, если вам нужно принудительно перенести строку?междудва поля? На первый взгляд вы можете опасаться, что

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

приведет к переносу строки перед запятой, которая amsrefsобычно вставляется после заголовка: Запятая ставится после переноса строки, а не перед ним. Не бойтесь; amsrefsпрограмма это обнаружит и автоматически переместит запятую перед переносом строки, как вам нужно: По желанию перед переносом строки ставится запятая.

Связанный контент