asciidoctor-pdf 1.5.0.beta.8 → 1.5.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +49 -0
  3. data/LICENSE.adoc +1 -1
  4. data/NOTICE.adoc +1 -1
  5. data/README.adoc +43 -47
  6. data/asciidoctor-pdf.gemspec +5 -1
  7. data/bin/asciidoctor-pdf-optimize +1 -1
  8. data/data/themes/base-theme.yml +4 -3
  9. data/data/themes/default-theme.yml +10 -5
  10. data/docs/theming-guide.adoc +286 -22
  11. data/lib/asciidoctor-pdf.rb +1 -0
  12. data/lib/asciidoctor-pdf/converter.rb +1 -0
  13. data/lib/asciidoctor-pdf/version.rb +1 -0
  14. data/lib/asciidoctor/pdf.rb +13 -2
  15. data/lib/asciidoctor/pdf/converter.rb +3962 -3955
  16. data/lib/asciidoctor/pdf/ext.rb +9 -0
  17. data/lib/asciidoctor/pdf/ext/asciidoctor.rb +1 -0
  18. data/lib/asciidoctor/pdf/ext/asciidoctor/abstract_block.rb +1 -0
  19. data/lib/asciidoctor/pdf/ext/asciidoctor/abstract_node.rb +1 -0
  20. data/lib/asciidoctor/pdf/ext/asciidoctor/document.rb +1 -0
  21. data/lib/asciidoctor/pdf/ext/asciidoctor/image.rb +18 -16
  22. data/lib/asciidoctor/pdf/ext/asciidoctor/list.rb +3 -2
  23. data/lib/asciidoctor/pdf/ext/asciidoctor/list_item.rb +2 -1
  24. data/lib/asciidoctor/pdf/ext/asciidoctor/logging_shim.rb +3 -4
  25. data/lib/asciidoctor/pdf/ext/asciidoctor/section.rb +8 -6
  26. data/lib/asciidoctor/pdf/ext/core.rb +2 -0
  27. data/lib/asciidoctor/pdf/ext/core/array.rb +1 -0
  28. data/lib/asciidoctor/pdf/ext/core/hash.rb +1 -0
  29. data/lib/asciidoctor/pdf/ext/core/numeric.rb +4 -3
  30. data/lib/asciidoctor/pdf/ext/core/object.rb +1 -0
  31. data/lib/asciidoctor/pdf/ext/core/quantifiable_stdout.rb +8 -1
  32. data/lib/asciidoctor/pdf/ext/core/regexp.rb +1 -0
  33. data/lib/asciidoctor/pdf/ext/core/string.rb +6 -7
  34. data/lib/asciidoctor/pdf/ext/pdf-core.rb +1 -0
  35. data/lib/asciidoctor/pdf/ext/pdf-core/page.rb +3 -4
  36. data/lib/asciidoctor/pdf/ext/pdf-core/pdf_object.rb +2 -1
  37. data/lib/asciidoctor/pdf/ext/prawn-svg.rb +1 -0
  38. data/lib/asciidoctor/pdf/ext/prawn-svg/interface.rb +11 -8
  39. data/lib/asciidoctor/pdf/ext/prawn-table.rb +2 -1
  40. data/lib/asciidoctor/pdf/ext/prawn-table/cell.rb +9 -10
  41. data/lib/asciidoctor/pdf/ext/prawn-table/cell/asciidoc.rb +62 -57
  42. data/lib/asciidoctor/pdf/ext/prawn-table/cell/text.rb +5 -3
  43. data/lib/asciidoctor/pdf/ext/prawn-templates.rb +1 -0
  44. data/lib/asciidoctor/pdf/ext/prawn.rb +1 -0
  45. data/lib/asciidoctor/pdf/ext/prawn/coderay_encoder.rb +73 -72
  46. data/lib/asciidoctor/pdf/ext/prawn/extensions.rb +814 -818
  47. data/lib/asciidoctor/pdf/ext/prawn/font/afm.rb +4 -3
  48. data/lib/asciidoctor/pdf/ext/prawn/formatted_text/box.rb +2 -1
  49. data/lib/asciidoctor/pdf/ext/prawn/formatted_text/fragment.rb +7 -2
  50. data/lib/asciidoctor/pdf/ext/prawn/images.rb +45 -44
  51. data/lib/asciidoctor/pdf/ext/pygments.rb +34 -0
  52. data/lib/asciidoctor/pdf/ext/rouge.rb +1 -1
  53. data/lib/asciidoctor/pdf/ext/rouge/formatters/prawn.rb +181 -149
  54. data/lib/asciidoctor/pdf/ext/rouge/themes/asciidoctor_pdf_default.rb +1 -0
  55. data/lib/asciidoctor/pdf/formatted_text.rb +2 -0
  56. data/lib/asciidoctor/pdf/formatted_text/formatter.rb +35 -34
  57. data/lib/asciidoctor/pdf/formatted_text/fragment_position_renderer.rb +8 -7
  58. data/lib/asciidoctor/pdf/formatted_text/inline_destination_marker.rb +13 -14
  59. data/lib/asciidoctor/pdf/formatted_text/inline_image_arranger.rb +112 -133
  60. data/lib/asciidoctor/pdf/formatted_text/inline_image_renderer.rb +43 -41
  61. data/lib/asciidoctor/pdf/formatted_text/inline_text_aligner.rb +15 -14
  62. data/lib/asciidoctor/pdf/formatted_text/source_wrap.rb +43 -0
  63. data/lib/asciidoctor/pdf/formatted_text/text_background_and_border_renderer.rb +46 -37
  64. data/lib/asciidoctor/pdf/formatted_text/transform.rb +371 -352
  65. data/lib/asciidoctor/pdf/index_catalog.rb +99 -95
  66. data/lib/asciidoctor/pdf/measurements.rb +51 -48
  67. data/lib/asciidoctor/pdf/optimizer.rb +34 -31
  68. data/lib/asciidoctor/pdf/pdfmark.rb +34 -33
  69. data/lib/asciidoctor/pdf/roman_numeral.rb +80 -79
  70. data/lib/asciidoctor/pdf/sanitizer.rb +38 -37
  71. data/lib/asciidoctor/pdf/temporary_path.rb +10 -9
  72. data/lib/asciidoctor/pdf/text_transformer.rb +101 -100
  73. data/lib/asciidoctor/pdf/theme_loader.rb +258 -256
  74. data/lib/asciidoctor/pdf/version.rb +5 -4
  75. metadata +55 -6
  76. data/lib/asciidoctor/pdf/ext/rouge/themes/bw.rb +0 -39
  77. data/lib/asciidoctor/pdf/ext/ttfunk.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4971b7ad193cc6b81346ac764010d20b46bbfdd66986e601938fcca2cd3929ba
4
- data.tar.gz: 86076a5fcb2bc9f6fbb54b8479f04be26a576b207be08ea5b504013dec48ef72
3
+ metadata.gz: 977d0e8db99f3145ff750ee38a5617ff80ee96e10f20daf0382b18b9f69eaca0
4
+ data.tar.gz: aa3c20fe2553679f0d59014a306f6d327ba7af0e7700206cb119ee0b7d228e6e
5
5
  SHA512:
6
- metadata.gz: 940b1a41aa08c0950fb9e609f1ab5cf5c960bee9535cbd5710306b5c7a20d30794ec41fa2ea4b0a78a9c11f5d53262e6bac25417777f6a96e2fded72dd5d121c
7
- data.tar.gz: 3017ce6726c7cae78b59394fe12be84587e691375c9e11f196384d42b8a254d2f10201e110503af1447eb456c0e070d90e7d1c0f7099e4e87057d2a4c69606ff
6
+ metadata.gz: e4a3e16fb9e8b6a0b6118101348efeecbe0a0e1141ec6b7be58691c6f99057cf3a39cee200391a4fac6050b967849ce71942f309665a0c8ab9d52c7e7bdc69f2
7
+ data.tar.gz: 2e4fedb49b6a0d30b2e6c6cc353d1b69b6aa2cca0688daeda980bdf462dfc387d367e8b8d1402a0f89ff0ca8381ec8c2f1d2e2ef6432b2d20f04a65f9402280d
@@ -5,6 +5,55 @@
5
5
  This document provides a high-level view of the changes to the {project-name} by release.
6
6
  For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
7
7
 
8
+ == 1.5.0.rc.1 (2020-01-06) - @mojavelinux
9
+
10
+ * support data URI for SVG image (#1423)
11
+ * account for border offset in width of fragment (#1264)
12
+ * ignore case when sorting index terms (#1405)
13
+ * partition section title (title and subtitle) if `title-separator` document attribute or `separator` block attribute is set (#623)
14
+ * allow page numbering to start after first page of body by assigning an integer to the page_numbering_start_at theme key (#560)
15
+ * allow running content to start after first page of body by assigning an integer to the running_content_start_at theme key (#1455)
16
+ * allow output file to be written to stdout (#1411)
17
+ * implement line highlighting for source blocks when using Rouge as source highlighter (#681)
18
+ * implement line highlighting for source blocks when using Pygments as source highlighter (#1444)
19
+ * indent wrapped lines in source block beyond linenum gutter (#504)
20
+ * don't mangle source block if linenums are enabled and language is not set
21
+ * don't print line number if source block is empty
22
+ * don't apply recto margin to title page if cover is absent unless value of front-cover-image attribute is `~` (#793)
23
+ * expose theme as property on converter
24
+ * add support for unbreakable option on open blocks (#1407) *@mogztter*
25
+ * don't add mailto: prefix to revealed mailto URI when hide-uri-scheme is set (#920)
26
+ * allow theme to set base text decoration width (#1414)
27
+ * allow theme to set font-kerning per category (#1431)
28
+ * allow theme to specify background image for running content (#356)
29
+ * allow theme to specify border for admonition block (#444)
30
+ * allow theme to specify background color for admonition block (#444)
31
+ * allow theme to specify background color and full border for quote and verse blocks (#1309)
32
+ * allow text alignment roles to be used to control alignment of discrete heading
33
+ * allow theme to configure image caption align(ment) to inherit from image align(ment) (#1459)
34
+ * allow theme to confine width of image caption to width of image (#1291)
35
+ * don't apply border to block if border width is not set (or nil)
36
+ * use font color from pygments style for unhighlighted text (#1441)
37
+ * render stem block as raw literal block
38
+ * render stem phrase as monospaced text
39
+ * honor percentage unit on width attribute value on image (#1402)
40
+ * fix crash when capitalizing text that does not contain markup
41
+ * allow custom inline role to control text transform (#1379)
42
+ * convert link macro enclosed in smart quotes
43
+ * allow inline image to be fit within line using fit=line (#711)
44
+ * fix fit=cover for background image when aspect ratio of image is taller than page (#1430)
45
+ * compute and apply line metrics for cells in table head row (#1436)
46
+ * compute and apply line metrics correctly for cells in table body and foot rows (#1436)
47
+ * allow section to override toclevels for self and children using toclevels attribute on section (#734)
48
+ * allocate space for pagenum in toc consistently (#1434)
49
+ * fall back to default theme instead of crashing if specified theme cannot be resolved
50
+ * allow font color to be set on nested span in passthrough content
51
+ * move width and align attributes from font tag to width and align style properties on span tag
52
+ * compute table cell padding correctly when specified as a 4 element array
53
+ * preserve isolated callout on final line of source block
54
+ * fix missing require in asciidoctor-pdf-optimize script (#1467)
55
+ * lock version of ttfunk to 1.5.x
56
+
8
57
  == 1.5.0.beta.8 (2019-11-23) - @mojavelinux
9
58
 
10
59
  * automatically hyphenate prose using the text-hyphen gem if the `hyphens` document attribute is set (#20)
@@ -1,6 +1,6 @@
1
1
  .The MIT License
2
2
  ....
3
- Copyright (C) 2014-2019 OpenDevise Inc. and the Asciidoctor Project
3
+ Copyright (C) 2014-2020 OpenDevise Inc. and the Asciidoctor Project
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,7 +1,7 @@
1
1
  = Asciidoctor PDF
2
2
  OpenDevise Inc.; Asciidoctor Project
3
3
 
4
- Copyright (C) 2014-2019 OpenDevise Inc. and the Asciidoctor Project.
4
+ Copyright (C) 2014-2020 OpenDevise Inc. and the Asciidoctor Project.
5
5
 
6
6
  Please visit the Asciidoctor project site for more information:
7
7
 
@@ -1,6 +1,6 @@
1
1
  = Asciidoctor PDF: A native PDF converter for AsciiDoc
2
2
  Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>
3
- v1.5.0.beta.8, 2019-11-23
3
+ v1.5.0.rc.1, 2020-01-06
4
4
  // Settings:
5
5
  :experimental:
6
6
  :idprefix:
@@ -23,7 +23,7 @@ endif::[]
23
23
  :project-name: Asciidoctor PDF
24
24
  :project-handle: asciidoctor-pdf
25
25
  // Variables:
26
- :release-version: 1.5.0.beta.8
26
+ :release-version: 1.5.0.rc.1
27
27
  // URIs:
28
28
  :url-asciidoctor: http://asciidoctor.org
29
29
  :url-gem: http://rubygems.org/gems/asciidoctor-pdf
@@ -45,63 +45,41 @@ image:https://img.shields.io/gem/v/asciidoctor-pdf.svg[Latest Release, link={url
45
45
  image:https://img.shields.io/badge/license-MIT-blue.svg[MIT License, link=#copyright]
46
46
  endif::[]
47
47
 
48
- ifdef::env-site[]
49
48
  Asciidoctor PDF is a native PDF converter for AsciiDoc.
50
49
  It bypasses the requirement to generate an interim format such as DocBook, Apache FO, or LaTeX.
51
- Instead, you can use it to convert directly from AsciiDoc to PDF.
50
+ Instead, you can use this extension to convert directly from AsciiDoc to PDF.
52
51
  Its aim is to take the pain out of creating PDF documents from AsciiDoc.
53
- endif::[]
54
- ifndef::env-site[]
55
- _Lo and behold_, a native PDF converter for AsciiDoc built with {url-asciidoctor}[Asciidoctor] and {url-prawn}[Prawn]! +
56
- _No more middleman._ +
57
- _No more DocBook toolchain._ +
58
- It's AsciiDoc straight to PDF!
59
52
 
60
53
  toc::[]
61
54
 
62
- == Prawn, the Majestic PDF Generator
63
-
64
- {url-project}[{project-name}] is made possible by an amazing Ruby gem named Prawn.
65
- And what a gem it is!
66
-
67
- {url-prawn}[Prawn] is a nimble PDF writer for Ruby.
68
- More important, it's a hackable platform that offers both high level APIs for the most common needs and low level APIs for bending the document model to accommodate special circumstances.
69
-
70
- With Prawn, you can write text, draw lines and shapes and place images _anywhere_ on the page and add as much color as you like.
71
- In addition, it brings a fluent API and aggressive code re-use to the printable document space.
72
-
73
- Here's an example that demonstrates how to use Prawn to create a basic PDF document.
74
-
75
- .Create a basic PDF document using Prawn
76
- [source,ruby]
77
- ----
78
- require 'prawn'
55
+ == Overview
79
56
 
80
- Prawn::Document.generate 'output.pdf' do
81
- text 'Hello, PDF creation!'
82
- end
83
- ----
57
+ {project-name} is an Asciidoctor extension that converts an AsciiDoc document directly to a PDF document.
58
+ The style and layout of the PDF is controlled by a specialized theme file.
59
+ To the degree possible, this converter supports all the features of AsciiDoc supported by the built-in converters, but there are limits to what Prawn supports and what is possible with PDF in general.
84
60
 
85
- It's that easy.
86
- And that's just the beginning.
87
- Skip ahead to <<getting-started,Getting started>> to start putting it use.
61
+ Under the covers, {project-name} uses the Prawn gem (and its extensions, such as prawn-svg and prawn-table) to generate the PDF document.
62
+ {url-prawn}[Prawn] is a general purpose PDF generator for Ruby that features high-level APIs for common needs like setting up the page and inserting images and low-level APIs for positioning and rendering text and graphics.
88
63
 
89
- Prawn is the _killer library_ for PDF generation we've needed to close this critical gap in Asciidoctor.
90
- It absolutely takes the pain out of creating printable documents.
91
- Picking up from there, {project-name} takes the pain out of creating PDF documents _from AsciiDoc_.
92
- endif::[]
64
+ Prawn takes the pain out of creating (basic) PDF documents.
65
+ Likewise, {project-name} takes the pain out of creating PDF documents _directly from AsciiDoc_.
66
+ Skip ahead to <<getting-started,Getting started>> to start putting {project-name} use.
67
+ But don't miss the <<Highlights>> and <<Known Limitations>> sections to understand what's possible.
93
68
 
94
69
  == Highlights
95
70
 
96
71
  * Direct AsciiDoc to PDF conversion
97
72
  * <<docs/theming-guide.adoc#,Configuration-driven theme (style and layout)>>
98
- * SVG support
73
+ * Full SVG support
99
74
  * PDF document outline (i.e., bookmarks)
75
+ * Title page
100
76
  * Table of contents page(s)
101
77
  * Document metadata (title, authors, subject, keywords, etc)
102
78
  * Internal cross reference links
103
79
  * Syntax highlighting with Rouge, Pygments, or CodeRay
80
+ * Page background color or page background image with named scaling
104
81
  * Page numbering
82
+ * Double-sided (aka prepress) printing mode (i.e., margins alternate on recto and verso pages)
105
83
  * Customizable running content (header and footer)
106
84
  * “Keep together” blocks (i.e., page breaks avoided in certain block content)
107
85
  * Orphaned section titles avoided
@@ -109,7 +87,22 @@ endif::[]
109
87
  * Table border settings honored
110
88
  * Font-based icons
111
89
  * Custom (TTF) fonts
112
- * Double-sided printing mode (margins alternate on recto and verso pages)
90
+ * Auto-generated index
91
+ * Automatic hyphenation (when enabled)
92
+ * Compression / optimization of output file
93
+
94
+ == Known Limitations
95
+
96
+ * Footnotes are always rendered as endnotes (at end of chapter for books; at end of document for all other doctypes)
97
+ * Table cells that exceed height of a single page will be truncated (see https://github.com/prawnpdf/prawn-table/issues/41[prawn-table#41])
98
+ * Columns cannot be assigned a 0% width (or a width less than the width of a single character); in the same vein, a column cannot be set to autowidth if width of all other columns meets or exceeds 100%; the result is that the converter with throw a Prawn::Errors::CannotFit error
99
+ * An inline image in a table cell will not force the column wider if the width of the image exceeds the width of the column; either reduce the image width using `pdfwidth` or increase the width of the column using `cols`; another solution is to convert the cell to an AsciiDoc table cell (see https://github.com/asciidoctor/asciidoctor-pdf/issues/830)
100
+ * Must use development version of prawn-table for autowidth to work on table head row
101
+ * Must use development version of prawn for error to include font name when requested font style is missing
102
+ * Must use Ruby >= 2.4 for natural cross references to work with non-ASCII titles
103
+ * AsciiDoc table cell leaves padding below last block (due to lack of margin collapsing)
104
+ * Prawn does not support double-wide box drawing glyphs correctly, so box drawings aren't aligned properly in verbatim blocks (see https://github.com/prawnpdf/prawn/issues/1002[prawn#1002]
105
+ * Orphan / widow support is limited; a page break can occur between a section title and its section content, a table caption and the caption, etc.; use a manual page break to avoid
113
106
 
114
107
  == Prerequisites
115
108
 
@@ -390,7 +383,10 @@ To find a complete list of available icons, consult the https://github.com/jesse
390
383
 
391
384
  == Image Paths
392
385
 
393
- Relative images paths in the document are resolved relative to the value of the `imagesdir` attribute (at the time the converter runs).
386
+ Images are resolved at the time the converter runs.
387
+ That means they need to be located where the converter can find them.
388
+
389
+ Relative images paths in the document are resolved relative to the value of the `imagesdir` attribute.
394
390
  This is effectively the same as how the built-in HTML converter works when the `data-uri` attribute is set.
395
391
  The `imagesdir` is blank by default, which means relative images paths are resolved relative to the input document.
396
392
  Relative images paths in the theme are resolved relative to the value of the `pdf-themesdir` attribute (which defaults to the directory of the theme file).
@@ -442,6 +438,7 @@ _Only applies to block images._
442
438
 
443
439
  |width
444
440
  |The unitless display width of the image (assumed to be pixels), typically matching the intrinsic width of the image.
441
+ If the value ends in % (not recommended), it's assumed to be the percentage of the available content area width.
445
442
  If the width exceeds the content area width, the image is scaled down to the content area width.
446
443
 
447
444
  |_unspecified_
@@ -456,10 +453,7 @@ If you want a block image to align to the boundaries of the page (not the conten
456
453
  This is most useful when using vw units because you can make the image cover the entire width of the page.
457
454
 
458
455
  Images in running content and page background images also support the `fit` attribute (when specified using the image macro).
459
- If the value of this attribute is `contain`, the image size is increased or decreased to fill the available space while preserving its aspect ratio.
460
- If the value of this attribute is `scaled-down`, the image size is first resolved in the normal way, then scaled down further to fit within the available space, if necessary.
461
-
462
- If sizing information is not specified for a page background image, the image is automatically scaled to fit the bounds of the page (i.e., `fit=contain`).
456
+ See <<Background Image Sizing>> for details.
463
457
 
464
458
  === Using the pdfwidth Attribute
465
459
 
@@ -499,6 +493,8 @@ Inline images can be sized in much the same way as block images (using the pdfwi
499
493
  * The image will be scaled down, if necessary, to fit the width and height of the content area.
500
494
  * Inline images do not currently support a default width controlled from the theme.
501
495
 
496
+ To confine the inline image to the height of the line while preserving the aspect ratio, use the attribute `fit=line`.
497
+
502
498
  If the resolved height of the image is less than or equal to 1.5 times the line height, the image won't disrupt the line height and is centered vertically in the line.
503
499
  This is done to maximize the use of available space.
504
500
  Once the resolved height exceeds this amount, the height of the line is increased (by increasing the font size of the invisible placeholder text) to accommodate the image.
@@ -513,7 +509,7 @@ It's value must be specified as a single keyword, chosen from the table below.
513
509
  The starting size of the image is determined by the explicit width, if specified, or the implicit width.
514
510
  The height is always derived from the width while respecting the implicit aspect ratio of the image.
515
511
  The available space for a background image (i.e., the canvas) is the page.
516
- If the `fit` attribute is not specified, it defaults to `contain`.
512
+ If the `fit` attribute is not specified, it defaults to `contain` (i.e., the image is automatically scaled to fit the bounds of the page).
517
513
 
518
514
  [cols="1s,3"]
519
515
  |===
@@ -1005,7 +1001,7 @@ To help develop {project-name}, or to simply use the development version, refer
1005
1001
 
1006
1002
  == Copyright
1007
1003
 
1008
- Copyright (C) 2014-2019 OpenDevise Inc. and the Asciidoctor Project.
1004
+ Copyright (C) 2014-2020 OpenDevise Inc. and the Asciidoctor Project.
1009
1005
  Free use of this software is granted under the terms of the MIT License.
1010
1006
 
1011
1007
  For the full text of the license, see the <<LICENSE.adoc#,LICENSE>> file.
@@ -35,6 +35,8 @@ Gem::Specification.new do |s|
35
35
 
36
36
  s.add_runtime_dependency 'asciidoctor', '>= 1.5.3', '< 3.0.0'
37
37
  s.add_runtime_dependency 'prawn', '~> 2.2.0'
38
+ # NOTE ttfunk 1.6 generates TT instructions ghostscript cannot process, so lock the version of ttfunk
39
+ s.add_runtime_dependency 'ttfunk', ['~> 1.5.0'], ['>= 1.5.1']
38
40
  s.add_runtime_dependency 'prawn-table', '~> 0.2.0'
39
41
  s.add_runtime_dependency 'prawn-templates', '~> 0.1.0'
40
42
  s.add_runtime_dependency 'prawn-svg', '~> 0.30.0'
@@ -51,7 +53,9 @@ Gem::Specification.new do |s|
51
53
  s.add_development_dependency 'rspec', '~> 3.9.0'
52
54
  s.add_development_dependency 'pdf-inspector', '~> 1.3.0'
53
55
  # Asciidoctor PDF supports Rouge >= 2 (verified in CI build using 2.0.0)
54
- s.add_development_dependency 'rouge', '~> 3.11.0'
56
+ s.add_development_dependency 'rouge', '~> 3.14.0'
57
+ s.add_development_dependency 'rubocop', '~> 0.78.0'
58
+ s.add_development_dependency 'rubocop-rspec', '~> 1.37.0'
55
59
  s.add_development_dependency 'coderay', '~> 1.1.0'
56
60
  s.add_development_dependency 'chunky_png', '~> 1.3.0'
57
61
  end
@@ -5,7 +5,7 @@ optimizer = File.absolute_path '../lib/asciidoctor/pdf/optimizer.rb', __dir__
5
5
  if File.exist? optimizer
6
6
  require optimizer
7
7
  else
8
- require 'asciidoctor-pdf/optimizer'
8
+ require 'asciidoctor/pdf/optimizer'
9
9
  end
10
10
 
11
11
  args = ARGV.dup
@@ -25,13 +25,14 @@ role_line-through_text_decoration: line-through
25
25
  role_underline_text_decoration: underline
26
26
  role_big_font_size: 14
27
27
  role_small_font_size: 10
28
+ role_subtitle_font_size: 0.8em
28
29
  button_content: '[%s]'
29
30
  button_font_family: Courier
30
31
  button_font_style: bold
31
32
  key_font_family: Courier
32
33
  key_font_style: italic
33
34
  mark_background_color: ffff00
34
- mark_border_offset: 0.5
35
+ mark_border_offset: 1
35
36
  link_font_color: '0000EE'
36
37
  literal_font_family: Courier
37
38
  heading_font_style: bold
@@ -74,10 +75,10 @@ admonition_padding: [0, 12, 0, 12]
74
75
  admonition_label_font_style: bold
75
76
  admonition_label_text_transform: uppercase
76
77
  blockquote_border_color: 'EEEEEE'
77
- blockquote_border_width: 4
78
+ blockquote_border_left_width: 4
78
79
  blockquote_padding: [6, 12, -6, 14]
79
80
  verse_border_color: 'EEEEEE'
80
- verse_border_width: 4
81
+ verse_border_left_width: 4
81
82
  verse_padding: [6, 12, -6, 14]
82
83
  code_font_family: Courier
83
84
  code_font_size: 10.8
@@ -61,6 +61,9 @@ role:
61
61
  font_size: $base_font_size_large
62
62
  small:
63
63
  font_size: $base_font_size_small
64
+ subtitle:
65
+ font_size: 0.8em
66
+ font_color: 999999
64
67
  # FIXME vertical_rhythm is weird; we should think in terms of ems
65
68
  #vertical_rhythm: $base_line_height_length * 2 / 3
66
69
  # correct line height for Noto Serif metrics (comes with built-in line height)
@@ -80,14 +83,14 @@ button:
80
83
  key:
81
84
  background_color: f5f5f5
82
85
  border_color: cccccc
83
- border_offset: 1.5
86
+ border_offset: 2
84
87
  border_radius: 2
85
- border_width: 0.375
88
+ border_width: 0.5
86
89
  font_family: $literal_font_family
87
90
  separator: "\u202f+\u202f"
88
91
  mark:
89
92
  background_color: ffff00
90
- border_offset: 0.5
93
+ border_offset: 1
91
94
  menu:
92
95
  caret_content: " <font size=\"1.15em\"><color rgb=\"b12146\">\u203a</color></font> "
93
96
  heading:
@@ -170,15 +173,17 @@ admonition:
170
173
  blockquote:
171
174
  font_size: $base_font_size_large
172
175
  border_color: $base_border_color
173
- border_width: 5
176
+ border_width: 0
177
+ border_left_width: 5
174
178
  # FIXME disable negative padding bottom once margin collapsing is implemented
175
- padding: [0, $horizontal_rhythm, $block_margin_bottom * -0.75, $horizontal_rhythm + $blockquote_border_width / 2]
179
+ padding: [0, $horizontal_rhythm, $block_margin_bottom * -0.75, $horizontal_rhythm + $blockquote_border_left_width / 2]
176
180
  cite_font_size: $base_font_size_small
177
181
  cite_font_color: 999999
178
182
  verse:
179
183
  font_size: $blockquote_font_size
180
184
  border_color: $blockquote_border_color
181
185
  border_width: $blockquote_border_width
186
+ border_left_width: $blockquote_border_left_width
182
187
  padding: $blockquote_padding
183
188
  cite_font_size: $blockquote_cite_font_size
184
189
  cite_font_color: $blockquote_cite_font_color
@@ -1030,13 +1030,12 @@ This role can be used as follows:
1030
1030
  == [.heading-code]`SELECT` clause
1031
1031
  ----
1032
1032
 
1033
- The converter provides several predefined roles.
1033
+ The converter provides several predefined roles, which can can all be redefined.
1034
1034
  The `big` and `small` roles map the font size to the $base-font-size-large and $base-font-size-small values, respectively.
1035
- These two roles can be redefined.
1036
1035
  The `underline` and `line-through` roles add the underline and strikethrough decorations, respectively.
1037
- These two roles _can't_ be redefined.
1036
+ The `subtitle` role is used to configure the font properties of the subtitle of a section title.
1038
1037
  The color roles (e.g., `blue`), which you may be familiar with from the HTML converter, are not mapped by default.
1039
- You'll need to define these in your theme if you'd like to make use of them when converting to PDF.
1038
+ You'll need to define these color roles in your theme if you'd like to make use of them when converting to PDF.
1040
1039
 
1041
1040
  [cols="3,4,5l"]
1042
1041
  |===
@@ -1213,7 +1212,7 @@ See <<Title Page>> for details.
1213
1212
  size: Letter
1214
1213
 
1215
1214
  |numbering-start-at^[5]^
1216
- |title {vbar} toc {vbar} body +
1215
+ |title {vbar} toc {vbar} body {vbar} Integer +
1217
1216
  (default: body)
1218
1217
  |page:
1219
1218
  numbering-start-at: toc
@@ -1230,8 +1229,11 @@ To disable the image, use the value `none`.
1230
1229
  . Target may be an absolute path or a path relative to the value of the `pdf-themesdir` attribute.
1231
1230
  . The margins for `recto` (right-hand, odd-numbered) and `verso` (left-hand, even-numbered) pages are calculated automatically from the margin-inner and margin-outer values.
1232
1231
  These margins and used when the value `prepress` is assigned to the `media` document attribute.
1232
+ If no cover is specified, the recto margin is not applied to the title page.
1233
+ To apply the recto margin to the title page, but not include a cover, assign the value `~` to the `front-cover-image` attribute.
1233
1234
  . The `toc` value only applies if the toc is in the default location (before the first page of the body).
1234
1235
  If the toc macro is used to position the toc, the start-at behavior is the same as if the toc is not enabled.
1236
+ If value is an integer, page numbering will start at the specified page of the body (i.e., 1 is first page, 2 is second page, etc.)
1235
1237
 
1236
1238
  [#keys-base]
1237
1239
  === Base
@@ -1284,7 +1286,7 @@ NOTE: While it's common to define additional keys in this category (e.g., `base-
1284
1286
  font-family: Noto Serif
1285
1287
 
1286
1288
  |font-kerning
1287
- |normal {vbar} default +
1289
+ |normal {vbar} none +
1288
1290
  (default: normal)
1289
1291
  |base:
1290
1292
  font-kerning: none
@@ -1338,6 +1340,12 @@ NOTE: While it's common to define additional keys in this category (e.g., `base-
1338
1340
  line-height: >
1339
1341
  $base-line-height-length /
1340
1342
  $base-font-size
1343
+
1344
+ |text-decoration-width
1345
+ |<<values,Number>> +
1346
+ (default: 1)
1347
+ |base:
1348
+ text-decoration-width: 0.5
1341
1349
  |===
1342
1350
 
1343
1351
  . The `text-transform` key cannot be set globally.
@@ -1518,6 +1526,12 @@ The keys in this category control the style of most headings, including part tit
1518
1526
  |heading:
1519
1527
  font-family: Noto Serif
1520
1528
 
1529
+ |font-kerning
1530
+ |normal {vbar} none +
1531
+ (default: _inherit_)
1532
+ |heading:
1533
+ font-kerning: none
1534
+
1521
1535
  // NOTE: heading-font-size is overridden by h<n>-font-size in base theme
1522
1536
  //|font-size
1523
1537
  //|<<values,Number>> +
@@ -1626,6 +1640,12 @@ The keys in this category control the style of most headings, including part tit
1626
1640
  |heading:
1627
1641
  h4-font-family: Roboto
1628
1642
 
1643
+ |font-kerning
1644
+ |normal {vbar} none +
1645
+ (default: $heading-font-kerning)
1646
+ |heading:
1647
+ h3-font-kerning: none
1648
+
1629
1649
  |font-size^[1]^
1630
1650
  |<<values,Number>> +
1631
1651
  (default: <1>=24; <2>=18; <3>=16; <4>=14; <5>=12; <6>=10)
@@ -1736,6 +1756,12 @@ TIP: The title page can be disabled for the book doctype by setting the `notitle
1736
1756
  |title-page:
1737
1757
  font-family: Noto Serif
1738
1758
 
1759
+ |font-kerning
1760
+ |normal {vbar} none +
1761
+ (default: _inherit_)
1762
+ |title-page:
1763
+ font-kerning: none
1764
+
1739
1765
  |font-size
1740
1766
  |<<values,Number>> +
1741
1767
  (default: _inherit_)
@@ -1806,6 +1832,13 @@ TIP: The title page can be disabled for the book doctype by setting the `notitle
1806
1832
  title:
1807
1833
  font-family: Noto Serif
1808
1834
 
1835
+ |font-kerning
1836
+ |normal {vbar} none +
1837
+ (default: _inherit_)
1838
+ |title-page:
1839
+ title:
1840
+ font-kerning: none
1841
+
1809
1842
  |font-size
1810
1843
  |<<values,Number>> +
1811
1844
  (default: 18)
@@ -1878,6 +1911,13 @@ TIP: The title page can be disabled for the book doctype by setting the `notitle
1878
1911
  subtitle:
1879
1912
  font-family: Noto Serif
1880
1913
 
1914
+ |font-kerning
1915
+ |normal {vbar} none +
1916
+ (default: _inherit_)
1917
+ |title-page:
1918
+ subtitle:
1919
+ font-kerning: none
1920
+
1881
1921
  |font-size
1882
1922
  |<<values,Number>> +
1883
1923
  (default: 14)
@@ -1961,6 +2001,13 @@ TIP: The title page can be disabled for the book doctype by setting the `notitle
1961
2001
  authors:
1962
2002
  font-family: Noto Serif
1963
2003
 
2004
+ |font-kerning
2005
+ |normal {vbar} none +
2006
+ (default: _inherit_)
2007
+ |title-page:
2008
+ authors:
2009
+ font-kerning: none
2010
+
1964
2011
  |font-size
1965
2012
  |<<values,Number>> +
1966
2013
  (default: _inherit_)
@@ -2026,6 +2073,13 @@ TIP: The title page can be disabled for the book doctype by setting the `notitle
2026
2073
  revision:
2027
2074
  font-family: Noto Serif
2028
2075
 
2076
+ |font-kerning
2077
+ |normal {vbar} none +
2078
+ (default: _inherit_)
2079
+ |title-page:
2080
+ revision:
2081
+ font-kerning: none
2082
+
2029
2083
  |font-size
2030
2084
  |<<values,Number>> +
2031
2085
  (default: _inherit_)
@@ -2169,7 +2223,7 @@ In addition to the generic caption category, each of these keys can be set on th
2169
2223
 
2170
2224
  3+|[#key-prefix-caption]*Key Prefix:* <<key-prefix-caption,caption>>
2171
2225
 
2172
- |align
2226
+ |align^[1]^
2173
2227
  |<<text-alignments,Text alignment>> +
2174
2228
  (default: left)
2175
2229
  |caption:
@@ -2187,6 +2241,12 @@ In addition to the generic caption category, each of these keys can be set on th
2187
2241
  |caption:
2188
2242
  font-family: M+ 1mn
2189
2243
 
2244
+ |font-kerning
2245
+ |normal {vbar} none +
2246
+ (default: _inherit_)
2247
+ |caption:
2248
+ font-kerning: none
2249
+
2190
2250
  |font-size
2191
2251
  |<<values,Number>> +
2192
2252
  (default: _inherit_)
@@ -2218,6 +2278,9 @@ In addition to the generic caption category, each of these keys can be set on th
2218
2278
  margin-outside: 0
2219
2279
  |===
2220
2280
 
2281
+ . When nested inside the `image` key (i.e., `image-caption-align`), the value `inherit` is also accepted.
2282
+ The value `inherit` resolves to the alignment of the block image.
2283
+
2221
2284
  [#keys-code]
2222
2285
  === Code
2223
2286
 
@@ -2295,7 +2358,15 @@ The keys in this category are used to control the style of literal, listing and
2295
2358
  |code:
2296
2359
  padding: 11
2297
2360
 
2298
- 3+|[#key-prefix-code-linenum]*Key Prefix:* <<key-prefix-code-linenum,code-linenum>>^[2]^
2361
+ 3+|[#key-prefix-code-highlight]*Key Prefix:* <<key-prefix-code-highlight,code-highlight>>^[2]^
2362
+
2363
+ |background-color
2364
+ |<<colors,Color>> +
2365
+ (default: #FFFFCC)
2366
+ |code:
2367
+ highlight-background-color: #ffff00
2368
+
2369
+ 3+|[#key-prefix-code-linenum]*Key Prefix:* <<key-prefix-code-linenum,code-linenum>>^[3]^
2299
2370
 
2300
2371
  |font-color
2301
2372
  |<<colors,Color>> +
@@ -2305,8 +2376,10 @@ The keys in this category are used to control the style of literal, listing and
2305
2376
  |===
2306
2377
 
2307
2378
  . The line-gap property is used to tune the height of the background color applied to a span of block text highlighted using Rouge.
2379
+ . The code-highlight category only applies when using Rouge as the source highlighter.
2380
+ Otherwise, the styles are controlled by the source highlighter theme.
2308
2381
  . The code-linenum category only applies when using Pygments as the source highlighter.
2309
- Otherwise, the style is controlled by the source highlighter theme.
2382
+ Otherwise, the styles are controlled by the source highlighter theme.
2310
2383
 
2311
2384
  [#keys-callout-numbers]
2312
2385
  === Callout Numbers
@@ -2331,6 +2404,12 @@ The keys in this category are used to control the style of callout numbers (i.e.
2331
2404
  |conum:
2332
2405
  font-family: M+ 1mn
2333
2406
 
2407
+ |font-kerning^[2]^
2408
+ |normal {vbar} none +
2409
+ (default: _inherit_)
2410
+ |conum:
2411
+ font-kerning: none
2412
+
2334
2413
  |font-size^[2]^
2335
2414
  |<<values,Number>> +
2336
2415
  (default: _inherit_)
@@ -2357,7 +2436,7 @@ The keys in this category are used to control the style of callout numbers (i.e.
2357
2436
  |===
2358
2437
 
2359
2438
  . Currently, the font must contain the circle numbers starting at glyph U+2460.
2360
- . font-family, font-size, font-style, and line-height are only used for markers in a colist.
2439
+ . font-family, font-kerning, font-size, font-style, and line-height are only used for markers in a colist.
2361
2440
  These properties are inherited for conums inside a verbatim block.
2362
2441
  . The font must provide the required glyphs.
2363
2442
  The glyphs can be specified as a comma-separated list of ranges, where the range values are Unicode numbers (e.g., \u2460).
@@ -2545,11 +2624,23 @@ The keys in this category control the arrangement and style of quote blocks.
2545
2624
 
2546
2625
  3+|[#key-prefix-blockquote]*Key Prefix:* <<key-prefix-blockquote,blockquote>>
2547
2626
 
2627
+ |background-color
2628
+ |<<colors,Color>> +
2629
+ (default: _not set_)
2630
+ |blockquote:
2631
+ background-color: #dddddd
2632
+
2548
2633
  |border-width^[1]^
2549
2634
  |<<values,Number>> +
2635
+ (default: 0)
2636
+ |blockquote:
2637
+ border-width: 0.5
2638
+
2639
+ |border-left-width^[1]^
2640
+ |<<values,Number>> +
2550
2641
  (default: 4)
2551
2642
  |blockquote:
2552
- border-width: 5
2643
+ border-left-width: 5
2553
2644
 
2554
2645
  |border-color^[1]^
2555
2646
  |<<colors,Color>> +
@@ -2569,6 +2660,12 @@ The keys in this category control the arrangement and style of quote blocks.
2569
2660
  |blockquote:
2570
2661
  font-family: Noto Serif
2571
2662
 
2663
+ |font-kerning
2664
+ |normal {vbar} none +
2665
+ (default: _inherit_)
2666
+ |blockquote:
2667
+ font-kerning: none
2668
+
2572
2669
  |font-size
2573
2670
  |<<values,Number>> +
2574
2671
  (default: _inherit_)
@@ -2616,6 +2713,13 @@ The keys in this category control the arrangement and style of quote blocks.
2616
2713
  cite:
2617
2714
  font-family: Noto Serif
2618
2715
 
2716
+ |font-kerning
2717
+ |normal {vbar} none +
2718
+ (default: _inherit_)
2719
+ |blockquote:
2720
+ cite:
2721
+ font-kerning: none
2722
+
2619
2723
  |font-style
2620
2724
  |<<font-styles,Font style>> +
2621
2725
  (default: _inherit_)
@@ -2631,7 +2735,8 @@ The keys in this category control the arrangement and style of quote blocks.
2631
2735
  text-transform: uppercase
2632
2736
  |===
2633
2737
 
2634
- . Only applies to the left side.
2738
+ . If border-left-width is non-zero, the border is only applied to the left side.
2739
+ Otherwise, if border-width is non-zero, the border is drawn around the whole block.
2635
2740
 
2636
2741
  [#keys-verse]
2637
2742
  === Verse
@@ -2644,11 +2749,23 @@ The keys in this category control the arrangement and style of verse blocks.
2644
2749
 
2645
2750
  3+|[#key-prefix-verse]*Key Prefix:* <<key-prefix-verse,verse>>
2646
2751
 
2752
+ |background-color
2753
+ |<<colors,Color>> +
2754
+ (default: _not set_)
2755
+ |verse:
2756
+ background-color: #dddddd
2757
+
2647
2758
  |border-width^[1]^
2648
2759
  |<<values,Number>> +
2760
+ (default: 0)
2761
+ |verse:
2762
+ border-width: 0.5
2763
+
2764
+ |border-left-width^[1]^
2765
+ |<<values,Number>> +
2649
2766
  (default: 4)
2650
2767
  |verse:
2651
- border-width: 5
2768
+ border-left-width: 5
2652
2769
 
2653
2770
  |border-color^[1]^
2654
2771
  |<<colors,Color>> +
@@ -2668,6 +2785,12 @@ The keys in this category control the arrangement and style of verse blocks.
2668
2785
  |verse:
2669
2786
  font-family: M+ 1mn
2670
2787
 
2788
+ |font-kerning
2789
+ |normal {vbar} none +
2790
+ (default: _inherit_)
2791
+ |verse:
2792
+ font-kerning: none
2793
+
2671
2794
  |font-size
2672
2795
  |<<values,Number>> +
2673
2796
  (default: _inherit_)
@@ -2715,6 +2838,13 @@ The keys in this category control the arrangement and style of verse blocks.
2715
2838
  cite:
2716
2839
  font-family: Noto Serif
2717
2840
 
2841
+ |font-kerning
2842
+ |normal {vbar} none +
2843
+ (default: _inherit_)
2844
+ |verse:
2845
+ cite:
2846
+ font-kerning: none
2847
+
2718
2848
  |font-style
2719
2849
  |<<font-styles,Font style>> +
2720
2850
  (default: _inherit_)
@@ -2730,7 +2860,8 @@ The keys in this category control the arrangement and style of verse blocks.
2730
2860
  text-transform: uppercase
2731
2861
  |===
2732
2862
 
2733
- . Only applies to the left side.
2863
+ . If border-left-width is non-zero, the border is only applied to the left side.
2864
+ Otherwise, if border-width is non-zero, the border is drawn around the whole block.
2734
2865
 
2735
2866
  [#keys-sidebar]
2736
2867
  === Sidebar
@@ -2779,6 +2910,12 @@ The keys in this category control the arrangement and style of sidebar blocks.
2779
2910
  |sidebar:
2780
2911
  font-family: M+ 1p
2781
2912
 
2913
+ |font-kerning
2914
+ |normal {vbar} none +
2915
+ (default: _inherit_)
2916
+ |sidebar:
2917
+ font-kerning: none
2918
+
2782
2919
  |font-size
2783
2920
  |<<values,Number>> +
2784
2921
  (default: _inherit_)
@@ -2826,6 +2963,13 @@ The keys in this category control the arrangement and style of sidebar blocks.
2826
2963
  title:
2827
2964
  font-family: Noto Serif
2828
2965
 
2966
+ |font-kerning
2967
+ |normal {vbar} none +
2968
+ (default: _inherit_)
2969
+ |sidebar:
2970
+ title:
2971
+ font-kerning: none
2972
+
2829
2973
  |font-size
2830
2974
  |<<values,Number>> +
2831
2975
  (default: _inherit_)
@@ -2895,6 +3039,12 @@ The keys in this category control the arrangement and style of example blocks.
2895
3039
  |example:
2896
3040
  font-family: M+ 1p
2897
3041
 
3042
+ |font-kerning
3043
+ |normal {vbar} none +
3044
+ (default: _inherit_)
3045
+ |example:
3046
+ font-kerning: none
3047
+
2898
3048
  |font-size
2899
3049
  |<<values,Number>> +
2900
3050
  (default: _inherit_)
@@ -2961,6 +3111,12 @@ The keys in this category control the arrangement and style of admonition blocks
2961
3111
  |admonition:
2962
3112
  font-family: Noto Sans
2963
3113
 
3114
+ |font-kerning
3115
+ |normal {vbar} none +
3116
+ (default: _inherit_)
3117
+ |admonition:
3118
+ font-kerning: none
3119
+
2964
3120
  |font-size
2965
3121
  |<<values,Number>> +
2966
3122
  (default: _inherit_)
@@ -3030,6 +3186,13 @@ The keys in this category control the arrangement and style of admonition blocks
3030
3186
  label:
3031
3187
  font-family: M+ 1p
3032
3188
 
3189
+ |font-kerning
3190
+ |normal {vbar} none +
3191
+ (default: _inherit_)
3192
+ |admonition:
3193
+ label:
3194
+ font-kerning: none
3195
+
3033
3196
  |font-size
3034
3197
  |<<values,Number>> +
3035
3198
  (default: _inherit_)
@@ -3158,6 +3321,13 @@ The keys in this category control the arrangement of block images.
3158
3321
  alt:
3159
3322
  font-family: Courier
3160
3323
 
3324
+ |font-kerning
3325
+ |normal {vbar} none +
3326
+ (default: _inherit_)
3327
+ |image:
3328
+ alt:
3329
+ font-kerning: none
3330
+
3161
3331
  |font-size
3162
3332
  |<<values,Number>> +
3163
3333
  (default: _inherit_)
@@ -3171,6 +3341,20 @@ The keys in this category control the arrangement of block images.
3171
3341
  |iamge:
3172
3342
  alt:
3173
3343
  font-style: italic
3344
+
3345
+ |caption-align
3346
+ |<<text-alignments,Text alignment>> {vbar} inherit +
3347
+ (default: $caption-align)
3348
+ |image:
3349
+ caption:
3350
+ align: inherit
3351
+
3352
+ |caption-max-width^[5]^
3353
+ |fit-content {vbar} none +
3354
+ (default: none)
3355
+ |image:
3356
+ caption:
3357
+ max-width: fit-content
3174
3358
  |===
3175
3359
 
3176
3360
  . Only applies to block images.
@@ -3179,6 +3363,7 @@ If specified, this value takes precedence over the value of the `width` attribut
3179
3363
  The border is drawn above the image on the inside of the box reserved for the image.
3180
3364
  . The value `auto` means the border should expand to fit the width of the container (i.e., full width) instead of the image.
3181
3365
  . Use the placeholders `%\{alt}`, `%\{target}`, `%\{link}`, and `%{/link}` to insert the alt text, image target, and link open/close tags into the content template.
3366
+ . In order for the image to be sized correctly when max-width is fit-content, a width should always be specified on the image.
3182
3367
 
3183
3368
  [#keys-svg]
3184
3369
  === SVG
@@ -3223,6 +3408,12 @@ The keys in this category control the styling of lead paragraphs.
3223
3408
  |lead:
3224
3409
  font-family: M+ 1p
3225
3410
 
3411
+ |font-kerning
3412
+ |normal {vbar} none +
3413
+ (default: _inherit_)
3414
+ |lead:
3415
+ font-kerning: none
3416
+
3226
3417
  |font-size
3227
3418
  |<<values,Number>> +
3228
3419
  (default: 13.5)
@@ -3318,6 +3509,13 @@ The keys in this category control the arrangement and style of the abstract.
3318
3509
  title:
3319
3510
  font-family: Noto Serif
3320
3511
 
3512
+ |font-kerning
3513
+ |normal {vbar} none +
3514
+ (default: _inherit_)
3515
+ |abstract:
3516
+ title:
3517
+ font-kerning: none
3518
+
3321
3519
  |font-size
3322
3520
  |<<values,Number>> +
3323
3521
  (default: $base-font-size)
@@ -3423,6 +3621,12 @@ The subject stop can be customized using the `subject-stop` attribute.
3423
3621
  |description-list:
3424
3622
  term-font-family: Noto Serif
3425
3623
 
3624
+ |term-font-kerning
3625
+ |normal {vbar} none +
3626
+ (default: _inherit_)
3627
+ |description-list:
3628
+ term-font-kerning: none
3629
+
3426
3630
  |term-font-size
3427
3631
  |<<values,Number>> +
3428
3632
  (default: _inherit_)
@@ -3646,6 +3850,12 @@ The keys in this category control the arrangement and style of tables and table
3646
3850
  |table:
3647
3851
  font-family: Helvetica
3648
3852
 
3853
+ |font-kerning
3854
+ |normal {vbar} none +
3855
+ (default: _inherit_)
3856
+ |table:
3857
+ font-kerning: none
3858
+
3649
3859
  |font-size
3650
3860
  |<<values,Number>> +
3651
3861
  (default: _inherit_)
@@ -3727,6 +3937,13 @@ The keys in this category control the arrangement and style of tables and table
3727
3937
  head:
3728
3938
  font-family: Noto Serif
3729
3939
 
3940
+ |font-kerning
3941
+ |normal {vbar} none +
3942
+ (default: _inherit_)
3943
+ |table:
3944
+ head:
3945
+ font-kerning: none
3946
+
3730
3947
  |font-size
3731
3948
  |<<values,Number>> +
3732
3949
  (default: $table-font-size)
@@ -3871,7 +4088,7 @@ Since Asciidoctor 2, table stripes are not enabled by default (e.g., `stripes=no
3871
4088
  [#keys-footnotes]
3872
4089
  === Footnotes
3873
4090
 
3874
- The keys in this catagory control the style the list of footnotes at the end of the chapter (book) or document (otherwise).
4091
+ The keys in this catagory control the style of the footnotes list at the end of the chapter (book) or document (otherwise).
3875
4092
  If the `footnotes-title` attribute is specified, it is styled as a block caption.
3876
4093
  The styling of the links is controlled by the global link styles.
3877
4094
 
@@ -3941,6 +4158,12 @@ The keys in this category control the arrangement and style of the table of cont
3941
4158
  |toc:
3942
4159
  font-family: Noto Serif
3943
4160
 
4161
+ |font-kerning
4162
+ |normal {vbar} none +
4163
+ (default: _inherit_)
4164
+ |toc:
4165
+ font-kerning: none
4166
+
3944
4167
  |font-size
3945
4168
  |<<values,Number>> +
3946
4169
  (default: _inherit_)
@@ -4014,25 +4237,31 @@ The keys in this category control the arrangement and style of the table of cont
4014
4237
  |<<fonts,Font family name>> +
4015
4238
  (default: _inherit_)
4016
4239
  |toc:
4017
- font-family: Noto Serif
4240
+ h2-font-family: Noto Serif
4241
+
4242
+ |font-kerning
4243
+ |normal {vbar} none +
4244
+ (default: _inherit_)
4245
+ |toc:
4246
+ h3-font-kerning: none
4018
4247
 
4019
4248
  |font-size
4020
4249
  |<<values,Number>> +
4021
4250
  (default: _inherit_)
4022
4251
  |toc:
4023
- font-size: 9
4252
+ h3-font-size: 9
4024
4253
 
4025
4254
  |font-style
4026
4255
  |<<font-styles,Font style>> +
4027
4256
  (default: _inherit_)
4028
4257
  |toc:
4029
- font-style: italic
4258
+ h2-font-style: italic
4030
4259
 
4031
4260
  |text-transform
4032
4261
  |<<text-transforms,Text transform>> +
4033
4262
  (default: _inherit_)
4034
4263
  |toc:
4035
- text-transform: uppercase
4264
+ h3-text-transform: uppercase
4036
4265
 
4037
4266
  3+|[#key-prefix-toc-title]*Key Prefix:* <<key-prefix-toc-title,toc-title>>
4038
4267
 
@@ -4057,6 +4286,13 @@ The keys in this category control the arrangement and style of the table of cont
4057
4286
  title:
4058
4287
  font-family: Noto Serif
4059
4288
 
4289
+ |font-kerning
4290
+ |normal {vbar} none +
4291
+ (default: _inherit_)
4292
+ |toc:
4293
+ title:
4294
+ font-kerning: none
4295
+
4060
4296
  |font-size
4061
4297
  |<<values,Number>> +
4062
4298
  (default: $heading-h2-font-size)
@@ -4136,6 +4372,12 @@ To avoid this problem, reduce the height of the running content periphery or mak
4136
4372
  |header:
4137
4373
  background-color: #eeeeee
4138
4374
 
4375
+ |background-image
4376
+ |image macro +
4377
+ (default: _not set_)
4378
+ |header:
4379
+ background-image: image:running-content.svg[fit=contain]
4380
+
4139
4381
  |border-color
4140
4382
  |<<colors,Color>> +
4141
4383
  (default: _not set_)
@@ -4166,6 +4408,12 @@ To avoid this problem, reduce the height of the running content periphery or mak
4166
4408
  |header:
4167
4409
  font-family: Noto Serif
4168
4410
 
4411
+ |font-kerning
4412
+ |normal {vbar} none +
4413
+ (default: _inherit_)
4414
+ |header:
4415
+ font-kerning: none
4416
+
4169
4417
  |font-size
4170
4418
  |<<values,Number>> +
4171
4419
  (default: _inherit_)
@@ -4249,6 +4497,12 @@ To avoid this problem, reduce the height of the running content periphery or mak
4249
4497
  |footer:
4250
4498
  background-color: #eeeeee
4251
4499
 
4500
+ |background-image
4501
+ |image macro +
4502
+ (default: _not set_)
4503
+ |footer:
4504
+ background-image: image:running-content.svg[fit=contain]
4505
+
4252
4506
  |border-color
4253
4507
  |<<colors,Color>> +
4254
4508
  (default: _not set_)
@@ -4279,6 +4533,12 @@ To avoid this problem, reduce the height of the running content periphery or mak
4279
4533
  |footer:
4280
4534
  font-family: Noto Serif
4281
4535
 
4536
+ |font-kerning
4537
+ |normal {vbar} none +
4538
+ (default: _inherit_)
4539
+ |footer:
4540
+ font-kerning: none
4541
+
4282
4542
  |font-size
4283
4543
  |<<values,Number>> +
4284
4544
  (default: _inherit_)
@@ -4357,7 +4617,7 @@ To avoid this problem, reduce the height of the running content periphery or mak
4357
4617
  3+|[#key-prefix-running-content]*Key Prefix:* <<key-prefix-running-content,running-content>>
4358
4618
 
4359
4619
  |start-at^[7]^
4360
- |title {vbar} toc {vbar} body +
4620
+ |title {vbar} toc {vbar} body {vbar} Integer +
4361
4621
  (default: body)
4362
4622
  |running-content:
4363
4623
  start-at: toc
@@ -4373,6 +4633,7 @@ Where the page sides fall in relation to the physical or printed page number is
4373
4633
  . `<position>` can be `left`, `center` or `right`.
4374
4634
  . The `toc` value only applies if the toc is in the default location (before the first page of the body).
4375
4635
  If the toc macro is used to position the toc, the start-at behavior is the same as if the toc is not enabled.
4636
+ If value is an integer, the running content will start at the specified page of the body (i.e., 1 is first page, 2 is second page, etc.)
4376
4637
 
4377
4638
  IMPORTANT: If you don't specify a height for either the header or footer key, it effectively disables the content at that periphery.
4378
4639
 
@@ -4764,7 +5025,10 @@ recto page margin:: [0.5in, *0.59in*, 0.67in, *0.75in*]
4764
5025
  verso page margin:: [0.5in, *0.75in*, 0.67in, *0.59in*]
4765
5026
 
4766
5027
  The page margins alternate between recto and verso.
4767
- The first page in the document is a recto page.
5028
+ The first page in the document (after the cover) is a recto page.
5029
+
5030
+ If no cover is specified, the recto margin is not applied to the title page.
5031
+ To apply the recto margin to the title page, but not include a cover, assign the value `~` to the `front-cover-image` attribute.
4768
5032
 
4769
5033
  === Automatic Facing Pages
4770
5034
 
@@ -4779,7 +5043,7 @@ Other "`facing`" pages may be added in the future.
4779
5043
 
4780
5044
  It's possible to disable the automatic facing feature for a given part or chapter.
4781
5045
  This can be done by adding the nonfacing option to the section node.
4782
- When the nonfacing option is present, the part or chapter title will be placed on the following page.
5046
+ When the nonfacing option is present, the part or chapter title will be placed on the next adjacent page rather than the next facing page.
4783
5047
 
4784
5048
  [source,asciidoc]
4785
5049
  ----