yatex

annotate yatex23.el @ 566:2ef9f21dd13b

Add note on YaTeX::usepackage-alist-default
author HIROSE Yuuji <yuuji@gentei.org>
date Thu, 24 Jan 2019 15:19:32 +0900
parents 723f136edde5
children
rev   line source
yuuji@330 1 ;;; yatex23.el --- YaTeX facilities for Emacs 23 or later -*- coding: sjis -*-
yuuji@443 2 ;;; (c)2014-2017 by HIROSE Yuuji.[yuuji@yatex.org]
yuuji@497 3 ;;; Last modified Sun Sep 17 10:23:02 2017 on firestorm
yuuji@366 4 ;;; $Id$
yuuji@330 5
yuuji@433 6 (require 'yatex19)
yuuji@330 7 ;;; Code:
yuuji@343 8 (defvar YaTeX-dnd-auto-figure "figure"
yuuji@343 9 "*If set, include dropped \\includegraphcs{} into that environment.
yuuji@343 10 The value should be string. Set this `nil' to disable enclosing.")
yuuji@361 11 (defvar YaTeX-dnd-auto-figure-package
yuuji@361 12 (cons "graphicx"
yuuji@361 13 (cond ((string-match "pdflatex" tex-command) "pdftex")
yuuji@361 14 (t "dvipdfmx")))
yuuji@358 15 "*Default LaTeX package and its option for \\includegraphics")
yuuji@358 16
yuuji@330 17 (defun YaTeX-dnd-handler (uri action)
yuuji@330 18 "DnD handler for yatex-mode
yuuji@330 19 Convert local image URI to \\includegraphcis{} and
yuuji@330 20 .tex file names to \\include{}."
yuuji@402 21 (let*((file (dnd-get-local-file-name uri t))
yuuji@343 22 (path (save-excursion
yuuji@343 23 (YaTeX-visit-main t)
yuuji@343 24 (file-relative-name file)))
yuuji@343 25 (insert-file-directory nil)
yuuji@343 26 (case-fold-search t)
yuuji@343 27 (b nil) p1 p2 (cc (current-column)) envstart)
yuuji@343 28 (cond
yuuji@343 29 ((memq action '(copy link move private))
yuuji@330 30 (cond
yuuji@343 31 ((string-match "\\.\\(jpe?g\\|png\\|gif\\|bmp\\|tiff?\\|e?ps\\|pdf\\)$" path)
yuuji@343 32 (if (and (stringp YaTeX-dnd-auto-figure)
yuuji@343 33 (not (YaTeX-in-environment-p YaTeX-dnd-auto-figure))
yuuji@343 34 (not (string-match "figure"
yuuji@343 35 (or (YaTeX-inner-environment t) "body")))
yuuji@343 36 YaTeX-dnd-auto-figure)
yuuji@343 37 (setq b (format "\\begin{%s}[htbp] %%\\centering\n"
yuuji@343 38 YaTeX-dnd-auto-figure)))
yuuji@343 39 (unwind-protect
yuuji@343 40 (progn
yuuji@343 41 (setq envstart (point-marker))
yuuji@343 42 (insert "\\includegraphics")
yuuji@343 43 (insert "{" (YaTeX::includegraphics 1 path t) "}")
yuuji@343 44 (save-excursion
yuuji@357 45 (YaTeX-package-auto-usepackage
yuuji@358 46 "includegraphics" 'section
yuuji@358 47 (car YaTeX-dnd-auto-figure-package)
yuuji@358 48 (cdr YaTeX-dnd-auto-figure-package)))
yuuji@343 49 (cond
yuuji@343 50 (b
yuuji@343 51 (undo-boundary)
yuuji@343 52 (save-excursion
yuuji@343 53 (goto-char envstart)
yuuji@343 54 (insert b))
yuuji@343 55 (YaTeX-indent-line)
yuuji@343 56 (insert "\n")
yuuji@343 57 (indent-to (1+ cc))
yuuji@343 58 (setq p1 (point))
yuuji@343 59 (insert "\\caption{")
yuuji@343 60 (setq p2 (point))
yuuji@343 61 (insert (format "}\\label{%s}\n" path))
yuuji@343 62 (indent-to cc)
yuuji@343 63 (insert (format "\\end{%s}\n" YaTeX-dnd-auto-figure))
yuuji@343 64 (goto-char p2)
yuuji@343 65 (undo-boundary)
yuuji@343 66 (insert (file-name-nondirectory path))
yuuji@343 67 (undo-boundary)
yuuji@343 68 (goto-char p1)
yuuji@343 69 (insert "%")
yuuji@343 70 (end-of-line)
yuuji@343 71 (or (get 'YaTeX-dnd-auto-figure 'guide)
yuuji@343 72 (progn
yuuji@343 73 (newline 1)
yuuji@343 74 (indent-to (1+ cc))
yuuji@343 75 (insert (format
yuuji@343 76 (if YaTeX-japan
yuuji@343 77 "%% Undo(%s)するとcaptionが活きます。2度押しで空欄 3度押しで無環境"
yuuji@343 78 "%% TYPE undo(%s) to ACTIVATE caption. Twice to clear caption. 3 to no-env")
yuuji@343 79 (key-description
yuuji@343 80 (car (where-is-internal 'undo)))))
yuuji@343 81 (put 'YaTeX-dnd-auto-figure 'guide t)))))
yuuji@348 82 (YaTeX-help "includegraphics"))
yuuji@343 83 (set-marker envstart nil) ;;sure to reset marker
yuuji@343 84 action))
yuuji@344 85 ((string-match "\\(.*\\)\\.tex$" path)
yuuji@348 86 (insert "\\include{" (match-string 1 path) "}"))
yuuji@348 87 ((string-match "\\(.*\\)\\.bib$" path)
yuuji@348 88 (insert "\\bibliography{" (match-string 1 path) "}"))
yuuji@348 89 ((string-match "\\.ind$" path)
yuuji@348 90 (insert "\\input{" path "}"))))
yuuji@343 91 (t (message "%s" action)))))
yuuji@330 92
yuuji@377 93 (defvar YaTeX-on-the-fly-bg-face '("#f0f0c0" . "#706868")
yuuji@376 94 "Background color of on-the-fly preview image activated environment.")
yuuji@376 95 (defvar YaTeX-on-the-fly-overlay nil
yuuji@376 96 "Overlay of on-the-fly preview image")
yuuji@376 97 (defface YaTeX-on-the-fly-activated-face
yuuji@376 98 (list
yuuji@381 99 (list (list '(class color) '(min-colors 65536))
yuuji@376 100 (list ':background
yuuji@376 101 (if (eq YaTeX-background-mode 'light)
yuuji@376 102 (car YaTeX-on-the-fly-bg-face)
yuuji@376 103 (cdr YaTeX-on-the-fly-bg-face))))
yuuji@376 104 (list t (list ':bold t)))
yuuji@376 105 "Face of on-the-fly preview image mode")
yuuji@376 106
yuuji@330 107 (provide 'yatex23)