LaTeX 文档中的自制环境

LaTeX 文档中的自制环境

是否可以在不使用 \usepackage 命令的情况下在 LaTeX 文档中包含自制环境。

新的环境代码集:

\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentEnvironment {mytabular} { O{\,} }
  {
    \char_set_catcode_other:N \&
    \char_set_catcode_alignment:n {`#1}
    \begin{tabular}
  }
  {
    \end{tabular}
  }
\ExplSyntaxOff

通过使用以下命令将上述内容作为包包含\usepackage

\documentclass[12pt]{article}
\usepackage{tabularDelimiter}

\begin{document}
\begin{mytabular}[@]{|c|c|}
A @ B\\
C @ D
\end{mytabular}
\end{document}

答案1

这取决于您的要求。如果要求只是为了避免\usepackage,您可以改用\RequirePackage(相同语法)。

您也可以使用\input

答案2

编辑

如果你不能在序言中包含环境,那么答案很遗憾

如果环境不是内置的,即未在 中定义latex.ltx,则必须定义它,或者使用已定义它的包。第一个选项是下面的原始答案,但由于您无法做到这一点,因此您只有一个选择,那就是使用\usepackage


原始答案

mytabular好的,我假设您在包中包含了环境的定义tablularDelimiter

\documentclass[12pt]{article}

\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentEnvironment {mytabular} { O{\,} }
  {
    \char_set_catcode_other:N \&
    \char_set_catcode_alignment:n {`#1}
    \begin{tabular}
  }
  {
    \end{tabular}
  }
\ExplSyntaxOff

\begin{document}
\begin{mytabular}[@]{|c|c|}
A @ B\\
C @ D
\end{mytabular}
\end{document}

在此处输入图片描述

答案3

您可以在序言中定义一个新的环境。

\newenvironment{name}[nargs]{begdef}{enddef}

其中是新环境的名称,name\begin{name}...。是参数的数量(0 到 9,但如果是 0,则可以省略),是在环境开始时执行的代码,是在环境结束时执行的代码。 \end{name}nargsbegdefenddef

相关内容