csquotes 和 microtype 的凸出错误

csquotes 和 microtype 的凸出错误

我在使用csquotes包装和microtype使用突起(边距字距调整)。问题是,使用时,\enquote我只能在左边距上获得边距字距调整。

\documentclass{minimal}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[tracking]{microtype}

\usepackage{csquotes}
\MakeAutoQuote{»}{«}

\begin{document}
\def\blindtext{Dies hier ist ein Blindtext zum Testen, Testen, Testen und Testen von Textausgaben und anderen Zeichen}

\noindent%
„\blindtext.“ \blindtext{} in mehreren Zeilen.\\
\enquote{\blindtext.} \blindtext{} in mehreren Zeilen.\\
»\blindtext.« \blindtext{} in mehreren Zeilen.\\
\end{document}

第一段文字使用手动设置的引号,使左边距和右边距都正确的。

剪切的第二段和第三段文本仅突出于左边距。

有什么想法让我遇到这个问题以及如何解决它?

答案1

我认为这是个 bug csquotes。你可以通过将以下代码放入你的序言中来解决它,但我不能说这是否会破坏其他东西。

\makeatletter
\def\csq@qclose@ii#1{%
  \ifdim\lastkern=\csq@omitmarker
    #1\csq@eqgroup
  \else
    \csq@addkern@close
    \ifodd\csq@qlevel
      \csq@thequote@oclose
      \let\csq@kernchar@i\csq@thequote@oclose
    \else
      \csq@thequote@iclose
      \let\csq@kernchar@i\csq@thequote@iclose
    \fi
    %\csq@setmarker@close                 %%% Here's the change; line commented out
    \ifblank{#1}{}{\expandafter#1}%
    \expandafter\csq@eqgroup
      \expandafter\def
      \expandafter\csq@kernchar@i
      \expandafter{\csq@kernchar@i}%
    \expandafter\csq@fixkern
  \fi}
\makeatother

这适用于 的最新版本csquotes。与往常一样,当您侵入包的宏时,无法保证上述代码适用于过去或未来的版本。

相关内容