Latex \newcommand problem
can someone please tell what I'm doing 开发者_运维百科wrong here?
\newcommand{\bc}{\small\begin{verbatim}}
\newcommand{\ec}{\normalsize\end{verbatim}}
and then
\bc
1 3 6 7 89 10
22 7 7 45
\ec
but I get
Runaway argument?
^^M1 3 6 7 89 10^^M 22 7 7 45^^M\ec^^M^^M\section{Reading on\ETC.
! File ended while scanning use of \@xverbatim.
<inserted text>
\par
<*> i4c.tex
?
! Emergency stop.
<inserted text>
\par
<*> i4c.tex
I thought it was pretty safe to do that, since most commands are just text substitutions... any hints?
How \begin{verbatim} works. briefly and roughly.
\begin{verbatim}is expanded to\verbatim.- Then
\verbatimsets category code of each special characters to 12. Now all chars is like digits or puncts. - Then
\verbatimsets font, parindent and calls\@xverbatim. \@xverbatimcatches the end of verbatim using the following trick:\def\@xverbatim#1\end{#1\end}Then \end{verbatim} finishes work.
How newcommand{\bc}{\small\begin{verbatim}} works.
\bсexpands to\small\begin{verbatim}.- Then
\begin{verbatim}expands to\varbatim.\varbatimchanges all categories and font. - Then
\verbatimcalls\@xverbatim. \@xverbatimtries to catch your argument using the following trick:\def\@xverbatim#1\end{#1\end}but it is impossible because of
\@xverbatimtries to catch\endwhere all letters (\,e,n,d) have the category 12 and 11. But in fact there are only\ecexsits.\@xverbatimis trying and trying to find\endwhere backslash (\) has category 12 but....File ended while scanning use of \@xverbatim
verbatim is special, it scans for a literal \end{verbatim}, as any macro substitutions are not executed after the \begin{verbatim}.
Some environment, such as verbatim, need to scan in the text ahead to find their end manually. So unlike “normal” environments, verbatim needs to find the text \end{verbatim} in the input text, verbatim.
In your example, it doesn’t (since the input text contains \ec instead.
As a workaround, you can instead use the fancyvrb package that defines a Verbatim package and allows definition custom verbatim environments.
加载中,请稍侯......
精彩评论