俄语段落的最后一行不像\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
是(局部)重新定义的,因此您不一定在所有情况下都能获得所需的段落分隔符。