新环境错误

新环境错误

编辑

正如 David 在评论中正确指出的那样,我并没有发布我想要的内容。所需的输出是引言,即位于页面左侧或右侧的引文,被正文包裹,并使用 声明的所需彩色背景colorquote

—————————————————————————————————————————————

我刚刚开始学习新环境如何运作,所以请耐心等待。

我尝试了以下方法:

\documentclass[12pt,a4paper]{article}   
\usepackage{lipsum}
\usepackage{Archivo}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{sectsty}
\usepackage{xcolor}
\usepackage{tcolorbox}

%%%%This is the environment I’m trying to create%%%%
\definecolor{colorquote}{HTML}{e8e9f5}
\newtcolorbox{myquote}{colback=colorquote, colframe=colorquote}
\newenvironment{pullquote}[1]
    \begin{wrapfigure}{#1}{0.4\textwidth}
        \begin{myquote}
        \end{myquote}
    \end{wrapfigure}


\author{}
\title{Title}
\begin{document}
    \maketitle
    
    \section{This is some section title}
    
    \lipsum[1]
    \begin{pullquote}{R}
        Here is a quotation
    \end{pullquote}
    \lipsum[3]
    
\end{document}

即使我尝试一行:

\newenvironment{pullquote}[1]{\begin{wrapfigure}{#1}{0.4\textwidth}\begin{myquote}\end{myquote}\end{wrapfigure}}

新环境就是无法工作,我不知道为什么。它出了什么问题?

另外,我需要变量,但我不确定我是否正确使用了它。该变量可用于将引用的文本放在右侧或左侧。

答案1

发布代码中的错误是

! You can't use `macro parameter character #' in vertical mode.
l.20     \begin{wrapfigure}{#
                             1}{0.4\textwidth}
? 

作为

\newenvironment{pullquote}[1]
    \begin{wrapfigure}{#1}{0.4\textwidth}

\newenvironment{pullquote}[1]
   {\begin}
   {wrapfigure}
   {#1}{0.4\textwidth}

它定义了pullquote环境具有开始代码\begin和结束代码wrapfigure。这不是预期的,但也不是错误。但是,剩余的标记不在#1定义内,因此会出现错误。

改变事情

\newenvironment{pullquote}[1]
    {\begin{wrapfigure}{#1}{0.4\textwidth}
        \begin{myquote}}
        {\end{myquote}
    \end{wrapfigure}}

运行无错误并生成

在此处输入图片描述

这可能是也可能不是你想要的(你没有说出你想要的输出)

或者

在此处输入图片描述

\documentclass[12pt,a4paper]{article}   
\usepackage{lipsum}
\usepackage{Archivo}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{sectsty}
\usepackage{xcolor}
\usepackage{tcolorbox}

%%%%This is the environment I’m trying to create%%%%
\definecolor{colorquote}{HTML}{e8e9f5}
\newtcolorbox{myquote}{colback=colorquote, colframe=colorquote}
\newenvironment{pullquote}[1]
    {\begin{wrapfigure}{#1}{0.4\textwidth}
        \begin{myquote}}
        {\end{myquote}
    \end{wrapfigure}}


\author{}
\title{Title}
\begin{document}
    \maketitle
    
    \section{This is some section title}
    
    \lipsum[1]

\begin{wrapfigure}{r}{0.4\textwidth}
        \begin{myquote}
        Here is a quotation
    \end{myquote}
\end{wrapfigure}
    \lipsum*[3]
    
\end{document}

请注意,您不能在标准中“隐藏” tcolorbox 定义,\newenvironment这就是为什么存在\newtcolorbox声明形式。

相关内容