边注中列出了新环境

边注中列出了新环境

我正在尝试创建一个新环境,该环境接受未定义数量的项目并在边距中创建一个列表。本质上执行的操作与此代码相同:

\marginpar{\fontsize{1.5cm}{1.5cm}\selectfont 
        \begin{itemize}
            \item item1
            \item item2
            \item item3
        \end{itemize}}

我试过

\newenvironment{marginlist}
{\marginpar{\fontsize{1.5cm}{1.5cm}\selectfont 
    \begin{itemize}}
{   \end{itemize}}}

{但由于打开了,latex 无法解析它\marginpar

答案1

您可以定义一个框来存储环境的主体(这对于对齐来说可能也更好),或者您可以使用宏\NewDocumentEnvironment

\documentclass{article}

\newsavebox{\tempitemizebox}
\newenvironment{marginlist}{%
    \setbox\tempitemizebox=\vbox\bgroup%
    \fontsize{1.5cm}{1.5cm}\selectfont%
    \begin{itemize}
}{%
    \end{itemize}
    \egroup%
    \marginpar{\usebox{\tempitemizebox}}%
}

\begin{document}

\begin{marginlist}
    \item item1
    \item item2
    \item item3
\end{marginlist}

\end{document}

\documentclass{article}

\NewDocumentEnvironment{marginlist}{ b }{%
    \marginpar{\fontsize{1.5cm}{1.5cm}\selectfont%
    \begin{itemize}
    #1
    \end{itemize}
    }%
}{}

\begin{document}

\begin{marginlist}
    \item item1
    \item item2
    \item item3
\end{marginlist}

\end{document}

我不确定您是否真的希望字体那么大……

相关内容