目前,部分命令为蓝色(使用 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
例如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>
列表中前“实体名称”条目。另外,我不知道是否可以更改字体大小;如果可以能要做的话,这里肯定是做这件事的最佳地点。