TeX 不能识别内置控制序列?

TeX 不能识别内置控制序列?

\usepackage{amsthm}我正在尝试学习使用 TeX(不是 LaTeX——我以前用过 LaTeX,所以我知道“ + ”这个解决方案有多简单)从头开始构建东西,\begin{theorem}我正在尝试构建我自己的定理环境,其中包括在左侧和右侧缩进。我知道\narrower\leftskip( \rightskip) 的作用。但是,TeX 无法识别这些控制序列。

\def\thm[#1]{\par {\leftskip 1in \rightskip 1in %
  \noindent {\bf Theorem.} {\it #1 \/} \newline \noindent}
\def\endthm{ } \par}

编译后(顺便说一下,那是:

pdftex def.tex
* \input sandbox.tex

其中def.tex包含此内容并且sandbox.tex包含

\thm[Name of theorem] Blah blah \endthm

) 我收到错误提示“未定义控制序列”。那么到底怎么回事呢?我从阅读中得到的印象是,这些(\leftskip,等)是内置在 TeX 中的,因此不应该是软件包问题。

另外,\noindent第二行末尾的功能不起作用,但目前还不那么烦人。

答案1

\newline在 Plain TeX 中没有定义。您的代码中还存在其他问题:您设置了组\leftskip\rightskip但在组执行之前将其关闭。

\input plipsum % for mock text

\def\thm[#1]{%
  \par % get in vertical mode
  \begingroup % open a group
  \leftskip 1in \rightskip 1in % set the margins
  \noindent {\bf Theorem.} {\it #1}\par\nobreak % print the header
  \noindent\ignorespaces % print the statement
}
\def\endthm{\par\endgroup} % end the paragraph and restore the margins

\lipsum 1

\thm[Name]
\lipsum 2
\endthm

\lipsum 3

\bye

在此处输入图片描述

相关内容