現在、セクションコマンドは青色になっています(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
概要
\section{...}
Sublime Text がファイルをスタイル設定する方法は、意味論的な意味と実際のレンダリングを分離することです。これは LaTeX に似ています。つまり、非常に単純な例ですが、意図を示すコマンドと実際のレンダリングがあります\textbf{\huge ...}
。
ファイルは.sublime-syntax
添付のみを目的としていますセマンティックドキュメントの各部分に意味を与える ("これはセクションです") 一方、画面上でどのようにレンダリングするか ("これは太字です") を決定する作業はカラー スキーム.tmThemes
ファイルに属します。 (もちろん、実際には物事はそれほどきれいではなく、ファイル内で 2 つが混在しているのが見られます.sublime-syntax
。完璧な世界では、これは起こりません。)
したがって、2 つの選択肢があります。
構文ファイルを調整します。これは、 のすべてのインスタンスを に置き換えて太字のセクションを取得するのと似ています
\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>
デフォルトの内容を見てみると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>
ます前に「エンティティ名」のエントリ。また、フォントサイズを変更できるかどうかはわかりません。できるもしそれが実現できるなら、ここが間違いなくそれを実現する場所となるでしょう。