命令可以在 {} 和 {} 内开始和结束吗?

命令可以在 {} 和 {} 内开始和结束吗?

有没有办法让一个命令(例如\section{},开始和结束)位于另外两个命令之中?

\documentclass{article}
    \newcommand{\thisisaspecialcommand}[1]{
        #1
    }
\begin{document}
    \thisisaspecialcommand{\section{} % The section begins here.
    \thisisaspecialcommand{This is the section's title.}
    \thisisaspecialcommand{}} % The section ends here.
    (text)
\end{document}

在这个示例代码中,LaTeX 不理解哪个{部分开始,哪个}部分结束。

答案1

也许你正在寻找一种使用环境主体作为命令参数的环境。在这种情况下,包环境可能对你有帮助:

\documentclass{article}
\usepackage{environ}

\NewEnviron{specialenvironment}{\section{\BODY}}
\begin{document}
\begin{specialenvironment}
Section heading
\end{specialenvironment}
\end{document}

答案2

我同意以上所有评论,认为这实际上没有任何意义,但无论如何,下面的代码似乎确实实现了评论中提出的目标:

输出将与以下内容相同:\section{这是该部分的标题},而不是空部分

这需要进行的一个更改是内部和外部的命令不同。因此,下面我使用了thisisaDifferentSpecialcommand在原始命令中使用的新命令thisisaspecialcommand。由于您希望此输出与常规命令相同\section{This is the section's title.},因此我在开头添加了它,以便我们可以比较这两个输出。以下 MWE 得出:

在此处输入图片描述

\documentclass{article}

\let\OldSection\section% Save definition of \section
\newcommand*{\thisisaDifferentSpecialcommand}[1]{#1}%
\newcommand{\thisisaspecialcommand}[1]{%
    \renewcommand{\section}[1]{}% Disable \section within \thisisaspecialcommand
    \OldSection{#1}% Apply section header
}
\begin{document}
    \section{This is the section's title.}
    (text)

    \thisisaspecialcommand{\section{}% The section begins here.
    \thisisaDifferentSpecialcommand{This is the section's title.}
    \thisisaDifferentSpecialcommand{}}% The section ends here.
    (text)
\end{document}

相关内容