最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【省時(shí)省力寫LaTeX】cdlatex中快速輸入數(shù)學(xué)符號(hào)和字體與自定義設(shè)置

2023-05-21 03:08 作者:金色飛賊小米  | 我要投稿

本期我們開始介紹 Emacs 的 cdlatex 插件。今天我們將講解如何使用 cdlatex 快速插入數(shù)學(xué)字母, 符號(hào)和字體, 以及如何自定義新的快捷鍵.

Table of Contents

  1. AucTeX 和 cdlatex 基本設(shè)置

  2. 數(shù)學(xué)符號(hào)輸入

    1. 插入希臘字母

    2. 數(shù)學(xué)符號(hào)

    3. 第二和第三層目錄

    4. 如何插入 LaTeX 左雙引號(hào) ? ``

  3. 自定義數(shù)學(xué)符號(hào)快捷鍵

    1. 打開設(shè)置界面

    2. 設(shè)置實(shí)例

    3. 保存與加載設(shè)置

    4. 怎么選擇快捷鍵

  4. 數(shù)學(xué)字體修飾

    1. 數(shù)學(xué)字體

    2. 其它修飾

    3. 嵌套修飾

  5. 自定義字體修飾

  6. customize-variable 設(shè)置保存位置

  7. 總結(jié)


AucTeX 和 cdlatex 基本設(shè)置

Emacs 中的 LaTeX 編輯主要是依賴 AucTeX 和 cdlatex 這兩個(gè)插件. AucTeX 提供了編輯 LaTeX 的基本功能, 而 cdlatex 主要提供了大量簡(jiǎn)化和易設(shè)置的輸入方式. ?為了安裝并在 LaTeX 編輯時(shí)啟用這兩個(gè)插件, 我們需要在 init.el 中加入代碼:

使用 straight.el 的用戶需要根據(jù)注釋內(nèi)容適當(dāng)調(diào)整. 在 (use-package cdlatex ...) 中我們指定了 :after tex, 是為了保證 cdlatex 在 auctex 之后加載. 把 cdlatex 代碼塊置于 auctex 之后也實(shí)現(xiàn)了相同效果; 而加了這一行后, 代碼塊次序可以隨意調(diào)整.

LaTeX-mode-hook 是我們打開 LaTeX 文件時(shí)需要加載的設(shè)置, 這里我們定義了一個(gè)新的函數(shù) my/latex-hook (名字可隨意), 這樣方便我們?nèi)蘸蠹尤敫嗟墓δ? 函數(shù)的第一行 (turn-on-cdlatex) 就是打開 tex 文件時(shí)加載 cdlatex 的命令.

成功設(shè)置后, 當(dāng)我們打開 tex 文件時(shí), 大家應(yīng)當(dāng)可以看到模式欄中的 LaTeX/P 和 CDL, 就表示加載了 AucTeX 和 cdlatex. 通過 C-h m (m 表示 mode) 可以查看當(dāng)前加載的所有主要模式和次要模式.


數(shù)學(xué)符號(hào)輸入

這里的數(shù)學(xué)符號(hào)也包括各種非拉丁字母如 \alpha, \aleph 等. 輸入方法是用反引號(hào) (Tab 上方) 加另一個(gè)鍵組成的快捷鍵輸入.


插入希臘字母

希臘字母可以用 ` + 對(duì)應(yīng)拉丁字母插入, 包括大小寫. 例如

  • ` + a: \alpha

  • ` + b: \beta

  • ` + g: \gamma

  • ` + G: \Gamma

  • ` + S: \Sigma

如果你不熟悉希臘字母對(duì)應(yīng)的拉丁字母, 沒有關(guān)系, 只要在按下 ` 后稍稍停頓, 就會(huì)彈出一個(gè)提示界面. 大家剛開始使用時(shí)可以多查看這個(gè)提示界面.


數(shù)學(xué)符號(hào)

大家在提示界面可以看到, 除了希臘字母以外, 我們還可以用同樣的方法快速插入數(shù)學(xué)符號(hào). cdlatex 預(yù)置了很多好記的默認(rèn)設(shè)置. 例如, ` + 8 插入 \infty, 因?yàn)閿?shù)字8放平就是無窮, 又如, ` + * 插入 \times 乘號(hào), ` + + 插入 \cup (并集), ` + > 插入 \rightarrow (右箭頭) 等.


第二和第三層目錄

cdlatex 中連續(xù)按下兩次反引號(hào) ` 可以打開第二層目錄. 第二層通常用于希臘字母的變體, 如

  • `e 插入 \epsilon, ``e 插入 \varepsilon

  • `r 插入 \rho, ``r 插入 \varrho

又或者是一些類似的符號(hào), 如

  • `> 插入 \rightarrow, ``> 插入 \longrightarrow

或者是多個(gè)符號(hào)最直觀的快捷鍵相同, 但是頻率最高的放在第一層, 頻率低的放在第二層, 如

  • `d 插入 \delta, ``d 插入 \partial (求偏導(dǎo)符號(hào))

這個(gè)目錄還有第3層, 這里綁定的快捷鍵就更少了. 默認(rèn)的是一些數(shù)學(xué)函數(shù)的符號(hào), 如 \sin, \exp 等


如何插入 LaTeX 左雙引號(hào) ? ``

反引號(hào)在 LaTeX 中寫作幾乎不會(huì)用到, 除了用于左雙引號(hào) ? ?(LaTeX 的右雙引號(hào)是 `''` ). 這很好解決: 在 AucTeX 默認(rèn)設(shè)置下, 第一個(gè)輸入的雙引號(hào) <kbd>"</kbd> 會(huì)自動(dòng)轉(zhuǎn)換成為 <kbd> 插入, 第二個(gè)輸入的雙引號(hào) " 會(huì)轉(zhuǎn)換為 '' . 例如, "word" 將插入 ?word'' ``.

當(dāng)然, 你也可以把反引號(hào)修改成其它的鍵, 但是既然無須擔(dān)心雙引號(hào)輸入的問題, 我覺得改的意義不大. 反引號(hào)已經(jīng)是很好的選擇.


自定義數(shù)學(xué)符號(hào)快捷鍵

Emacs 的最大優(yōu)勢(shì)就是我們可以自由地設(shè)置. 前面反引號(hào) ` 觸發(fā)的快捷輸入, 我們也可以添加自己需要的符號(hào)或調(diào)整已有的設(shè)置.

這里的所有設(shè)置保存在一個(gè)叫 cdlatex-math-symbol-alist 的變量中. 我們接下來講解在 Emacs 如何設(shè)置一個(gè)變量, 保存設(shè)置以及加載設(shè)置. 這對(duì)其它的變量也是一樣.


打開設(shè)置界面

雖然所有的變量設(shè)置都可以通過 init.el 里面的 (setq ...) 語句完成, 對(duì)于 cdlatex-math-symbol-alist 這種結(jié)構(gòu)非常復(fù)雜的變量, 新手還是建議用 Emacs 自帶的設(shè)置界面.

打開一個(gè)變量的設(shè)置界面主要有兩種方式 (以 cdlatex-math-symbol-alist 為例)

  1. 通過 customize-variable 命令: M-x customize-variable RET M-x cdlatex-math-symbol-alist RET

  2. 從變量的幫助界面進(jìn)入設(shè)置界面: C-h v cdlatex-math-symbol-alist RET 并點(diǎn)擊 Customize


設(shè)置實(shí)例

我們想調(diào)換 `e 和 ``e 原本的快捷鍵設(shè)置, 即實(shí)現(xiàn)如下效果: ?`e 插入 \varepsilon, ``e 插入 \epsilon. (這么做的原因是 \varepsilon 更常用).

  1. 打開 cdlatex-math-symbol-alist 的設(shè)置界面

  2. 點(diǎn)擊 INS 插入一個(gè)新條目

  3. 在 character 后輸入 e

  4. 在 Repeat 后按 INS, 新插入的一行輸入 \varepsilon

  5. 在 Repeat 后按 INS, 新插入的一行輸入 \epsilon

這就完成了基本設(shè)置. 如果大家想綁定 ```e 和 ````e 等, 只需要再加入新的行以及你需要的 LaTeX 宏命令即可.

這里因?yàn)?`e 已經(jīng)在 cdlatex 的默認(rèn)設(shè)置中, 所以我們是覆蓋了原有設(shè)置. 你可以在一開始的按下 ` 的提示界面中看到默認(rèn)設(shè)置, 或者通過查看變量 cdlatex-math-symbol-alist-default.


保存與加載設(shè)置

設(shè)置完畢我們會(huì)點(diǎn)擊 Apply and Save.

  • Apply: 改變了當(dāng)前 cdlatex-math-symbol-alist 的値, 重啟 Emacs 后失效

  • Save: 保存設(shè)置, 重啟后仍生效.

但是已經(jīng)打開的 tex 文件是看不到更新的設(shè)置的. 想要重新加載 cdlatex 的設(shè)置. 這有3種方法:

  1. 重啟 Emacs

  2. 一個(gè)是打開新的 tex 文件

  3. 在原來的 .tex 文件緩沖區(qū), 按下 C-c C-n.

第三種方法可以刷新 LaTeX 模式設(shè)置, 也適用于其它與 cdlatex 的設(shè)置. 此時(shí), 大家按下反引號(hào) ` 就可以看到更新后的列表了.


怎么選擇快捷鍵

原則上這個(gè)機(jī)制可以插入任意的數(shù)學(xué)表達(dá)式, 如 \stackrel{\mathrm{a.s.}}{=}=, 但是建議只綁定原子化的數(shù)學(xué)符號(hào). 復(fù)雜的表達(dá)式更適合用 cdlatex 的命令補(bǔ)全功能.

快捷鍵要易記, 直觀, 憑你的第一感覺就能找到. 否則不能提高輸入速度. 大家也可以查看默認(rèn)的設(shè)置尋找靈感. 反例就是把左箭頭 \leftarrow 綁到 `> 上.

如果一個(gè)鍵上綁定了多層快捷鍵, 要考慮不同命令使用的頻率, 把最常用的放在第一層, 次常用的放在第二層, 依此類推. 像上面的 \epsilon 和 \varepsilon 的例子.

你也可以綁定自己定義的宏命令. 例如, 我的 `e 綁定的是 \eps, 而在我的 LaTeX 文檔引言區(qū)中會(huì)定義 \newcommand{\eps}{\varepsilon}. 這樣的好處可以提高代碼的可讀性, 方便交流. 畢竟你的導(dǎo)師, 你的合作者未必用 Emacs, 長(zhǎng)長(zhǎng)的 \varepsilon 會(huì)讓人眼花. 但是我輸入時(shí)想到的是希臘字母 epsilon 就應(yīng)該用 `e 輸入.

這里有很大的發(fā)揮空間, 因?yàn)榈诙雍偷谌龑踊径际强盏? 每個(gè)鍵還分大小寫, 可以自由設(shè)置100多個(gè)快捷鍵. 所以盡情發(fā)揮吧.


數(shù)學(xué)字體修飾


數(shù)學(xué)字體

cdlatex 還可以快速插入不同的數(shù)學(xué)字體, 像 \mathrm{}, \mathbf{} 等等. 例如, 我們常常用粗體 R 表示實(shí)數(shù)域, 也就是 \mathbf{R}. 我們可以按3個(gè)鍵完成輸入: R + ' + b

  • R: 輸入字母 R

  • ' (單引號(hào)): 打開數(shù)學(xué)字體列表. 作用相當(dāng)于前面的 `

  • b: 在字母 R 外面插入表示粗體的 LaTeX 宏命令 \mathbf{}

按單引號(hào) ' 默認(rèn)會(huì)改變前一個(gè)字母的字體, 也包括希臘字母, 但只是前面一個(gè)字母. 例:

  • `a'b 插入 \mathbf{\alpha}

  • ab'b 插入 a\mathbf.

如果需要改變多個(gè)字母的字體可以先選擇字體, 再輸入文本. 這就是第二種方法. 但是輸入單引號(hào)時(shí)前面要是空格或者 $, { 這種功能性字符. 例:

  • $'babc 插入 $\mathbf{abc}$.

  • $a'bc 插入 $\mathbf{a}c$.

可以用于改變多個(gè)字符的字體.


其它修飾

這種插入方式也可以推廣到一切 LaTeX 宏命令 + 一對(duì)花括號(hào)內(nèi)一段文本的結(jié)構(gòu). 除了像 \mathbf{}, \mathrm{} 這種數(shù)學(xué)字體, 還可以輸入

  • 數(shù)學(xué)公式中對(duì)字母的其它修飾, 如

    這里默認(rèn)的快捷捷非常直觀, 大家也可以按下單引號(hào) ' 稍等以查看提示界面.

    • '> 插入 \vec{}

    • '^ 插入 \hat{}

    • '- 插入 \bar{}

  • 非數(shù)學(xué)公式中的文本字體, 如

    • 'b 插入 \textbf{}

    • 'i 插入 \textit{}

這里同樣的 'b, 用在數(shù)學(xué)公式內(nèi)就是 \mathbf{}, 用在文本中就是 \textbf{}. cdlatex 會(huì)自動(dòng)檢測(cè)當(dāng)前環(huán)境是否為數(shù)學(xué)環(huán)境.


嵌套修飾

觸發(fā)字體修飾的第三種方法是選先高亮選中一段文本, 再選擇修飾. 例如, 選中數(shù)學(xué)環(huán)境外的 blabla, 然后按 'b, 則 blabla 會(huì)變成 \textbf{blabla}. 如果 blabla 在數(shù)學(xué)環(huán)境內(nèi), 則變成 \mathbf{blabla}

第一種方法只能修飾一個(gè)字母, 所以嵌套修飾只能使用第二種或第三種方法. 例:

  • '-'bR 插入 \bar{\mathbf{R}}.

  • R'b 插入 \mathbf{R}, 然后高亮選中按下 '-, 變成 \bar{\mathbf{R}}


自定義字體修飾

這里需要設(shè)置的變量是 cdlatex-math-modify-alist. 打開設(shè)置界面的方法和前面一樣, 輸入 M-x customize-variable RET cdlatex-math-modify-alist RET

現(xiàn)在我們舉一個(gè)例子. 假設(shè)我們想用 't 在數(shù)學(xué)公式中插入空心粗體 \mathbb{}. 操作如下

  • 打開 cdlatex-math-modify-alist 設(shè)置界面

  • 點(diǎn)擊 INS 新建一個(gè)條目

  • 第一行 character 輸入 t

  • 第二行: \mathbb

  • 第三行: 保持空白, 因?yàn)槲谋灸J较聸]有空心粗體, 或者輸入 \text, 這是 cdlatex 的默認(rèn)設(shè)置.

  • 第四行: Type 改成 command. 兩種方式幾乎等價(jià)但是 command 現(xiàn)在更常用.

  • 第五, 第六行: 不變

我們修改完之后, 按 Apply and Save 保存, 然后在 tex 文件緩沖區(qū)中用 C-c C-n 刷新設(shè)置, 這樣我們?cè)跀?shù)學(xué)環(huán)境中按下 ' 就能插入空心粗體 \mathbb{} 了.


customize-variable 設(shè)置保存位置

我們的 init.el 設(shè)置里面有這樣兩行:

這樣 Emacs 會(huì)把通過 customize-variable 設(shè)置的變量保存在我們自定義的 custom.el 的文件中. 內(nèi)容大概像這樣:

這里包含了我們前面對(duì) cdlatex-math-modify-alist 和 cdlatex-math-symbol-alist 的設(shè)置.

如果沒有特別的設(shè)置, customize-variable 設(shè)置的變量默認(rèn)會(huì)由 Emacs 保存到 init.el 文件的最后. 我們的設(shè)置可以區(qū)分自己的設(shè)置和 Emacs 保存的設(shè)置.

當(dāng)然, 你也可以手動(dòng)把 custom-set-variables 中的內(nèi)容用 (setq ...) 語句寫在你的 init.el 當(dāng)中, 尤其可以放在相應(yīng)插件的 use-package 代碼塊中. 這樣的好處是方便單獨(dú)管理每個(gè)插件的設(shè)置, 并且利用 use-package 的延遲加載功能加快打開 Emacs 的時(shí)間. 當(dāng)我們的 cdlatex 設(shè)置很長(zhǎng)的時(shí)候, 這樣做可以把 Emacs 的啟動(dòng)時(shí)間從10多秒減少到1秒以下. 大家可以在熟悉了 Emacs 的設(shè)置后再做嘗試, 新手不推薦這么做.


總結(jié)

Emacs 中的 cdlatex 插件利用反引號(hào) ` 和單引號(hào) ' 開始的快捷鍵可以快速插入數(shù)學(xué)字母, 符號(hào)和字體. 我們可以通過設(shè)置 cdlatex-math-symbol-alist 和 cdlatex-math-modify-alist 這兩個(gè)變量修改和增加自己喜歡的快捷鍵.

在下期視頻中我們將介紹 cdlatex 中 Tab 的命令/模板補(bǔ)全功能. 它可以幫助我們輸入一些更復(fù)雜的宏命令, 或者插入環(huán)境模板等等.

【省時(shí)省力寫LaTeX】cdlatex中快速輸入數(shù)學(xué)符號(hào)和字體與自定義設(shè)置的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
潍坊市| 收藏| 海伦市| 永清县| 苍山县| 泉州市| 高雄县| 东源县| 鸡西市| 沙坪坝区| 芦溪县| 杂多县| 亳州市| 谢通门县| 大庆市| 萨嘎县| 星子县| 敦煌市| 双城市| 佛山市| 曲周县| 富阳市| 永福县| 通州区| 赫章县| 华池县| 洪洞县| 定远县| 洪江市| 澄迈县| 六枝特区| 龙胜| 运城市| 土默特右旗| 荥阳市| 祥云县| 晴隆县| 天祝| 宜兰市| 特克斯县| 兴海县|