我正在使用blindtext
包绘制文档的布局,然后将“虚拟”部分与真实文本交换。问题是我想为这些文本块赋予一些样式,以便在视觉上将它们与已经写好的文本区分开来。
我只是用了:
\let\oldbt\blindtext
\renewcommand{\blindtext}[1]{\textcolor{gray}{\oldbt{}}}
一切正常,直到我想添加一些参数或使用\Blindtext
,它在内部调用\blindtext
参数。
\xparse
我找到了几种使用或处理可选参数的可能性\NewDocumentCommand
,但没有一种描述性足够强。我仍然盲目地相信使用 标准 一定可以做到这一点\renewcommand
。我也相信这对更多人有用,所以我问了新问题。
正确的造型方式是什么blindtext
,例如添加gray
颜色?
答案1
重新定义带有可选参数的命令时必须小心谨慎;应该\let
使用\LetLtxMacro
(参见何时使用 \LetLtxMacro?)。
\documentclass{article}
\usepackage{blindtext,letltxmacro,xcolor,xparse}
\usepackage{lipsum}% for simulating real text
\LetLtxMacro{\blindtextblindtext}{\blindtext}
\LetLtxMacro{\blindtextBlindtext}{\Blindtext}
\RenewDocumentCommand{\blindtext}{O{\value{blindtext}}}{%
\begingroup\color{gray}\blindtextblindtext[#1]\endgroup
}
\RenewDocumentCommand{\Blindtext}{O{\value{blindtext}}O{\value{Blindtext}}}{%
\begingroup\color{gray}\blindtextBlindtext[#1][#2]\endgroup
}
\begin{document}
\lipsum[1]
\blindtext[3]
\lipsum[3]
\Blindtext[2][3]
\lipsum[4]
\end{document}