то ошибка не пойдет дальше
Если же мы определим \smb с помощью \newcommand*, написав
\newcommand*{\smb}[2]{\left(\frac{#1}{#2}\right)} то ошибка не пойдет дальше текущего абзаца: как только TeX увидит пустую строку среди текста, рассматриваемого им как аргумент команды, он тут же прервет дальнейшее чтение и выдаст следующее стандартное сообщение об ошибке:
Runaway argument? {a{l}$, где$a$ не делится на $l$, равен п\ETC. ! Paragraph ended before \smb was complete. <to be read again> \par l.8
? Нажав пару раз на "ввод", мы сможем благополучно продолжить обработку текста. В первом абзаце пропадет все после слов "Символ Лежандра", зато второй и последующие абзацы будут обработаны нормально (пока TeX не наткнется на очередную ошибку...).
Команды \newcommand и \renewcommand* обладают еще одним преимуществом перед своими вариантами без звездочек: при их использовании происходит (небольшая) экономия памяти.
Рекомендуем вам определять и переопределять команды с аргументами при помощи \newcommand* и \renewcommand*. Варианты без звездочек используйте только тогда, когда вы действительно намерены подставлять в аргумент своего макроса текст, состоящий из нескольких абзацев.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий