<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <title>#pdf posts — Ben Crowder</title>
    <link>https://bencrowder.net/blog/tag/pdf/</link>
    <atom:link href="https://bencrowder.net/blog/tag/pdf/feed/" rel="self" />
    <description>Feed for blog posts tagged with #pdf.</description>
    <lastBuildDate>Sat, 04 Apr 2026 05:22:16 GMT</lastBuildDate>
    <language>en-US</language>
    <generator>https://bencrowder.net/</generator>

    <item>
      <title>Some Square Poems</title>
      <link>https://bencrowder.net/blog/2026/some-square-poems/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2026/some-square-poems/</guid>
      <pubDate>Sun, 25 Jan 2026 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>Another new digital chapbook: <cite><a href="https://bencrowder.net/some-square-poems/">Some Square Poems</a></cite>, with 140 very short square poems. (“Square,” by the way, here means that the number of syllables per line matches the number of lines in the poem. It’s an arbitrary constraint I made up for myself on this project, though <a href="https://playground.poetry.blog/2019/10/07/invented-poetry-forms-the-lewis-carroll-square-poem/">it turns out</a> I’m not the only one who has thought of it and given it the same name. Or perhaps I once read about the form and then promptly forgot that I had.) It’s available for free in PDF.</p>
<p>I’ve been working on these for about a month, writing them down in my Field Notes notebook, and have had a lot of fun with the form. The typesetting was also fun; I initially set it in Freight Text but then, after designing the cover, switched to Futura to match.</p>
<p><figure>
        <a href="https://bencrowder.net/some-square-poems/"><img src="https://cdn.bencrowder.net/blog/2026/01/some-square-poems.jpg" alt="some-square-poems.jpg" title="some-square-poems.jpg" /></a>
        
      </figure></p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Some Square Poems">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>The Dig Unsettling</title>
      <link>https://bencrowder.net/blog/2026/the-dig-unsettling/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2026/the-dig-unsettling/</guid>
      <pubDate>Fri, 23 Jan 2026 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>Introducing <cite><a href="https://bencrowder.net/the-dig-unsettling/">The Dig Unsettling</a></cite>, a twenty-page digital chapbook available for free in EPUB and PDF. It contains five new short stories I wrote in 2025, all more or less in the horror genre.</p>
<p><figure>
        <a href="https://bencrowder.net/the-dig-unsettling/"><img src="https://cdn.bencrowder.net/blog/2026/01/the-dig-unsettling.jpg" alt="the-dig-unsettling.jpg" title="the-dig-unsettling.jpg" /></a>
        
      </figure></p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20The Dig Unsettling">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>Bag Field &amp; Other Stories</title>
      <link>https://bencrowder.net/blog/2026/bag-field-and-other-stories/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2026/bag-field-and-other-stories/</guid>
      <pubDate>Sat, 17 Jan 2026 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>I’ve collected the fiction and poems I’ve published (well, self-published) into a new book, <cite><a href="https://bencrowder.net/bag-field-and-other-stories/">Bag Field &amp; Other Stories</a></cite>, available for free in EPUB and PDF. No new work in this volume, though I’m publishing this in the hope that it will motivate me to write more.</p>
<p><figure>
        <a href="https://bencrowder.net/bag-field-and-other-stories/"><img src="https://cdn.bencrowder.net/blog/2026/01/bag-field.jpg" alt="bag-field.jpg" title="bag-field.jpg" /></a>
        
      </figure></p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Bag Field &amp; Other Stories">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>Robin Rendle: I’ve always seen the browser as a printing press. Because of that, I’ve always seen my...</title>
      <link>https://bencrowder.net/blog/2023/1582/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2023/1582/</guid>
      <pubDate>Sat, 30 Sep 2023 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p><a href="https://buttondown.email/robinrendle/archive/the-browser-is-a-printing-press/">Robin Rendle</a>:</p>
<blockquote>
  <ol>
  <li>I’ve always seen the browser as a printing press.</li>
  <li>Because of that, I’ve always seen myself as a publisher first and then everything else second.</li>
  </ol>
</blockquote>
<p>This, particularly the second point. I’ve seen myself as a publisher for a long time now as well, with all the books and language charts and magazines and even the art. And the web makes publishing so, so easy. It’s magical. Instant worldwide distribution. (Well, instant for the digital things I make.)</p>
<p>His first point has stuck with me as well — I’ve tended to think of my site mostly as a place to publish PDFs and EPUBs and images and other files I’ve made, but I like the idea of the web as the actual delivery mechanism, for more than just blog posts. This isn’t a new idea, of course; it’s just something I haven’t been thinking about as much till now. I’m looking over the type of things I’ve made — books, languages charts, etc. — and thinking what it would be like if the end product were a web page instead of a PDF or an EPUB. And of course nowadays I’m using HTML/CSS as the source for all three main formats for books (web, EPUB, PDF), so it doesn’t necessarily have to be either/or.</p>
<p>Anyway, nothing specific in mind yet. We’ll see what comes of it.</p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Robin Rendle: I’ve always seen the browser as a printing press. Because of that, I’ve always seen my...">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>Introducing Life of Theseus, from Plutarch’s Lives of the Noble Greeks and Romans. Available as a fr...</title>
      <link>https://bencrowder.net/blog/2023/1548/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2023/1548/</guid>
      <pubDate>Sat, 05 Aug 2023 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>Introducing <em><a href="https://bencrowder.net/plutarchs-lives/">Life of Theseus</a></em>, from Plutarch’s <em>Lives of the Noble Greeks and Romans</em>. Available as a free PDF download.</p>
<p><figure class="border">
        <img src="https://cdn.bencrowder.net/images/projects/plutarchs-lives/life-of-theseus-page-1.png" alt="Title page of the book" title="Title page of the book" />
        
      </figure></p>
<p><figure class="border">
        <img src="https://cdn.bencrowder.net/images/projects/plutarchs-lives/life-of-theseus-page-2.png" alt="First page of the book" title="First page of the book" />
        
      </figure></p>
<p><figure class="border">
        <img src="https://cdn.bencrowder.net/images/projects/plutarchs-lives/life-of-theseus-page-3.png" alt="Second page of the book" title="Second page of the book" />
        
      </figure></p>
<h3 id="makingofnotes">Making-of notes</h3>
<ul>
<li>It’s set in <a href="https://letterformarchive.org/shop/lfa-aluminia-fonts/">LfA Aluminia</a>, a resurrected version of Electra. I enjoyed <a href="https://letterformarchive.org/news/recasting-aluminia/">this article</a> about the making of the typeface.</li>
<li>Chrome still has the bizarre copy-paste issue in macOS Preview, so I used Firefox. But Firefox doesn’t yet support <code>hyphenate-limit-chars</code>, sadly. I decided not to stress about it.</li>
<li>It’s left-justified since browser justification still isn’t great and I didn’t want to spend eons fine-tuning the spacing. I did, however, tweak word-spacing to eliminate hyphens at the ends of pages and most widows and orphans (though I wasn’t fully strict here). Also manually inserted <code>&amp;amp;shy;</code> to insert hyphens as needed (mostly in the Greek names — and I probably got some of those wrong but I did try my best) and turned off ligatures that crossed hyphenation breaks (“ff”).</li>
<li>I used Paged.js, which generally worked well. Whenever I made changes, though, reloading the page and finding my place again (usually by cmd+f with some string of text) started getting laborious. Thinking about either building a Firefox extension that maintains scroll position even on hard refresh or building an Electron app that does the same.</li>
<li>Not sure yet if I’m going to continue on with typesetting the rest of the <em>Lives</em>, but hopefully I do.</li>
</ul><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Introducing Life of Theseus, from Plutarch’s Lives of the Noble Greeks and Romans. Available as a fr...">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>Dot grid paper</title>
      <link>https://bencrowder.net/blog/2023/dot-grid-paper/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2023/dot-grid-paper/</guid>
      <pubDate>Mon, 27 Feb 2023 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>I’ve added <a href="https://bencrowder.net/note-paper/#dot-grid">dot grid paper</a> to the note paper page, in a handful of sizes:</p>
<p><figure class="border">
        <a href="https://bencrowder.net/note-paper/#dot-grid"><img src="https://cdn.bencrowder.net/images/projects/note-paper/dot-grid-paper-0.1in.png" alt="A grid made up of dots" title="A grid made up of dots" /></a>
        
      </figure></p>
<p>Colophon: I made these with JavaScript/Node, generating SVGs that I then converted into PDFs with Inkscape.</p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Dot grid paper">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>New daily goal charts</title>
      <link>https://bencrowder.net/blog/2023/new-daily-goal-charts/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2023/new-daily-goal-charts/</guid>
      <pubDate>Sat, 25 Feb 2023 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>Inspired by Robert A. Caro’s <a href="https://tumblr.austinkleon.com/post/668846381400768512">planning calendar</a>, I’ve redesigned my <a href="https://bencrowder.net/daily-goal-chart/">daily goal charts</a>:</p>
<p><figure class="border">
        <a href="https://bencrowder.net/daily-goal-chart/"><img src="https://cdn.bencrowder.net/images/projects/daily-goal-chart/daily-goal-chart-landscape.png" alt="A daily goal chart" title="A daily goal chart" /></a>
        
      </figure></p>
<p>This time the chart doesn’t have a specific year baked in, so it’s reusable. (And there’s a variation for leap years.) It’s freely available as PDFs in both portrait and landscape. Currently just letter size, though maybe someday I’ll start including A4 and other sizes.</p>
<p>Colophon: I made these charts with HTML (it’s just a table), CSS, JavaScript (on page rather than via Node), and Firefox. The font is Avenir Next.</p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20New daily goal charts">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>Just added diagonal graph paper to the note paper page. It looks like this: Why would you use this?...</title>
      <link>https://bencrowder.net/blog/2021/1295/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2021/1295/</guid>
      <pubDate>Fri, 26 Nov 2021 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>Just added <a href="https://bencrowder.net/note-paper/#diagonal-grid">diagonal graph paper</a> to the note paper page. It looks like this:</p>
<p><figure class="border">
        <a href="https://bencrowder.net/note-paper/#diagonal-grid"><img src="https://cdn.bencrowder.net/images/projects/note-paper/diagonal-grid-40x40-light.png" alt="https://cdn.bencrowder.net/images/projects/note-paper/diagonal-grid-40x40-light.png" title="https://cdn.bencrowder.net/images/projects/note-paper/diagonal-grid-40x40-light.png" /></a>
        
      </figure></p>
<p>Why would you use this? No idea. I haven’t been able to come up with any good use cases for it, but the itch needed to be scratched so here we are.</p>
<p>Sidenote: I made the <a href="https://bencrowder.net/blog/2019/708/">original lined/grid paper</a> with PlotDevice but decided to use SVG instead this time, converting the files to PDF with Inkscape.</p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Just added diagonal graph paper to the note paper page. It looks like this: Why would you use this?...">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>Historia Calamitatum</title>
      <link>https://bencrowder.net/blog/2021/historia-calamitatum/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2021/historia-calamitatum/</guid>
      <pubDate>Fri, 05 Nov 2021 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<figure class="float right"><a href="https://bencrowder.net/historia-calamitatum/"><img src="https://cdn.bencrowder.net/images/thumbnails/historia-calamitatum.jpg" alt="Book cover for Historia Calamitatum by Peter Abelard, white text over small circles fading vertically from white at top through red in the middle down to black at the bottom" /></a></figure>
<p>After what feels like a long absence from bookmaking, I’ve gotten back into it and have a new release: <a href="https://bencrowder.net/historia-calamitatum/"><i>Historia Calamitatum</i></a>, available as a PDF.</p>
<p>The book is a medieval autobiography by <a href="https://en.wikipedia.org/wiki/Peter_Abelard">Peter Abélard</a>, a Catholic philosopher who lived in the eleventh and twelfth centuries in France.</p>
<p>Some notes on the making, for those who like that sort of thing:</p>
<ul>
<li>I used <a href="https://www.pagedjs.org/">paged.js</a> for the typesetting, so I was editing HTML and CSS files instead of wrangling InDesign or Affinity Publisher or LaTeX. It’s a different workflow, to be sure (lots of reloading in Chrome and then finding my spot again), but overall I love having the source files be plain text.</li>
<li>The line-breaking algorithm isn’t as nice as InDesign’s. Had to finagle the <code>word-spacing</code> and <code>letter-spacing</code> properties a bit to fix some more egregious spots. (At the same time, I wasn’t fixated on making the spacing perfect. Nor did I fix the hyphenation stacks, because they don’t bother me. I’m clearly becoming a bit more relaxed about typesetting rules as I get older.)</li>
<li>For the typeface I went with <a href="https://fonts.google.com/specimen/IM+Fell+DW+Pica">IM Fell DW Pica</a>, which is no doubt anachronistic but I like the feeling it gives the book.</li>
<li>I proofed the PDFs in the Documents app on my iPad. Much nicer than printing the whole thing out (which I used to do, years ago).</li>
<li>I made the cover using <a href="https://bencrowder.net/cirque/">Cirque</a> with textures applied in Affinity Photo.</li>
</ul><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Historia Calamitatum">Reply via email</a></p>]]></description>
    </item>
    <item>
      <title>Update on Press (the PDF compiler). I haven’t worked on it at all lately, but I wanted to document i...</title>
      <link>https://bencrowder.net/blog/2021/865/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2021/865/</guid>
      <pubDate>Fri, 03 Sep 2021 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>Update on Press (the PDF compiler). I haven’t worked on it at all lately, but I wanted to document its current state for history’s sake, and as part of working in public. (I’ve also been sitting on this post for over a year.)</p>
<p>Back in 2017 I did end up <a href="https://bencrowder.net/blog/2017/517/">re-architecting Press</a> to use Low Ink as an intermediate page description language. In the process, Low Ink changed from a JSON-based idea to this:</p>
<pre><code>:page 11x8.5in
:bleedbox x=0.125in y=0.125in w=5.75in h=8.75in
:fontmap family=helv weight=regular style=normal standard=Helvetica
:yinvert
:push
:translate x=72 y=72

# ascender
:push
:translate x=0 y=1040
:strokecolor hex=#999
:linewidth 0.25pt
:line x1=0 y1=0 x2=1080 y2=0
:stroke
:push
:fillcolor hex=#999
:font family=helv size=14pt
:text x=1085 y=-3 text="ascender"
:pop
:pop

# filled glyph
:push
:translate x=1320 y=240
:fillcolor hex=#000
:moveto x=0 y=0
:pathto x=400 y=300 cx1=120 cy1=300 cx2=140 cy2=300
:pathto x=320 y=200 cx1=540 cy1=300 cx2=320 cy2=180
:lineto x=350 y=350
:lineto x=450 y=250
:lineto x=150 y=0
:moveto x=200 y=200
:lineto x=200 y=250
:lineto x=250 y=250
:lineto x=250 y=200
:lineto x=200 y=200
:fill
:pop
</code></pre>
<p>It was intended to be a fairly low-level wrapper on the PDF format, with the idea being that other libraries/apps would provide more ergonomic abstractions on top of it.</p>
<p>I initially used Python because Press started out as a library, but with the pivot to a compiler model, I think Go or Rust would probably end up being a better choice (Rust would make integrating HarfBuzz a bit easier, at any rate).</p>
<h2 id="potentialimprovements">Potential improvements</h2>
<p>To my 2021 eyes, the language design isn’t particularly elegant. I like that the parameters are named (clarity), but for most of the commands there aren’t actually that many parameters, because many of the settings that would normally be parameters are separate commands. For parameters that are clearly unambiguous, the names hamper readability. For example, I think something like this might be better:</p>
<pre><code>:line 0,0 to 1080,0
:fillcolor #345
</code></pre>
<p>I’ve also thought that <code>push</code> and <code>pop</code> could potentially be clearer as curly braces, and that the initial colons aren’t really necessary:</p>
<pre><code>{
  translate 0,1040
  strokecolor #999
  linewidth 0.25pt
  line 0,0 to 1080,0
  stroke

  {
    fillcolor #999
    font 14pt helv
    text 1085,-3 "ascender"
  }
}
</code></pre>
<h2 id="thefuture">The future</h2>
<p>My initial reason for building Press was to have an easy, programmable cross-platform way to create <a href="https://bencrowder.net/projects/tags/charts/">language chart PDFs</a> (so I could move away from PlotDevice/DrawBot), and what I’ve realized (acknowledging that I haven’t really been making language charts in recent years) is that there are some other, better options now.</p>
<p>One that seems decent is SVG, converted to PDF by way of Inkscape. Initial tests here seem like it would probably work fine.</p>
<p>Another promising option that I admittedly haven’t looked into very much yet is <a href="https://www.pagedjs.org/">Paged.js</a>. HTML and CSS are already great for declarative typesetting, and the more I’ve thought about programmatic typesetting, the more this model seems to be the future I’d want to work with (and not just because of parity with web, though that makes it much more compelling).</p>
<p>tl;dr I don’t see myself continuing on with Press, so we may as well call a mortem on it.</p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20Update on Press (the PDF compiler). I haven’t worked on it at all lately, but I wanted to document i...">Reply via email</a></p>]]></description>
    </item>
    
  </channel>
</rss>
