Guia Rapida de docbook xml y emacs
Contents
Paquetes
- emacs21
- psgml
- xmlto
- fop
Configuración
/home/USER/.emacs
;; DocBook GLUD dotemacs por Jorge Ernesto Guevara Cuenca jguevara@glud.udistrital.edu.co (setq ;; Insertar DTD desde el menú DTD -> insert (Insert a DOCTYPE) sgml-custom-dtd '( ("DocBook XML 4.4" "<?xml version='1.0' encoding=\"utf-8\"?> <!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.4//EN\" \"/usr/share/xml/docbook/schema/dtd/4.3/docbookx.dtd\">") ("DocBook XML 4.4 article" "<?xml version='1.0' encoding=\"utf-8\"?> <!DOCTYPE article PUBLIC \"-//OASIS//DTD DocBook XML V4.4//EN\" \"/usr/share/xml/docbook/schema/dtd/4.3/docbookx.dtd\">") ("DocBook XML 4.4 local DTD" "<?xml version='1.0' encoding=\"utf-8\"?> <!DOCTYPE book SYSTEM \"/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd\">") ("DocBook XML 4.4 article local DTD" "<?xml version='1.0' encoding=\"utf-8\"?> <!DOCTYPE article SYSTEM \"/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd\">")) ;; Leer la DTD automáticamente sgml-auto-activate-dtd t ;; Colores para el modo (Highlight markup) sgml-set-face t ;; Desactivar la inserción de commentarios automáticos sgml-insert-missing-element-comment nil ;; Indicar el elemento en el que se encuentra sgml-live-element-indicator t ;; Indentar los textos tambien sgml-indent-data t) (defun sgml-aentity () "Insertar entidad a con tilde" (interactive) (insert "á")) (defun sgml-eentity () "Insertar entidad e con tilde" (interactive) (insert "é")) (defun sgml-ientity () "Insertar entidad i con tilde" (interactive) (insert "í")) (defun sgml-oentity () "Insertar entidad o con tilde" (interactive) (insert "ó")) (defun sgml-uentity () "Insertar entidad u con tilde" (interactive) (insert "ú")) (defun sgml-gnentity () "Insertar entidad ñ" (interactive) (insert "ñ")) (defun sgml-quentity () "Insertar primer signo de interrogaciOn" (interactive) (insert "¿")) (defun sgml-para () "Insert para tags and position cursor." (interactive) (sgml-insert-element 'para)) (defun sgml-comment () "Insert SGML comment and position cursor." (interactive) (insert "<!-- -->") (backward-char 4)) (defun psgml-ext () "Useful set of keystrokes for sgml mode" ;;Definición de teclas para las personalizaciones del modo (define-key sgml-mode-map "\C-cp" 'sgml-para) (define-key sgml-mode-map "\C-cc" 'sgml-comment) (define-key sgml-mode-map "\C-ca" 'sgml-aentity) (define-key sgml-mode-map "\C-ce" 'sgml-eentity) (define-key sgml-mode-map "\C-ci" 'sgml-ientity) (define-key sgml-mode-map "\C-co" 'sgml-oentity) (define-key sgml-mode-map "\C-cu" 'sgml-uentity) (define-key sgml-mode-map "\C-cn" 'sgml-gnentity) (define-key sgml-mode-map "\C-cq" 'sgml-gnentity) ;; right-click selected element for edit attributes popup (define-key sgml-mode-map [mouse-3] 'sgml-attrib-menu)) (add-hook 'sgml-mode-hook 'psgml-ext) (add-hook 'xml-mode-hook 'psgml-ext) ;;--------------Mouse-------------- (defcustom mouse-wheel-distance 10 "*Number of lines, maximum, to scroll the window when you move the mouse = wheel." :type `integer :group `mouse) ;;-------------------------- (defun mouse-wheelscroll-down () " A function to scroll up or down in response to the mouse wheel." (interactive) (scroll-down (min mouse-wheel-distance (max 1 (- (window-height) next-screen-context-lines))))) ;;-------------------------- (defun mouse-wheelscroll-up () " A function to scroll up or down in response to the mouse wheel." (interactive) (scroll-up (min mouse-wheel-distance (max 1 (- (window-height) next-screen-context-lines))))) (global-set-key [mouse-4] (function mouse-wheelscroll-down)) (global-set-key [mouse-5] (function mouse-wheelscroll-up)); (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(case-fold-search t) '(current-language-environment "Spanish") '(default-input-method "spanish-postfix") '(global-font-lock-mode t nil (font-lock)) '(show-paren-mode t nil (paren)) '(text-mode-hook (quote (turn-on-auto-fill text-mode-hook-identify))) '(transient-mark-mode t)) (custom-set-faces ;; custom-set-faces was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. )
Uso
Arrancando emacs / abriendo el archivo
Importante que el archivo tenga extención .xml
usuario@host: $ emacs documento.xml
Insertar la DTD
C-c C-u C-d
Tabular para autocompletar DocBook XML 4.1
Tambien puede copiar el siguiente encabezado:
Para usar la DTD local.
<?xml version='1.0' encoding="utf-8"?> <!DOCTYPE book SYSTEM "/usr/share/xml/docbook/schema/dtd/4.4/docbookx.dtd">
Para usar la DTD desde internet.
<?xml version='1.0' encoding="utf-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
Imagenes en html y pdf
Si esta usando fop todas las imagenes conviertalas a .svg y use etiquetas docbook así:
<mediaobject id="MyImage"> <imageobject role="html"> <imagedata format="PNG" fileref="image.png"/> </imageobject> <imageobject role="fo"> <imagedata format="SVG" fileref="image.svg"/> </imageobject> </mediaobject>
Si la etiqueta mediaobject está dentro de un elemento como figure no es necesario el id, el formato para usar en el rol fo depende de su procesador vea: http://www.sagehill.net/docbookxsl/GraphicFormats.html
Generar el documento (compilar)
html dividido
xmlto -v -o out html documento.xml
Una sola página de html
xmlto -v html-nochunks documento.xml
xmlto -v fo documento.xml; fop documento.fo documento.pdf