如何优化键盘以适应频繁的 LaTeX 输入?

如何优化键盘以适应频繁的 LaTeX 输入?

我已经开始练习实时打字记录我的数学/物理笔记。虽然我没有在现场讲座中练习,但我在观看在线讲座时会这样做,以便快速习惯它。我不是专业的盲打者,但速度不错,大约 60 wpm。我使用的一些技巧是使用大量\newcommand来减轻速度。

最有帮助的是用不涉及按下死键的公式分隔符来替代。出于各种原因(可移植到在线 CMS),我开始使用前者\(..\)代替,$..$前者需要六次击键,而后者需要三次。对于显示模式,前者需要四次击键,而后者需要五次击键。我想通过一次击键来实现这一点。我可以设置哪些键盘快捷键,或者我可以在 latex 中做些什么?

类似地,是否可以用一次击键来实现{、、}等?_^

目前,当讲师讲得非常快时,我会忽略分隔符,讲座结束后,我必须编辑一个非常有缺陷且丑陋的 tex 文件。我希望得到尽可能完整的文件。正常的句子不会造成太大问题,但数学让我的速度变慢了。不过,我宁愿不下载另一个键盘。

答案1

如果你使用的编辑器足够好,你可以设置各种事情,只需按一下键即可。例如,我使用 xemacs,我有

  • Alt-p(或 escape-p)插入一对括号并将鼠标指针放在它们中间,
  • alt-m(或 escape-m)插入一对美元符号并将点放在它们之间,
  • alt-o(或 escape-o)插入一对括号并将鼠标指针放在它们之间,
  • alt-p(或 escape-p)插入一对括号并将鼠标指针放在它们中间,

还有一些其他的东西。要退出它们,我使用 alt-j(或 escape-j)“跳出”其中任何一个,即,它向前移动到第一个右括号、右大括号或右方括号之后。我还使用键^插入该字符以及一对大括号并将点放在大括号内,使用键_插入该字符以及一对大括号并将点放在大括号内,使用键[插入一对方括号并将点放在它们之间。

我把这一切都设置在我的.xemacs/init.el文件中;我会在这里附加该文件的相关部分。

;; Set up my LaTeX-mode keybindings:

(add-hook 'LaTeX-mode-hook 'add-my-latex-keybindings)
(defun add-my-latex-keybindings ()
  (progn
    (local-set-key "[" 'bracket-pair)
    (local-set-key "^" 'superscript-braces)
    (local-set-key "_" 'subscript-braces)))

;;--------------------------------------------------------------------
;;--------------------------------------------------------------------

;; This begins the definitions of our own functions:

;;--------------------------------------------------------------------
;;--------------------------------------------------------------------
(defun dollar-pair ()
  "We insert a pair of dollar signs and position
    point in between them."
  (interactive)
  (progn
    (insert "$$")
    (backward-char)))
;;---------------------------------------------------------------
;;---------------------------------------------------------------
(defun paren-pair (arg)
 "We insert a pair of parentheses and position point in between them.
  If called with an argument, then we insert \"\\bigl(\\bigr)\"
  and position point inside of that."
  (interactive "P")
      (if arg
    (progn
      (insert "\\bigl(")
      (save-excursion (insert "\\bigr)")))
        (progn
          (insert "()")
          (backward-char))))
;;---------------------------------------------------------------
;;---------------------------------------------------------------
(defun brace-pair ()
  "We insert a pair of braces and position
    point in between them."
  (interactive)
  (progn
    (insert "{}")
    (backward-char)))
;;---------------------------------------------------------------
;;---------------------------------------------------------------
(defun bracket-pair ()
  "We insert a pair of brackets and position
    point in between them."
  (interactive)
  (progn
    (insert "[]")
    (backward-char)))
;;--------------------------------------------------------------------
;;--------------------------------------------------------------------
(defun superscript-braces ()
  "We insert a superscript symbol followed by a pair of braces
    and position point in between the braces."
  (interactive)
  (progn
    (insert "^")
    (brace-pair)))
;;--------------------------------------------------------------------
;;--------------------------------------------------------------------
(defun subscript-braces ()
  "We insert a subscript symbol followed by a pair of braces
    and position point in between the braces."
  (interactive)
  (progn
    (insert "_")
    (brace-pair)))
;;--------------------------------------------------------------------
;;--------------------------------------------------------------------
(defun insert-verbatim ()
  "We insert  \\verb\"\" and position point in between the quotes."
  (interactive)
  (progn
    (insert "\\verb\"\"")
    (backward-char)))
;;--------------------------------------------------------------------
;;--------------------------------------------------------------------
(defun jump-out ()
  "We first expand the abbrev before point (if there is an abbrev
    before point), and then we move point forward in the file until we
    pass the first dollar sign, right paren, right bracket, right brace
    or double quote."
  (interactive)
  (progn
    (expand-abbrev)
    (re-search-forward "[])}$\"]")))
;;--------------------------------------------------------------------
;;--------------------------------------------------------------------
(defun fontchange-em ()
  "We insert  \\emph{} and position point before the right brace."
  (interactive)
  (progn
    (insert "\\emph{}")
    (backward-char)))
;;---------------------------------------------------------------
;;---------------------------------------------------------------
;; Key bindings:


(global-set-key "\ej"     'jump-out)
(global-set-key "\C-cj"   'jump-out)
(global-set-key "\em"     'dollar-pair)
(global-set-key "\C-cm"   'dollar-pair)
(global-set-key "\ep"     'paren-pair)
(global-set-key "\C-cp"   'paren-pair)
(global-set-key "\eo"     'brace-pair)
(global-set-key "\C-co"   'brace-pair)
(global-set-key "\en"     'insert-verbatim)
(global-set-key "\C-cn"   'insert-verbatim)
(global-set-key "\ee"     'LaTeX-environment)
(global-set-key "\C-ce"   'LaTeX-environment)
(global-set-key "\ek"     'fontchange-em)
(global-set-key "\C-ck"   'fontchange-em)

答案2

我在用着yasnippet在 AUCTeX+EMACS 中,例如,它为我提供了使用中间的光标进行键入im TAB和获取的选项,然后另一个将我发送到该对之外。\( \)TAB

答案3

不久前,Machi、Marsden 和 McKay 描述了一个项目快特克斯"d" -> "$"这使得诸如等即时扩展"dxa" -> "$\alpha$"能够以极快的速度输入 TeX。关键在于缩写的选择是一致且谨慎的,以免对常规英语单词造成问题。

详细信息TUGboat 第 16 卷(1995)第 4 期

即使你不使用该程序,他们也会非常仔细地考虑缩写,我发现该方案非常有用。 Emacs缩写模式可以用来做到这一点。

这里有一个缩写列表

相关内容