Я адаптировал ранее опубликованный подход для поддержки нескольких шрифтов в VS Code, а затем преобразовал формулировку задачи в эту форму. В решении используются два «семейства шрифтов»: одно называется «Victor Mono Medium» и является «настоящим» семейством шрифтов, обеспечивая нормальные и италийские стили c и недоступный наклонный стиль; и один с именем «Victor Mono Medium Oblique», обеспечивающий только нормальные и наклонные стили и используемый только для наклонного стиля.
В качестве упрощения я решил пожертвовать возможностью использовать подчеркнутый стиль шрифта. Это приемлемо для моего варианта использования и значительно упрощает решение. Подход заключается в следующем:
- Используя стандартный механизм tokenColorCustomizations, используйте
fontStyle: "italic"
, где требуется курсив, и fontStyle: "underline"
, где требуется наклонный. - Использование «Включить пользовательский * Расширение 1027 * и JS ", предоставьте пользовательский файл CSS.
- В пользовательском файле CSS создайте
@font-face
, который имеет наклонные, но не итальянские стили c. - В пользовательском файле CSS измените стиль на
fontStyle: "underline"
, чтобы использовать наклонную грань шрифта, наклонно и без подчеркивания.
После установки "Включить пользовательские CSS и JS "и следуя его инструкциям, чтобы разрешить использование пользовательского файла CSS, и скопировав файл шрифта VictorMono-MediumOblique.otf в выбранное место, вот соответствующее содержимое моих настроек. json:
...
"editor.fontLigatures": true,
"editor.fontFamily": "'Victor Mono Medium'",
"vscode_custom_css.imports": ["file:///MYPATH/.vscode/style.css"],
"vscode_custom_css.policy": true,
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"name": "Documentation",
"scope": "comment.block.documentation",
"settings": { "fontStyle": "italic" }
},
{
"name": "Comment",
"scope": "comment",
"settings": { "fontStyle": "underline" }
},
]
},
...
и мой стиль. css:
/* Replace underline with oblique */
@font-face {
font-family: 'Victor Mono Medium Oblique';
src: url('file:///MYPATH/VictorMono-MediumOblique.otf');
}
.mtku {
font-family: 'Victor Mono Medium Oblique';
font-style: oblique;
text-decoration: none;
}