这里真正的问题是我不知道如何修改现有环境。我想要实现的具体目标如下。
我很高兴framed
包为我提供了其shaded*
环境。但我想更改两件事:
环境中的第一个段落不应该以缩进开始。
我想将环境重命名为
shaded*
其他名称。\documentclass{article} \usepackage{lipsum, xcolor, framed} \definecolor{shadecolor}{gray}{.8} \begin{document} \begin{shaded*} \lipsum[1-2] \end{shaded*} \end{document}
答案1
使用技巧\@afterheading
(简化):
\documentclass{article}
\usepackage{lipsum, xcolor, framed}
\definecolor{shadecolor}{gray}{.8}
\newenvironment{blurb}
{\begin{shaded*}\everypar={{\setbox0=\lastbox}\everypar{}}}
{\end{shaded*}}
\begin{document}
\begin{blurb}
\lipsum[1-2]
\end{blurb}
\end{document}
答案2
用于tcolorbox
改变(出于学术目的)。
\documentclass{article}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\definecolor{shadecolor}{gray}{.8}
\newtcolorbox{fancypar}[1][]{
colback=shadecolor,
boxsep=6pt,
parbox=false,
arc=0pt,
outer arc=0pt,
nobeforeafter,
frame hidden,
enhanced jigsaw,
breakable,
before=\par\noindent%
}
\begin{document}
\begin{fancypar}
\lipsum[1-2]
\end{fancypar}
\end{document}
答案3
以下可能是您所追求的:
\documentclass{article}
\usepackage{lipsum, xcolor, framed}
\definecolor{shadecolor}{gray}{.8}
\makeatletter
\newenvironment{myfancyshade}
{\@nameuse{shaded*}\noindent\ignorespaces}
{\@nameuse{endshaded*}}
\makeatother
\begin{document}
\begin{myfancyshade}
\lipsum[1-2]
\end{myfancyshade}
\end{document}
shaded*
使用 调用旧环境\@nameuse
,但使用传统环境名称同样有效。通过 避免段落缩进\noindent
,并使用 删除任何虚假空格\ignorespaces
。