diff --git a/README.md b/README.md
index caff62d..e4aeafc 100644
--- a/README.md
+++ b/README.md
@@ -16,3 +16,13 @@ $ go run tool/number.go
 ```console
 $ tool/gofmt
 ```
+
+
+### Generating
+
+```console
+$ cd tool
+$ go build generate.go
+$ cd ..
+$ tool/generate src/063-line-filters/line-filters.go 'Line Filters' > build/line-filters.html
+$ prince build/line-filters.html -o build/line-filters.pdf
\ No newline at end of file
diff --git a/src/063-line-filters/line-filters.go b/src/063-line-filters/line-filters.go
index 3a3447f..8b5b720 100644
--- a/src/063-line-filters/line-filters.go
+++ b/src/063-line-filters/line-filters.go
@@ -1,6 +1,6 @@
 // ## Line Filters
 
-// A line filter program reads input on stdin,
+// A _line filter_ program reads input on stdin,
 // processes it, and prints results to stdout.
 // Here's an example line filter that writes
 // a capitalized version of all text it reads.
@@ -38,7 +38,7 @@ func main() {
 
         // Write out the upercased bytes, checking for an error
         // here as well.
-        outBytes := bytes.ToUpper(inBytes)
+        outBytes := bytes.ToUpper(inBytes)xxxxxxxxxxxxxxxxxxxxx
         _, err = out.Write(outBytes)
         if err != nil {
             panic(err)
diff --git a/style/book.css b/style/book.css
index 66b82ad..2994d78 100644
--- a/style/book.css
+++ b/style/book.css
@@ -35,8 +35,8 @@ table td {
   outline: 0;
 }
 td.docs {
-  max-width: 375px;
-  min-width: 375px;
+  max-width: 350px;
+  min-width: 350px;
   min-height: 5px;
   padding: 10px 15px 1px 30px;
   overflow-x: hidden;
@@ -44,9 +44,7 @@ td.docs {
   text-align: left;
 }
 td.code {
-  max-width: 375px;
-  min-width: 375px;
-  padding: 14px 30px 16px 15px;
+  padding: 10px 10px 10px 10px;
   vertical-align: top;
   background: #f0f0f0;
 }