从环境中删除 par 缩进

从环境中删除 par 缩进

这里真正的问题是我不知道如何修改现有环境。我想要实现的具体目标如下。

我很高兴framed包为我提供了其shaded*环境。但我想更改两件事:

  1. 环境中的第一个段落不应该以缩进开始。

  2. 我想将环境重命名为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

相关内容