Atualmente os comandos da seção são coloridos em azul (usando o tema Monokai). Gostaria de dar mais ênfase aos comandos de seccionamento no código-fonte quando abertos no Sublime Text 3, semelhante ao efeitoilustrado na resposta do Emacs.
Instalei o PackageResourceViewer
plugin e abri LaTeX.sublime-syntax
o recurso. Eu vejo:
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
Mas não sei como proceder.
Responder1
Visão geral
A forma como os arquivos de estilo do Sublime Text separam o significado semântico e a renderização real. Isso é semelhante ao LaTeX: você tem um comando \section{...}
—indicando a intenção—em vez da renderização real, talvez \textbf{\huge ...}
para um exemplo muito simples.
Um .sublime-syntax
arquivo só deve ser anexadosemânticosignificado para partes de um documento ("isto é uma seção"), enquanto o trabalho de decidir como renderizar as coisas ("isto está em negrito") na tela pertence aos .tmThemes
arquivos de esquema de cores. (É claro que na prática as coisas não são tão claras e você verá uma mistura dos dois nos .sublime-syntax
arquivos. Em um mundo perfeito isso não aconteceria.)
Então você tem duas opções:
ajuste o arquivo de sintaxe, de forma análoga a substituir todas as instâncias de
\section{...}
por\textbf{\huge ...}
para obter seções em negrito. Não recomendado, mas falarei sobre como você pode fazer isso aqui.ajustar o arquivo do esquema de cores, de forma análoga a alterar odefiniçãode
\section
para encorajar seções.
Ajuste a sintaxe
Aqui nós simplesmente mudamos as partes relevantes de LaTeX.sublime-syntax
para, por exemplo markup.bold.latex
, (vejaesselink para uma discussão sobre nomes de escopo em Sublime Text). As linhas alteradas são aquelas com comentários # ...
depois delas.
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
(Eu mantive o escopo antigo entity.name.section.latex
caso as coisas dependam dele, mas colocá-lo markup.bold.latex
depois significa que o negrito tem prioridade sobre ele.)
Os resultados podem (irão) variar entre diferentes esquemas de cores, por exemplo, alguns não entendem o que markup.bold
significa. Você mencionou Monokai, a versão padrão não suporta markup.bold
, mas por exemploMonokai estendidoentende faz.
Ajuste o esquema de cores
A outra opção é ajustar o próprio esquema de cores. Os esquemas de cores no Sublime Text são .tmTheme
arquivos, basicamente arquivos xml. Eles têm esse tipo de estrutura:
... (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>
Dando uma olhada no conteúdo do default Monokai.tmTheme
, a parte relevante para nós é esta entrada no 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>
Isto é o que controla o estilo que nosso entity.name.section.latex
escopo obtém. O que podemos fazer é criar uma nova regra direcionada especificamente às seções 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>
Não sei se a ordem é importante aqui, por segurança colocaria isso na <array> ... </array>
listaantesa entrada "Nome da entidade". Além disso, não sei se é possível alterar o tamanho da fonte; Se issopodeser feito, então este seria certamente o lugar para fazê-lo.