Verwenden Sie \newline zwischen amsrefs-Feldern

Verwenden Sie \newline zwischen amsrefs-Feldern

Ich verwende das Paket amsrefs, um die Bibliographie zu formatieren. Das Problem ist, dass die Zeilen manchmal sehr schlecht gesetzt sind. Das Problem wird oft durch ein DOI-Feld verursacht. Siehe das Bild unten. Teil der Bibliographie

Ich würde einen manuellen Zeilenumbruch akzeptieren, auch wenn der Eintrag auf der rechten Seite nicht unregelmäßig ist. Ein einfaches \newline im Seitenfeld hinterlässt ein Komma in der Zeile, was schlecht aussieht (siehe Bild unten).

falsches Komma rechts

Irgendeine Idee, wie man Zeilen mit der richtigen Satzzeichenbehandlung manuell umbricht? Hier kommt das 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}

Antwort1

Wie wäre es mit diesem extrem schmutzigen Hack?

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

Antwort2

Verwenden Sie den \linebreakBefehl, um einen Zeilenumbruch mit korrekter Platzierung der Satzzeichen zu erhalten. Siehe Abschnitt 8.5 desPaketdokumentationfür mehr Details:

Abschnitt 8.5 Zeilenumbrüche im Literaturverzeichnis

Angenommen, Sie müssen LaTeX empfehlen, eine Zeile an einer bestimmten Stelle umzubrechen. Einen Zeilenumbruch in der Mitte eines Felds vorzuschlagen, ist kein Problem: Bearbeiten Sie einfach Ihre endgültige .bblDatei und fügen Sie einen \linebreakBefehl ein:

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

Aber was, wenn Sie einen Zeilenumbruch erzwingen müssenzwischenzwei Felder? Auf den ersten Blick könnte man befürchten, dass

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

bewirkt einen Zeilenumbruch vor dem Komma, das amsrefsnormalerweise nach dem Titel eingefügt wird: Das Komma wird nach dem Zeilenumbruch gesetzt, statt davor. Keine Angst, amsrefsdas erkennt es und verschiebt das Komma automatisch nach Wunsch vor den Zeilenumbruch: Vor dem Zeilenumbruch wird nach Wunsch ein Komma gesetzt.

verwandte Informationen