Назад Вперед

Установка

Распакуйте архив в любом удобном месте. Установите переменные окружения. Они включают:

SGML_HOME
должна указывать на каталог TEItools. Например, если Вы распаковали архив в /usr/local/lib, то SGML_HOME нужно установить в /usr/local/lib/TEItools.

LANG
должна содержать имя Вашей локали. Убедитесь, что в каталоге $SGML_HOME/lib есть соответствующий файл локализации locale.$LANG.tcl. Если такого нет, создайте его либо сделав линк на один из уже существующих, либо написав свой собственный по образцу имеющихся, если TEItools не поддерживает Ваш язык.

TEITOOLS_DEBUG
вызывает повышенную разговорчивость TEItools. Если Вы их не отлаживаете, то Вам этого и не нужно.

TEITOOLS_USE_XML
вызывает использование встроенного XML анализатора вместо вызова внешней программы nsgmls.

nsgmls, costsh и $SGML_HOME/bin должны быть в Вашем $PATH. Выполните команду make install в каталоге src, чтобы собрать и установить утилиту xpm2rtf.

Если у вас есть WWW сервер, вы можете выкладывать на него документы TEI Lite без предварительного преобразования их в HTML. Я включил пример CGI скрипта, tei2html.cgi, который нужно запускать, когда пользователь запрашивает с сервера файлы TEI. Для случая сервера Apache, добавьте к srm.conf:

 
AddType application/x-tei .tei
Action  application/x-tei /cgi-bin/tei2html.cgi

и поместите tei2html.cgi в соответствующий каталог cgi-bin.

Настройки psgml

Добавьте к вашему ~/.emacs:

(load-library "psgml")

(setq sgml-catalog-files 
  (append sgml-catalog-files 
          (list (concat (getenv "SGML_HOME") "/dtd/catalog")))
  sgml-custom-dtd
      '(
	("TEI Tools" 
         "<!doctype tei.2 public '-//TEI//DTD TEI Tools 0.1//EN'>" 
	 "/tmp/teilite.ced")))

If you use 8-bit characters, and don't want them to be represented as ISO 8859-1 entities, like if you're writing in Russian charset, then your ~/.emacs should contain this, too:

(add-hook 'sgml-mode-hook 
          '(lambda ()
             (setq write-file-hooks (delete 'fix-iso2sgml write-file-hooks)
                   find-file-hooks (delete 'fix-iso2sgml find-file-hooks)
                   )
             )
          )

Если вас не устраивает время, за которое psgml разбирает DTD, сделайте вот что:

(add-hook 'sgml-mode-hook
          '(lambda ()
	     (let ((ced-file-name 
		    (concat (file-name-sans-extension (buffer-file-name)) 
		            ".ced"))
		   )
	       (if (file-readable-p ced-file-name)
		   (sgml-load-dtd ced-file-name)
		 (sgml-parse-prolog)
		 (sgml-save-dtd ced-file-name)
		 )
	       )
           ) 
        )

Если вам нравится видеть разметку TEI раскрашенной, попробуйте вот это:

(make-face 'tei-head-1-face)
(set-face-foreground 'tei-head-1-face "dark green")
(set-face-font 'tei-head-1-face  
	"-*-courier-bold-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-head-2-face)
(set-face-foreground 'tei-head-2-face "dark blue")
(set-face-font 'tei-head-2-face  
	"-*-courier-bold-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-head-3-face)
(set-face-foreground 'tei-head-3-face "dark green")
(set-face-font 'tei-head-3-face  
	"-*-courier-normal-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-head-4-face)
(set-face-foreground 'tei-head-4-face "dark blue")
(set-face-font 'tei-head-4-face  
	"-*-courier-normal-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-head-5-face)
(set-face-foreground 'tei-head-5-face "brown")
(set-face-font 'tei-head-5-face  
	"-*-courier-bold-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-emph-face)
(set-face-font 'tei-emph-face  
	"-adobe-helvetica-medium-o-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-title-face)
(set-face-font 'tei-title-face  
	"-adobe-helvetica-bold-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-eg-face)
(set-face-font 'tei-eg-face  
	"-adobe-helvetica-medium-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-label-face)
(set-face-foreground 'tei-label-face "dark cyan")
(set-face-font 'tei-label-face  
	"-adobe-courier-medium-o-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-item-face)
(set-face-foreground 'tei-item-face "dark cyan")
(set-face-font 'tei-item-face  
	"-adobe-courier-bold-r-*-*-*-180-*-*-*-*-koi8-*")
(make-face 'tei-note-face)
(set-face-font 'tei-note-face  
	"-adobe-courier-medium-r-*-*-*-140-*-*-*-*-koi8-*")
(make-face 'tei-quote-face)
(set-face-font 'tei-quote-face 
	"-adobe-courier-medium-o-*-*-*-180-*-*-*-*-koi8-*")

(add-hook 'tei-mode-hook
 '(lambda ()
  (interactive)
  (sgml-mode)
  (setq 
   font-lock-keywords
   '(
     ("<div1[^>]*><head/[^/]*/"	. tei-head-1-face)
     ("<div1[^>]*><head[^>]*>[^<]*</>"	. tei-head-1-face)
     ("<div1[^>]*><head[^>]*>[^<]*</head>"	. tei-head-1-face)
     ("<div2[^>]*><head/[^/]*/"	. tei-head-2-face)
     ("<div2[^>]*><head[^>]*>[^<]*</>"	. tei-head-2-face)
     ("<div2[^>]*><head[^>]*>[^<]*</head>"	. tei-head-2-face)
     ("<div3[^>]*><head/[^/]*/"	. tei-head-3-face)
     ("<div3[^>]*><head[^>]*>[^<]*</>"	. tei-head-3-face)
     ("<div3[^>]*><head[^>]*>[^<]*</head>"	. tei-head-3-face)
     ("<div4[^>]*><head/[^/]*/"	. tei-head-4-face)
     ("<div4[^>]*><head[^>]*>[^<]*</>"	. tei-head-4-face)
     ("<div4[^>]*><head[^>]*>[^<]*</head>"	. tei-head-4-face)
     ("<div5[^>]*><head/[^/]*/"	. tei-head-5-face)
     ("<div5[^>]*><head[^>]*>[^<]*</>"	. tei-head-5-face)
     ("<div5[^>]*><head[^>]*>[^<]*</head>"	. tei-head-5-face)
     ("<emph/[^/]*/" . tei-emph-face)
     ("<emph[^>]*>[^<]*</emph>" . tei-emph-face)
     ("<emph[^>]*>[^<]*</>" . tei-emph-face)
     ("<hi/[^/]*/" . tei-emph-face)
     ("<hi[^>]*>[^<]*</title>" . tei-emph-face)
     ("<hi[^>]*>[^<]*</>" . tei-emph-face)
     ("<title/[^/]*/" . tei-title-face)
     ("<title[^>]*>[^<]*</title>" . tei-title-face)
     ("<title[^>]*>[^<]*</>" . tei-title-face)
     ("<eg[^>]*>[^<]*</>" . tei-eg-face)
     ("<eg[^>]*>[^<]*</eg>" . tei-eg-face)
     ("<code/[^/]*/" . tei-eg-face)
     ("<code[^>]*>[^<]*</>" . tei-eg-face)
     ("<code[^>]*>[^<]*</code>" . tei-eg-face)
     ("<kw/[^/]*/" . tei-eg-face)
     ("<kw[^>]*>[^<]*</>" . tei-eg-face)
     ("<kw[^>]*>[^<]*</kw>" . tei-eg-face)
     ("<label/[^/]*/" . tei-label-face)
     ("<label[^>]*>[^<]*</>" . tei-label-face)
     ("<label[^>]*>[^<]*</label>" . tei-label-face)
     ("<note/[^/]*/" . tei-note-face)
     ("<note[^>]*>[^<]*</>" . tei-note-face)
     ("<note[^>]*>[^<]*</note>" . tei-note-face)
     ("<item/" . tei-item-face)
     ("<item[^>]*>" . tei-item-face)
     ("<q/[^/]*/" . tei-quote-face)
     ("<q>[^<]*</>" . tei-quote-face)
     ("<q>[^<]*</q>" . tei-quote-face)
     ("<socalled/[^/]*/" . tei-quote-face)
     ("<socalled>[^<]*</>" . tei-quote-face)
     ("<socalled[^>]*>[^<]*</socalled>" . tei-quote-face)
     ("<term/[^/]*/" . tei-eg-face)
     ("<term[^>]*>[^<]*</>" . tei-eg-face)
     ("<term[^>]*>[^<]*</term>" . tei-eg-face)
     )
   )
  )
 )
		       
(defun tei-mode ()
  (interactive)
  (sgml-mode)
  (run-hooks 'tei-mode-hook)
  (font-lock-mode 1))

(defun docbook-mode ()
  (sgml-mode)
  )

(setq auto-mode-alist
      (append
       (list
        '("\\.tei$" . tei-mode))
       auto-mode-alist))
	      

Разумеется, цвета и шрифты выбирайте по вкусу.


Назад Вперед

Последние изменения: Чтв Фев 19 18:09:57 MSK 2004
Сгенерировано TEItools