biblatex 存在 \par 有 \prevdepth 的问题

biblatex 存在 \par 有 \prevdepth 的问题

俄语段落的最后一行不像\Arussian替换的那么短\par。但这种方法会与biblatex包产生冲突。有什么方法可以让它运行吗?

以下是该问题的一个简短示例:

\documentclass{article}

\usepackage{biblatex}

\let\origpar\par

% Donald Arseneau, [in:]
% Peter Wilson, Glisterings
% TUGboat, Volume 28 (2007), No. 2
\def\Arussianpar{\ifhmode \unskip
  \strut\vadjust{}\nobreak
  \discretionary{}%
    {\hbox{\hskip2\parindent
           \vrule depth 273sp
           width 0sp height \ht\strutbox}}%
    {\hbox{\hskip\parindent}}%
  \hskip-2\parindent minus 2\parindent
  \hskip\hsize minus\hsize
  \kern0pt\parfillskip0pt
  \origpar
  \ifdim\prevdepth=273sp
    \nobreak
    \vskip-2\baselineskip
    \hbox{\strut}%
  \fi
  \fi}

\let\par\Arussianpar

\begin{document}
x
\end{document}

崩溃pdflatex原因:

! Improper \prevdepth.
 \par ...arfillskip 0pt \origpar \ifdim \prevdepth 
                                                  =273sp \nobreak \vskip -2\...

答案1

english.lbx您在阅读时(即在开始排版文档之前)遇到错误。

你应该能够通过以下方式解决这个问题

\AtBeginDocument{\def\par{\Arussianpar}}

而不是你的

\let\par\Arussianpar

但是在 LaTeX 中有很多情况\par是(局部)重新定义的,因此您不一定在所有情况下都能获得所需的段落分隔符。

相关内容