目前,該部分命令的顏色為藍色(使用 Monokai 主題)。我想在Sublime Text 3中開啟時更加強調原始碼中的分段命令,類似效果Emacs 答案中已說明。
我安裝了PackageResourceViewer
插件並打開了LaTeX.sublime-syntax
資源。我懂了:
sections:
- match: |-
(?x)
(
(\\)
(?:
(?:sub){0,2}section
| (?:sub)?paragraph
| chapter|part|addpart
| addchap|addsec|minisec
)
(?:\*)?
)
(?:
(\[)([^\[]*?)(\]) # optional Title
)?
(\{)
captures:
1: support.function.section.latex
2: punctuation.definition.backslash.latex
3: punctuation.definition.group.brace.begin.latex
4: entity.name.section.latex
5: punctuation.definition.group.brace.end.latex
6: punctuation.definition.group.brace.begin.latex
push:
- meta_scope: meta.section.latex
- meta_content_scope: entity.name.section.latex
- match: '\}'
scope: punctuation.definition.group.brace.end.latex
pop: true
- include: main
但我不知道如何繼續。
答案1
概述
Sublime Text 樣式檔案的方式是將語意意義和實際渲染分開。這與 LaTeX 類似:您有一個命令\section{...}
- 指示意圖 - 與實際渲染相對應,也許\textbf{\huge ...}
是一個非常簡單的範例。
文件.sublime-syntax
只能附加語意意義是文件的各個部分(「這是一個部分」),而決定如何在螢幕上渲染內容(「這是粗體」)的工作屬於配色方案.tmThemes
文件。 (當然,實際上事情並不是那麼乾淨,您會在.sublime-syntax
文件中看到兩者的混合。在完美的世界中,這不會發生。)
所以你有兩個選擇:
調整語法文件,類似於替換每個實例以
\section{...}
獲取\textbf{\huge ...}
粗體部分。不推薦,但我會在這裡討論如何做到這一點。調整配色方案文件,類似於更改定義為
\section
各部門壯膽。
調整文法
這裡我們簡單地將相關部分改為LaTeX.sublime-syntax
eg markup.bold.latex
(參見這有關 Sublime Text 中範圍名稱的討論的連結)。更改後的行是# ...
其後帶有註解的行。
sections:
- match: |-
(?x)
(
(\\)
(?:
(?:sub){0,2}section
| (?:sub)?paragraph
| chapter|part|addpart
| addchap|addsec|minisec
)
(?:\*)?
)
(?:
(\[)([^\[]*?)(\])
)?
(\{)
captures:
1: support.function.section.latex
2: punctuation.definition.backslash.latex
3: punctuation.definition.group.brace.begin.latex
4: entity.name.section.latex markup.bold.latex # this is for the reference [...]
5: punctuation.definition.group.brace.end.latex
6: punctuation.definition.group.brace.begin.latex
push:
- meta_scope: meta.section.latex
- meta_content_scope: entity.name.section.latex markup.bold.latex # this is for the title {...}
- match: '\}'
scope: punctuation.definition.group.brace.end.latex
pop: true
- include: main
(我保留了舊的範圍,entity.name.section.latex
以防萬一事情依賴它,但放在markup.bold.latex
它後面意味著粗體優先於它。)
不同配色方案的結果可能會有所不同,例如有些人不明白什麼markup.bold
意思。你提到Monokai,預設版本不處理markup.bold
,但是例如Monokai 擴展明白了。
調整配色方案
另一個選擇是調整配色方案本身。 Sublime Text 中的配色方案是.tmTheme
文件,基本上就是 xml 文件。他們有這樣的結構:
... (preamble stuff)
<plist version="1.0">
<dict>
<key>name</key> <string>Colour Scheme Name</string>
<key>settings</key>
<array>
<dict>
<key>settings</key> <dict> ... (general settings) </dict>
</dict>
<dict>
<key>name</key> <string>First Scope Name</string>
<key>scope</key> <string>first.scope</string>
<key>settings</key> <dict> ... </dict>
</dict>
...
<dict>
<key>name</key> <string>Last Scope Name</string>
<key>scope</key> <string>last.scope</string>
<key>settings</key> <dict> ... </dict>
</dict>
</array>
</dict>
</plist>
看一下預設的內容Monokai.tmTheme
,與我們相關的部分是以下條目array
:
<dict>
<key>name</key>
<string>Entity name</string>
<key>scope</key>
<string>entity.name - (entity.name.filename | entity.name.section | entity.name.tag | entity.name.label)</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#A6E22E</string>
</dict>
</dict>
這就是控制我們的範圍所獲得的樣式的因素entity.name.section.latex
。我們能做的就是新增一條專門針對 LaTeX 部分的新規則:
<dict>
<key>name</key>
<string>LaTeX section entity name</string>
<key>scope</key>
<string>entity.name.section.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
<key>foreground</key>
<string>#A6E22E</string>
</dict>
</dict>
我不知道這裡的順序是否重要,為了安全起見,我會將其放入<array> ... </array>
清單中前“實體名稱”條目。另外,不知道是否可以改變字體大小;如果它能如果要做的話,那麼這肯定就是做這件事的地方。