我使用 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 节 参考书目中的换行符
假设您需要建议 LaTeX 在特定位置换行。建议在字段中间换行并不困难:只需编辑最终
.bbl
文件并插入\linebreak
命令即可:subtitle={Toward a transformative hermeneutics\linebreak[3] of quantum gravity},
但是如果你需要强制换行怎么办之间两个领域?乍一看,你可能会担心
subtitle={...hermeneutics of quantum gravity\linebreak[3]},
amsrefs
将在通常插入在标题后的 逗号前导致换行: 不用担心;amsrefs
它会检测到这一点并根据需要自动将逗号移到换行符前面: