在 amsrefs 欄位之間使用 \newline

在 amsrefs 欄位之間使用 \newline

我使用 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將檢測到這一點並根據需要自動將逗號移動到換行符前面: 根據需要將逗號放置在換行符之前。

相關內容