我怎样才能使虚拟文本(如 \lipsum)变成灰色?

我怎样才能使虚拟文本(如 \lipsum)变成灰色?

我想让我的虚拟文本与普通文本更加区分开来,这样我就可以通过将其变为灰色来更好地确定进度?

我可以调整\lipsum命令以便每次使用该命令时它都应用此行为吗?

答案1

在 的新版本中lipsum\SetLipsumParListSurrounders已被弃用,因此您可以改用\setlipsum

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\setlipsum{%
  par-before = \begingroup\color{gray},
  par-after = \endgroup
}
% or:
% \setlipsum{%
%   par-before = \colorlet{oldcolor}{.}\color{gray},
%   par-after = \color{oldcolor}
% }
\begin{document}

Hello

\lipsum[1-2]

Hello hello

\textcolor{red}{Hello again \lipsum[3] and again}

\end{document}

上述版本之一使用\begingroup\color{gray}...\endgroup,这可能会导致问题wrapfig。另一个版本使用两个\color命令,如果使用过于频繁,可能会导致颜色堆栈溢出。

对于lipsum没有的旧版本\SetLipsumParListSurrounders

\documentclass{article}
\usepackage{lipsum}
\usepackage{xcolor}

\makeatletter
\renewcommand\lips@dolipsum{%
  \ifnum\value{lips@count}<\lips@max\relax
    \addtocounter{lips@count}{1}%
    \begingroup
      \color{gray}% <--- Change color here
      \csname lipsum@\romannumeral\c@lips@count\endcsname
    \endgroup
    \expandafter\lips@dolipsum
  \fi
}
\makeatother

\begin{document}

Hello

\lipsum[1-2]

Hello hello

\textcolor{red}{Hello again \lipsum[3] and again}

\end{document}

答案2

怎么样

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\SetLipsumParListSurrounders{\colorlet{oldcolor}{.}\color{gray}}{\color{oldcolor}}
\begin{document}
Hello

\lipsum[1-2]

Hello hello

\textcolor{red}{Hello again \lipsum[3] and again}
\end{document}

在此处输入图片描述

编辑:@egreg 善意地指出了一个更简单的解决方案:

\SetLipsumParListSurrounders{\begingroup\color{gray}}{\endgroup}

除了更简单之外,它还可以避免覆盖oldcolor其他宏可能正在使用的宏。

相关内容