我有以下代码:
\documentclass{minimal}
\usepackage[french]{babel}
\usepackage[newcommands]{ragged2e}
\begin{document}
\begin{center}
\parbox{9cm}{
\textsc{
Jesus a dit~: \og Je suis le bon berger~;
le bon berger donne sa vie pour les brebis \fg{}
}
}
\end{center}
\end{document}
该段落通常会产生良好的结果,但是对于这个特定的句子,我得到了一些丑陋的结果:
这种情况很少见(我还有几十个其他可以正常工作的盒子)所以我可以强制回车,但我想知道为什么会这样做......
答案1
当然,如果您激活法语的连字模式,效果会更好。这将“分割” berger。如果您删除 插入的间距命令中的可拉伸空间,也会有所帮助\og
。但主要问题是 的居中命令会ragged2e
更改空格跳过,但不会在 的开头重置它\parbox
。这会迫使 LaTeX 尽可能拉伸唯一可用的可拉伸空间(\og 之后)。我想说这是一个错误。
\documentclass{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage[newcommands]{ragged2e}
\makeatletter
% \def\FBguill@spacing{\penalty\@M\hskip.8\fontdimen2\font}
\makeatother
\begin{document}
\parbox{9cm}{%
\lipsum[1]\par
\scshape
Jesus a dit~: \og Je suis le bon berger~;
le bon berger donne sa vie pour les brebis \fg{}
}
\begin{center}
\parbox{9cm}{%
\lipsum[1]\par
\scshape
Jesus a dit~: \og Je suis le bon berger~;
le bon berger donne sa vie pour les brebis \fg{}
}
\end{center}
\makeatletter
%correcting the spaceskips:
\begin{center}
\parbox{9cm}{%
\@raggedtwoe@spaceskipfalse
\@raggedtwoe@everyselectfont
\lipsum[1]\par
\scshape
Jesus a dit~: \og Je suis le bon berger~;
le bon berger donne sa vie pour les brebis \fg{}
}
\end{center}
\end{document}