包含 fbox 的环境不起作用

包含 fbox 的环境不起作用

我有以下内容,我打算使用它们来呈现笔记:

\setlength{\fboxsep}{10pt}
\setlength{\fboxrule}{1pt}
\noindent
\fbox{
    \parbox{0.93\textwidth}{%
        \begin{minipage}[t]{0.1\textwidth}
            \includegraphics[height=40px]{images/note.png}
        \end{minipage}%
        \hfill%
        \begin{minipage}[c]{0.8\textwidth}
            \setlength{\parskip}{0.2cm}
            \setlength{\parindent}{0pt}
            This is an example note, just to see how it renders and wraps lines and what-not.

            Here is another paragraph, yo.
        \end{minipage}
    }%
}

除了文本没有居中(还没有弄清楚)之外,它看起来非常符合我的要求:

在此处输入图片描述

但是,在尝试将其转换为环境时,我遇到了问题。例如,我尝试仅转换其中的一部分:

\newenvironment*{note}
{%
    \setlength{\fboxsep}{10pt}%
    \setlength{\fboxrule}{1pt}%
    \noindent%
    \begin{fbox}
    \begin{parbox}{0.93\textwidth}
%            \begin{minipage}[t]{0.1\textwidth}
%                \includegraphics[height=40px]{images/note.png}
%            \end{minipage}%
%            \hfill%
%            \begin{minipage}{0.8\textwidth}
%                \setlength{\parskip}{0.2cm}
%                \setlength{\parindent}{0pt}
}
{
       \end{parbox}
    \end{fbox}
}

但这在使用环境时会导致错误:

LaTeX Error: \begin{fbox} on input line 145 ended by \end{par
box}.

\begin{x}我在另一个问题中得到了使用技巧\end{x},但我不明白它为什么抱怨上述内容。有人可以告诉我吗?

答案1

\fbox并且\parbox不能以这种方式用作环境,尽管\begin{fbox}Foo\end{fbox}可以工作,但仅限于角色。它很可能与包一起使用FNewEnviron\BODYenviron

我建议应用tcolorbox环境并将pencil图像绘制为覆盖图(并排绘制也是可能的)。这是来自包的pencil宏,但也可以用 替换。\bccrayonbclogo\includegraphics{...}

\documentclass{article}

\usepackage[tikz]{bclogo}
\usetikzlibrary{calc}
\usepackage[most]{tcolorbox}

\usepackage{blindtext}

\newtcolorbox{note}[1][]{
  enhanced,
  halign=center,
  sharp corners,
  left=30pt,
  overlay={\node[below right] (crayon) at  ($(interior.north west)+(10pt,0)$) {\bccrayon};},
  #1
}



\begin{document}


\begin{note}[colback=yellow!20!white]
  \blindtext
  \vskip\baselineskip
  \blindtext
\end{note}

\end{document}

在此处输入图片描述

答案2

答案正如您尝试的那样,但是使用 environ 包,可以有机会使用环境主体作为\BODY

\documentclass{article}
\usepackage{environ}
\usepackage{graphicx}

\NewEnviron{note}
{%
    \setlength{\fboxsep}{10pt}%
    \setlength{\fboxrule}{1pt}%
    \noindent%
    \fbox{\parbox{\textwidth}{
            \begin{minipage}[c]{0.1\textwidth}
                \includegraphics[height=40px]{example-image}
            \end{minipage}%
            \hfill%
            \begin{minipage}[c]{0.8\textwidth}
                \setlength{\parskip}{0.2cm}
                \setlength{\parindent}{0pt}
                \BODY
            \end{minipage}}}
}



\begin{document}

\begin{note}
  test text here that will be centered with the image or whatever you chose
\end{note}
\end{document}

输出:

在此处输入图片描述

答案3

\fbox\parbox是命令,没有环境,因此不能用作环境。

如果你想要一个生产精美盒子的环境,我建议你看看彩色盒子包裹。

\documentclass{article}
\usepackage{graphbox}
\usepackage{tcolorbox}

\begin{document}
\begin{tcolorbox}
    \newcommand{\iconwidth}{40px}%
    \newcommand{\iconsep}{1em}%
    \begin{minipage}[t]{\dimexpr\iconwidth+\iconsep}
        \includegraphics[width=\iconwidth, align=t, vshift=12pt]{images/note}
    \end{minipage}%
    \begin{minipage}[t]{\dimexpr\linewidth-\iconwidth-\iconsep\relax}
        \setlength{\parskip}{0.2cm}
        \setlength{\parindent}{0pt}
        This is an example note, just to see how it renders and wraps lines and what-not.

        Here is another paragraph, yo.
    \end{minipage}
\end{tcolorbox}
\end{document}

在此处输入图片描述

请注意,我正在使用 graphbox 包,它是 graphicx 的扩展,为命令提供了align和选项。vshift\includegraphics

相关内容