>

Windows 7 컴퓨터의 emacs 24.4에서 조직 8.2를 사용하고 있습니다. 최근에이 파일을 내 '로드 경로'중 하나에 저장하여cdlatex.el스크립트를 설치했습니다. 아시다시피, cdlatex는 조직 모드와 함께 작동 할 수있는 마이너 모드이며 키보드 단축키를 사용하여 조직에서 수학을 빠르게 작성하는 데 도움이됩니다. 그러나 cdlatex에있을 때이 오류 메시지가 나타납니다 :

Wrong type argument: characterp, 134217782

이 오류는 키보드에서 역 따옴표 또는 역 따옴표 키를 누를 때마다 미니 버퍼에 나타납니다 (이 기호 :`).

분명히.emacs구성 파일에이 문제를 해결하기 위해 줄을 추가해야합니다. 그렇지 않으면 키보드에서 CDLaTeX 명령의 90 %를 사용할 수 없습니다. 누군가 제발 도와주세요? 나는 elisp에 능숙하지 않습니다 (나는 단지 다른 사람들의 행을 복사/붙여 넣기합니다). 이것은 물결표와 백 따옴표에 관한 .emacs 파일에 있습니다 (노트북 키보드의 동일한 키에 응답합니다. 이 질문 은 문맥에 따라) :

;;; a key for tilde symbol
(define-key key-translation-map (kbd "M-2") (kbd "~"))
;;; a key for backtick symbol
(define-key key-translation-map (kbd "M-6") "")
(define-key key-translation-map (kbd "M-9") (kbd "`"))

편집 1

M-x toggle-debug-on-error 에 대한 답변  입니다 :

Debugger entered--Lisp error: (wrong-type-argument characterp 134217782)
  format("No such math symbol %c on level %d" 134217782 1)
  apply(format ("No such math symbol %c on level %d" 134217782 1))
  error("No such math symbol %c on level %d" 134217782 1)
  (if (or (not symbol) (not (stringp symbol)) (equal symbol "")) (error "No such math symbol %c on level %d" char level))
  (let* ((cell (cdlatex-read-char-with-help cdlatex-math-symbol-alist-comb 1 cdlatex-math-symbol-no-of-levels "Math symbol level %d of %d: " "AVAILABLE MATH SYMBOLS.  [%c]=next level " cdlatex-math-symbol-prefix (get (quote cdlatex-math-symbol-alist-comb) (quote cdlatex-bindings)))) (char (car cell)) (level (cdr cell)) (entry (assoc char cdlatex-math-symbol-alist-comb)) (symbol (nth level entry))) (if (or (not symbol) (not (stringp symbol)) (equal symbol "")) (error "No such math symbol %c on level %d" char level)) (if (or (not (texmathp)) (cdlatex-number-of-backslashes-is-odd)) (cdlatex-dollar)) (insert symbol) (if (string-match "\\?" symbol) (progn (cdlatex-position-cursor))))
  cdlatex-math-symbol()
  call-interactively(cdlatex-math-symbol nil nil)
  command-execute(cdlatex-math-symbol)


  • 답변 # 1

    이전 Emacs 버전에서 바이트 컴파일 된 코드를로드 한 것처럼 들립니다.

    먼저, 해당 기능을 정의하는 Lisp 소스 파일을로드하여 확인하십시오. *.el 바이트 컴파일 된 파일이 아닌 *.elc ). (문제의 파일이 cdlatex.el 인 것 같습니다.  -그러나 다른 파일 일 수 있습니다.)

    만약 문제가 해결되면 (그리고해야 할 경우), 최신 Emacs 버전 (런타임에서 사용하는 것과 동일한 버전)을 사용하여 라이브러리를 다시 바이트 컴파일 할 수 있습니다. 와이즈 비즈

  • 답변 # 2

    backquote (또는 back-tick)를 다시 매핑하여 해결 방법을 찾았습니다. 내.emacs파일에서 다음을 작성했습니다.

    M-x byte-compile-file
    
    

    나는 두 번째 부분, 즉 주석 처리 된 부분을 시도했지만 문제를 일으켰으므로 생략했습니다. 이 다시 매핑을 사용하면 역 따옴표를 호출하여 수학 기호 메뉴에 들어갈 수 있습니다. 안으로 들어가면 (define-key key-translation-map (kbd "C-1") (kbd "`")) ;;; how to tell cdlatex that it should keep Org-mode's backquote symbol? ;(eval-after-load "cdlatex" ; '(define-key minor-mode-map (kbd "M-9") nil) ; clean it up ; '(define-key minor-mode-map (kbd "M-9") (kbd "`"))) ; now set it 를 눌러 3 단계의 심볼을 순환 할 수 있습니다. . 물론 나는 위의@Drew명령을 사용하여 순환하는 데 필요한 백 쿼트 문자를 변경하고 대신 '속도'로 넣었습니다. @ .

    역 따옴표를 이스케이프해야하는 경우C-q`를 입력 할 수 있습니다.

    M-x customize-option RET cdlatex-math-symbol-prefix RET

  • 이전 emacs - 에코 영역에 시계를 표시 할 수 있습니까?
  • 다음 .net - WinMD/WinRT 구성 요소에 노출 된 유형을 밀봉해야하는 이유는 무엇입니까?