在Scribble中更改字体颜色(html后端)

时间:2016-01-19 22:24:46

标签: racket scribble

有没有办法用HTML后端更改scribble中的字体颜色?

(更具体地说,我想在库的手册中放置一个大的红色WARNING标签。)

3 个答案:

答案 0 :(得分:1)

手动创建包含style属性的attributes结构似乎有效:

#lang scribble/base

@(require scribble/core
          scribble/html-properties)

@para[#:style (style #f `(,(attributes '([style . "color:blue;"]))))]{blue text}

答案 1 :(得分:1)

事实证明,您可以直接在scribble中执行此操作,而无需使用后端依赖解决方案。诀窍是使用stylescolor-property

使用elem设置样式as shown here,您可以创建一个colorize函数,用于设置文字的颜色。

(define (colorize #:color c . content)
  (elem #:style (style #f (list (color-property c)))
        content))

然后你可以像这样使用它:

@colorize[#:color "red"]{WARNING}

您还可以提起background-color-property来设置文本的背景。

答案 2 :(得分:0)

正如Alexis所说,您可以使用class与层叠样式表(CSS)配对,如下所示:

<head>
   <link rel="stylesheet" type="text/css" href="mystyle.css">
   <!-- that's to link our styles to the webpage. -->
</head>
<body>
   <!-- some time later... -->
   <p class = "example">test</p> 
   <!-- the rest of the website -->

mystyle.css

.example{ /* select all tags with the "example" class */
     color: #FF0000; /* change font color using hex value */
     background-color: #552222; /* change background color using hex value */
}

现在,如果我们能够使用多个文件,这将是很好的。但是,如果您想将所有内容都放在一个文件中,我们可以在<style>标记中发送相同的信息:

<head>
   <!-- no need to link our styles, since they're embedded in the webpage. -->
</head>
<body>
   <style>
     .example{ /* select all tags with the "example" class */
        color: #FF0000; /* change font color using hex value */
        background-color: #552222; /* change background color using hex value */
     }
   </style>
   <!-- some time later... -->
   <p class = "example">test</p> 
   <!-- the rest of the website -->

还有另一种方法可以嵌入它,但你不应该使用它。永远。这始终是正确的方法。

如果您需要CSS方面的更多内容,请参阅http://www.w3schools.com/css/css_examples.asp