有没有办法让一个命令(例如\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}