# @@@ START COPYRIGHT @@@                                                       
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
# @@@ END COPYRIGHT @@@

title_page:
  align: left
  title_font_size: 36
  title_font_color: #3188ac
  subtitle_font_size: 18
#  background_image: cover.png

page:
  layout: portrait
# top,right,bottom,left
  margin: [0.75in, 0.5in, 0.75in, 0.5in]
  size: letter
base:
# font_family: Noto Serif
  font_color: #333333
  font_size: 10
  line_height_length: 17
  line_height: $base_line_height_length / $base_font_size
vertical_rhythm: $base_line_height_length
heading:
  font_color: #3188ac
  font_size: 17
  font_style: bold
  line_height: 1.2
  margin_bottom: $vertical_rhythm
link:
  font_color: #002FA7
outline_list:
  indent: $base_font_size * 1.5
header:
  height: 0.75in
  line_height: 1
  recto_content:
    center: '{document-title}'
  verso_content:
    center: '{document-title}'
footer:
  height: 0.75in
  line_height: 1
  recto_content:
    right: '{chapter-title} | *{page-number}*'
  verso_content:
    left: '*{page-number}* | {chapter-title}'
image:
  align: center
caption:
  align: center
  font_color: #FF0000
  font_size: 10
table:
  even_row_background_color: #f9f9f9
  border_width: 0
code:
  font_family: Courier
  font_size: 10
