我想在文本周围添加一对灰色引号,但不影响周围的文本。为此,我尝试使用\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}