2017-02-07 9 views
1

У меня проблема, когда мои l и 1 выглядят достаточно похожими, чтобы запутать некоторых новичков. Я просмотрел свой код.Как заставить один и тот же шрифт кодового блока на разных платформах в формате .Rmd html?

Я думал, что я мог заставить шрифт остаться одни и те же на всех платформах моего .html вывода, добавив в листе стилей CSS:

code { 
    font-family: "Andale Mono", AndaleMono, monospace; 
} 

Но я сказал, что не увенчались успехом - l и 1 все еще сложно рассказать друг другу.

Есть ли способ принудительно визуализировать код на разных платформах?

+0

Попробуйте добавить 'important' в конце! : 'font-family:« Andale Mono », AndaleMono, monospace! important;' –

+0

Я отредактировал свой комментарий. Вы можете проверить онлайн, какие шрифты доступны на всех основных платформах (Win, OSX, Linux). –

+0

Не удается добиться успеха с помощью локальных системных шрифтов. Вы не можете гарантировать, что определенный шрифт существует на всех платформах. Единственное решение - использовать веб-шрифты: https://fonts.google.com. Если ваши читатели не имеют доступа к Интернету, вы можете загружать веб-шрифты и вставлять их в HTML (когда 'self_contained = TRUE', это должно быть автоматически, но Pandoc будет загружать шрифты каждый раз, когда вы перекомпилируете, поэтому я по-прежнему рекомендую вам загружать шрифты самостоятельно и использовать CSS). –

ответ

1

Вы можете использовать веб-шрифты, такие как Google fonts. Например, возьмите Source Code Pro. Google покажет вам, чтобы добавить это к <head> области вашего HTML-документа:

<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet"> 

и применить правило CSS для <code> элементов:

code { 
    font-family: 'Source Code Pro', monospace; 
} 

Для R Markdown документа, вы можете добавить вещи <head> через includes option. Например, сохраните <link> выше код в файле с именем google-font.html под одной и той же директории, что и файл RMD, сохранить CSS в google-font.css, и в YAML из RMD:

--- 
title: Your Document Title 
output: 
    html_document: 
    includes: 
     in_header: "google-font.html" 
    css: "google-font.css" 
--- 
+0

он работает! спасибо, ниндзя. подумайте, что это достаточно распространено, чтобы оправдать FR, чтобы knitr справлялся с этим под капотом? – MichaelChirico

+0

Общая документация rmarkdown уже существует (такая же для шрифтов Google), и я думаю, что проблема в том, что многие пользователи не знают, как подключить точки (шрифты -> CSS -> R Markdown -> HTML). Вы можете внести краткую статью на веб-сайт документации rmarkdown! –