Re: Программирование научных программ на C.
On 2014-01-30, Dmitrii Kashin wrote:
> Так как стандарт C99 не поддерживает юникода в качестве имён, я подумал,
> что возможно можно использовать LaTeX только для отображения в редакторе
> (в моём случае Emacs), а перед компиляцией прогонять программу через
> дополнительный парсер, заменяющий LaTeX на имена, соответствующие
> стандарту C99.
>
> Впрочем, я так и не нашёл minor-режима для отображения формул в окне
> Emacs. auctex и preview-latex лишь модифицируют поведение latex-mode, а
> я бы хотел видеть формулы в c-mode.
>
> О LaTeX речь неспроста. Можно, конечно, использовать близкую
> транслитерацию, и заменить \rho_l на r_l, однако вопрос актуален ещё и в
> том плане, что для научных программ разумно было бы использовать LaTeX
> для написания *комментариев*, поясняющих работу кода.
>
> Собственно, я хочу узнать, озадачивался ли кто-нибудь вопросом написания
> программ с использованием в них LaTeX или хотя бы греческих букв?
Что имею для Lisp кода:
;; http://www.emacswiki.org/emacs/PrettyLambda
(font-lock-add-keywords
'emacs-lisp-mode
`(
("(\\<\\(lambda\\)\\>"
(1 (progn (compose-region (match-beginning 1) (match-end 1) ,(make-char 'greek-iso8859-7 107)) font-lock-keyword-face))
)
))
Теперь в Лиспе я не вижу слова lambda - я вижу греческий символ λ.
Некоторые любители переопределяют для JS function на 𝑓 (MATHEMATICAL ITALIC
SMALL F).
Поискать символы можно по названию прямо из Emacs: C-x 8 RET TAB.
Заведите себе на alpha, beta, gamma, ... nabla, etc - алиасы и пишите
математический код. Особенно удачно будет, если в команде все используют
Emacs - можно выработать соглашения по именованию.
Я полагаю что покопавшись в Auctex можно написать код, который из beta_2
сделает греческую β и 2 как subscript. Я думаю в help-gnu-emacs@gnu.org
вероятно получить ответ в виде готового кусочка кода...
Самое главное во всем этом - поиск по коду и все другие тектовые операции
работают правильно, просто мы вклиниваемся в логику сопоставления соответствия
между текстом и глифами для отображения.
--
Best regards!
Reply to: