В настоящее время команды секций окрашены в синий цвет (используя тему 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
, но напримерМонокай расширенныйпонимает, делает.
Изменить цветовую схему
Другой вариант — настроить саму цветовую схему. Цветовые схемы в 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>
Если взглянуть на содержимое файла default 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>
список .дозапись "Имя сущности". Также я не знаю, можно ли изменить размер шрифта; если этоможетесли это будет сделано, то это, безусловно, будет подходящим местом для этого.