我目前正在定义一个列表环境,到目前为止,它对我来说运行得很好。然而,事实证明,当添加一串太长的(非数学)数字时,LaTex 将无法分成两行,从而生成一行太大的内容(即超满警告)。这是 MWE:
\documentclass[a4paper]{article}
\begin{document}
\newdimen\colsep \colsep=1em
\def\topbox#1#2{\vtop{\parindent=0pt \hsize=\dimexpr#1\relax #2}}
\def\entryb#1#2#3#4{\par
\vspace{5pt}\hbox{\topbox{1.75cm}{#1\raggedleft}\kern\colsep
\topbox{\hsize-2\colsep-1.75cm}{{\bf#2}\hfill {\footnotesize#3}\endgraf#4}}
\smallskip
}
\entryb
{[1]}
{\normalfont{Author (XXXX)} \textit{Very fancy title}. \textbf{Not so fancy journal} \normalfont{(forthcoming), pp. ?--?. DOI: 10.19292020384080/03059.8374659022.20945896}}
{}
{}
\end{document}
输出如下:
如您所见,包含 DOI 的行比应有的要长。
谁能帮我找到一种方法来告诉 LaTex 自动断开任何过长的数字串?
非常感谢大家的帮助。
答案1
您可以(a)加载序列分割打包并 (b) 将 doi 字符串装入\seqsplit
包装器中。
\documentclass[a4paper]{article}
\newdimen\colsep \colsep=1em
\def\topbox#1#2{\vtop{\parindent=0pt \hsize=\dimexpr#1\relax #2}}
\def\entryb#1#2#3#4{\par
\vspace{5pt}\hbox{\topbox{1.75cm}{#1\raggedleft}\kern\colsep
\topbox{\hsize-2\colsep-1.75cm}{{\bf#2}\hfill {\footnotesize#3}\endgraf#4}}
\smallskip}
% new:
\usepackage{seqsplit}
\begin{document}
\entryb{[1]}
{\normalfont{Author (XXXX)}
\textit{Very fancy title}.
\textbf{Not so fancy journal}
{\normalfont (forthcoming), pp.\ ?--?.
DOI: \seqsplit{10.19292020384080/03059.8374659022.20945896}}}
{}{}
\end{document}