零宽度框的额外水平间距

零宽度框的额外水平间距

我想在文本周围添加一对灰色引号,但不影响周围的文本。为此,我尝试使用\makebox零宽度。但是,我仍然得到:

在此处输入图片描述

\leavevmode据我了解,由于框的宽度为零,因此我应该获得垂直对齐的文本。我怀疑这可能与内部有关\makebox,但我不知道如何正确取消这个额外的水平间距。

下面是一个最小的工作示例。

\documentclass{article}

\usepackage{xcolor}
\usepackage{blindtext}

\ExplSyntaxOn

\NewDocumentEnvironment { excerpt } { }
  {
    \raisebox{-.5ex}{\makebox[0pt]{\Large\textcolor{gray!55}{``}}}
  }
  {
    \unskip \nobreakspace
    \raisebox{-.5ex}{\makebox[0pt]{\Large\textcolor{gray!55}{''}}}
  }

\ExplSyntaxOff

\begin{document}

\blindtext

\begin{excerpt}
  \blindtext
\end{excerpt}

\begin{excerpt}
  Text for testing.
\end{excerpt}

Text for testing.

\end{document}

答案1

你不想要\makebox[0pt]{...},但要么这样,\makebox[0pt][r]{...}要么这样\makebox[0pt][l]{...},除了更好地控制空间。

\documentclass{article}

\usepackage{xcolor}
\usepackage{blindtext}

\NewDocumentEnvironment{excerpt}{}
  {%
    \raisebox{-.5ex}{\makebox[0pt][r]{\Large\textcolor{gray!55}{``}}}\ignorespaces
  }
  {%
    \unskip
    \raisebox{-.5ex}{\makebox[0pt][l]{\Large\textcolor{gray!55}{''}}}\ignorespacesafterend
  }

\begin{document}

\blindtext

\begin{excerpt}
  \blindtext
\end{excerpt}

\begin{excerpt}
  Text for testing.
\end{excerpt}

Text for testing.

\end{document}

在此处输入图片描述

答案2

我建议你使用\llap作为开始。并使用\ignorespaces。对于结束,你不需要任何宽度调整。我在\nobreakspace那里注释掉了 。

\documentclass{article}

\usepackage{xcolor}
\usepackage{blindtext}

\ExplSyntaxOn

\NewDocumentEnvironment { excerpt } { }
  {
    \raisebox{-.5ex}{\llap{\Large\textcolor{gray!55}{``}}}
    \ignorespaces
  }
  {
    \unskip 
    %\nobreakspace
    \raisebox{-.5ex}{\Large\textcolor{gray!55}{''}}
  }

\ExplSyntaxOff

\begin{document}

\blindtext

\begin{excerpt}
  \blindtext
\end{excerpt}

\begin{excerpt}
  Text for testing.
\end{excerpt}

Text for testing.

\end{document}

带引号的输出

相关内容