Мне не хватает кармы или чего-то еще, чтобы комментировать, но я хотел немного улучшить стиль HD.
Вот оригинал:
(loop
for n from (string-to-char "A") to (string-to-char "Z")
for c = (char-to-string n)
do (insert (concat "\\newcommand{\\c" c "}{\\mathcal " c "}\n")))
Во-первых, Emacs Lisp имеет синтаксис читателя для символов. Вместо (string-to-char "X")
вы можете просто написать ?X
. Затем вы можете использовать printf-style format
вместо char-to-string
и concat
для получения окончательного результата:
(loop for n from ?A to ?Z
do (insert (format "\\newcommand{\\c%s}{\\mathcal %s}\n" n n)))
Теперь достаточно набрать текст, не задумываясь о подсказке M-:
.
Я также укажу, что у TeX также есть макросы, если это действительно TeX.
Редактировать: еще один совет по стилю для Джо Касадонте; (incf foo)
гораздо проще набрать, чем (setq foo (+ foo 1))
.