<<

±he ºalligraphy-Çaper las (Í0.10)

Ä. É. . van »onge

¸pri 17, 2017 Abstract

Drawing guidelines for scripts is tedious and may take long. When practis- ing their scripts, some calligraphers may prefer using computer-generated and printed guideline sheets. This provides a quick introduction to the LATEX calligraphy- class, which provides a simpe api for defining for user-defined guideline sheet styles and for using predefined guideline sheet styles. Contents

1 Introduction 1

2 Main Work Flow 2

3 Defining the Layout 3

4 Defining the Guideline Sheets 5 4.1 Low-Level Options ...... 5 4.2 Defining the Number of Copies ...... 6 4.3 High-Level High-Level Script Definitions ...... 6 4.4 Mitchell Definitions ...... 9 4.5 Brause Definitions ...... 9 4.6 Pen Definitions ...... 10 4.7 Automatic Pen Definitions ...... 10 4.8 Pen Definitions ...... 11 4.9 -Simulated Pen Definitions ...... 11 4.10 Defaults ...... 11

5 Examples 12

6 Class Maintenance and Bug Support 13

Indexes 14 Style and Key Index ...... 15 Script Index ...... 17

Bibliography 18

ii List of Tables

3.1 Class options...... 4 3.2 Remaining class layout options ...... 4

iii Chapter 1 Introduction

This document describes the LATEX calligraphy-paper class, the sole purpose of which is to draw guidelines for calligraphy scripts for broad nibs in an easy way. The class is built on top of pgfkeys [Tantau 2010] and pgfopts [Wright 2010] so users can define their own style for their own page layouts, nib configurations, and scripts. Readers should consult the pgfkeys documentation [Tantau 2010] for more information about user – defined keys. The calligraphy-paper class draws its guidelines using the tikz package [Tantau 2010]. Using a tikz “overlay” and “remember picture” this would have been relatively easy1 but then generating the guidelines may require up to three compilations, which is a waste of time. The calligraphy-paper class only requires one LATEX compilation. The remainder of this document provides a short description on how to use the class.

1In fact, the first version of this class was implement using “overlay” and “remember picture.”

1 Chapter 2 Main Work Flow

The calligraphy-paper class assumes users want to draw one or several guideline sheets for the same paper layout. To do this, users should first define the page geometry (layout) using the class options of the calligraphy-paper and then define their guideline sheets with the \CalligraphyPaper command. The class options are defined in Section 3. Section 4 explains the \CalligraphyPaper command.

2 Chapter 3 Defining the Page Layout

Users define the basic paper layout using the class options that are defined in Tables 3.1 and 3.2. The options in Table 3.1 are passed to the geometry package [Umeki 2010]. If you combine options from these tables, please make sure you first use the options from Table 3.1; only then should you use the options from Table 3.2. The default class options are “two sided, 12pt, a3, =1.0cm,” and “landscape.” Once the page layout is defined, the user can print one or several guideline sheets with the \CalligraphyPaper command, which is described in the following section.

3 a0 a1 a2 a3 a4 a5 a6 b0 b1 b2 b3 b4 b5 b6 c0 c1 c2 c3 c4 c5 c6 b0j b1j b2j b3j b4j b5j b6j ansia ansib ansic ansid ansie executive legal

Table 3.1: Class page layout options.

Option Description top=hwidthi Set top margin size to hwidthi bottom=hwidthi Set bottom margin size to hwidthi left=hwidthi Set left margin size to hwidthi right=hwidthi Set right margin size to hwidthi horizontal=hwidthi Set left and right margin size to hwidthi vertical=hwidthi Set top and bottom margin to hwidthi portrait Use paper in portrait mode landscape Use paper in landscape mode two sided Use paper in two sided mode one sided Use paper in single sided mode 12pt Set size to 12 pt 11pt Set point size to 11 pt 10pt Set point size to 10 pt 9pt Set point size to 9 pt

Table 3.2: Remaining class layout options. The point size options only affect the comment lines that are drawn at the top of the guideline sheets. These comment lines are explained in Section 4.1.

4 Chapter 4 Defining the Guideline Sheets

Creating guideline sheets is done with the \CalligraphyPaper command, which has a user-friendly api that is defined in terms of predefined script styles. Users can define their own styles using a pgfkeys style [Tantau 2010]. To create a single guideline sheet with the default guideline parameters, the user may invoke the comment \CalligraphyPaper{}, which will result in guidelines for the Founda- tional script. The \CalligraphyPaper class has no options and requires one parameter, which is a collection of key – value options. The remainder of this section defines the options. It starts with low-level options, continues with high-level script definitions, and concludes with a number of sections providing high-level definition for nibs from nib/pen manufacturers. The reader may need a little knowledge about the pgfkeys package [Tantau 2010] to understand this.

4.1 Low-Level Options

This section defines the low-level options of the calligraphy-paper class. date=hdatei Set the date to hdatei. The date will now be printed if comments are printed, which is useful for users who want to keep track of their progress. use current date Set the date to the current date. The date will now be printed if comments are printed. date Set the date to an empty box. This is useful if you want to print guide sheets in advance. You can fill in the date by hand when you actually use the sheets. comments=hbooli Turns comment on (default) or off. Turning comments on, results in a one-line comment at the top of the page. To turn comments off, the user may write comments=false. To turn comments on, the user may write com- ments=true.

5 pen angle aid=hbooli Turns pen angle guideline printing on (default) or off. For example, to turn pen angle guideline printing off, the user may write pen angle aid=false. nib style=hnamei Set the style of the nib to hnamei. For example, to set the style of a fancy nib, the user may write nib style=fancy. nib width=hwidthi This is short hand for nib width in millimetres=hwidthi. nib width in millimetres=hwidthi Set the width of the nib to hwidthi mm. For example, to set the width of a nib to 3 mm, the user may write nib width in millimetres=3. Nib withs are parsed using the \pgfmathparse macro, so they may be any regular \pgfmath-parsable expression, e.g. “2 + 1/2,” or “2 + cos(30)/2,” or “2 + cos(pi/6r)/2.” nib width in inches=hwidthi Set the width of the nib to hwidthi inch. For example, to set the width of a nib to 3 inch, the user may write nib width in inches=3. Nib withs are parsed using the \pgfmathparse macro, so they may be any regular \pgfmath-parsable expression, e.g. “2 + 1/2,” or “2 + cos(30)/2,” or “2 + cos(pi/6r)/2.” waist line=hnwi Set the height of the waist line to hnwi nib widths. cap line=hnwi Set the height of the cap line to hnwi nib widths. line=hnwi Set the height of the ascender line to hnwi nib widths. line=hnwi Set the height of the descender line to hnwi nib widths. separation=hnwi Set the distance of two successive base lines to hnwi nib widths. angle=hanglei This sets the pen angle to hanglei degrees. slant=hanglei This sets the letter slant to hanglei degrees. script=hnamei This sets the name of the script to hnamei.

4.2 Defining the Number of Copies copies=hcounti This defines the number of times the sheet will be printed. The value of hcounti should be a non-negative integer. The default value of hcounti is 1.

4.3 High-Level High-Level Script Definitions

This section lists the predefined script styles. All scripts are defined using the following style, which takes three arguments. Usually, the arguments are put inside a pair of braces (curly brackets). define script=hnameihangleihcodei This defines a style with name hnamei. The result- ing style, hnamei, takes one argument for the pen angle, which is hanglei degrees

6 by default. When the user uses the style, the calligraphy-paper class first does some intialisation and then uses the style hcodei, which should define the script’ characteristics. It is the responsibility of the user to make sure hcodei contains the keys baseline separation=hnwi, slant=hanglei, and script=hnamei. If a script has minuscules, hcodei should also define the height of the minuscules with the key waist line=hnwi. If a script is a majuscule-only script, hcodei should also define the height of the majuscules with the key waist line=hnwi.1 If a script has ascenders, hcodei should also define the key ascender line=hnwi. If a script has , hcodei should also define the key descender line=hnwi. If a script has upper and lowercase letters, hcodei should also define the key cap line=hnwi.

The following example shows the code for the style italic, for a script called Italic, which comes with a default pen angle of 45. \ pgfkeys {/ calligraphy – paper /. cd , define script ={ italic } { 4 5 }% { waist line = 5 , cap line =7% , ascender line =9 , descender line =4% , baseline separation =14% , slant = 5 , script = Italic }} The following example shows how to define a style called trajan for a ten nib (brush) high majuscule script called Trajan. \ pgfkeys {/ calligraphy – paper /. cd , define script ={ trajan } { 2 0 }% { waist line =10% cap line really , baseline separation =12% , slant =0 , script = Trajan }} At the time of the calligraphy-paper class defines the following top-level scripts: italic=hanglei For the style italic=hanglei with name Italic, with a baseline separation of 14 nib widths, with a letter slant of 5◦, and with a default value for its hanglei argument of 45◦. The waist/cap/ascender/descender line heights are defined by 5/7/9/4 nib widths. foundational=hanglei For the style foundational=hanglei with name Foundational, with a baseline separation of 12 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 30◦. The waist/cap/ascender/descender line heights are defined by 4/6/7/3 nib widths. This definition is inspired by Camp [1980, Page 19].

1This is a bit -intuitive. Future versions will provide a better api.

7 gothic =hanglei For the style gothic blackletter=hanglei with name Gothic Blackletter, with a baseline separation of 10 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 40◦. The waist/cap/ascender/descen- der line heights are defined by 4/6/6/2 nib widths. trajan=hanglei For the style trajan=hanglei with name Trajan, with a baseline separa- tion of 12 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 20◦. The waist/cap/ascender/descender line heights are defined by na/10/na/na nib widths. roman rustic=hanglei For the style roman rustic=hanglei with name Roman Rustic, with a baseline separation of 8 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 45◦. The waist/cap/ascender/descender line heights are defined by na/6/na/na nib widths. uncial=hanglei For the style uncial=hanglei with name Uncial, with a baseline separation of 8 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argu- ment of 30◦. The waist/cap/ascender/descender line heights are defined by 4/na/7/4 nib widths. artificial uncial=hanglei For the style artificial uncial=hanglei with name Artificial Uncial, with a baseline separation of 10 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 30◦. The waist/cap/ascender/descender line heights are defined by 4/na/5.33/2 nib widths. roman half uncial=hanglei For the style roman half uncial=hanglei with name Roman Half Uncial, with a baseline separation of 8 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 20◦. The waist/cap/ascender/descen- der line heights are defined by 4/na/7/4 nib widths. insular majuscule=hanglei For the style insular majuscule=hanglei with name Insular Majuscule, with a baseline separation of 12 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 20◦. The waist/cap/ascender/descen- der line heights are defined by 5/na/7.5/2.5 nib widths. insular minuscule=hanglei For the style insular minuscule=hanglei with name Insular Minuscule, with a baseline separation of 12.5 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 45◦. The waist/cap/ascender/descen- der line heights are defined by 5/na/7.5/5, nib widths. luxeuil minuscule=hanglei For the style luxeuil minuscule=hanglei with name Luxeuil Minuscule, with a baseline separation of 15 nib widths, with a letter slant of 0◦, and with a default value for its hanglei argument of 45◦. The waist/cap/ascender/descen- der line heights are defined by 5/na/10/5, nib widths. =hanglei For the style carolingian minuscule=hanglei with name Carolingian Minuscule, with a baseline separation of 10 nib widths, with a letter slant

8 of 0◦, and with a default value for its hanglei argument of 45◦. The waist/cap/ascen- der/descender line heights are defined by 4/na/6/4, nib widths.

The sizes of the mediaeval scripts are mostly based on Drogin [1980]. Drogin [1980] usually only mentions a range for the pen angle and a range for the height of the minuscules, I fixed these to some “acceptable” values and had to guess the remaining heights and the baseline separation. All the default definitions of the previous keys/styles may change in future releases.

4.4 Mitchell Nib Definitions

This section shows the predefined definitions for Michell nibs. According to Scribler’s Website entry for Mitchell Nibs [2017] Willam Mitchell don’t publish the widths of their nibs. The widths for the nibs are based on the sizes on [John Neal’s Website entry for Mitchell Products 2017]. Scribler’s Website entry for Mitchell Round Hand Nibs [2017] does not (always) list the same widths.

M0 Configures the nib as Mitchell Round 0.

M1 Configures the nib as Mitchell Round 1.

M1.5 Configures the nib as Mitchell Round 1.5.

M2 Configures the nib as Mitchell Round 2.

M2.5 Configures the nib as Mitchell Round 2.5.

M3 Configures the nib as Mitchell Round 3.

M3.5 Configures the nib as Mitchell Round 3.5.

M4 Configures the nib as Mitchell Round 4.

M5 Configures the nib as Mitchell Round 5.

M6 Configures the nib as Mitchell Round 6.

4.5 Brause Pen Definitions

This section shows the predefined definitions for Brause nibs.

B0.5 Configures the nib as Brause Oblique with 0.5 mm width.

B0.75 Configures the nib as Brause Oblique with 0.75 mm width.

B1 Configures the nib as Brause Oblique with 1.0 mm width.

9 B1.5 Configures the nib as Brause Oblique with 1.5 mm width.

B2 Configures the nib as Brause Oblique with 2.0 mm width.

B2.5 Configures the nib as Brause Oblique with 2.5 mm width.

B3 Configures the nib as Brause Oblique with 3.0 mm width.

B4 Configures the nib as Brause Oblique with 4.0 mm width.

B5 Configures the nib as Brause Oblique with 5.0 mm width.

4.6 Speedball Pen Definitions

This section shows the predefined definitions for Speedball nibs.

C0 Configures the nib as a Speedball C0 nib.

C1 Configures the nib as a Speedball C1 nib.

C2 Configures the nib as a Speedball C2 nib.

C3 Configures the nib as a Speedball C3 nib.

C4 Configures the nib as a Speedball C4 nib.

C5 Configures the nib as a Speedball C5 nib.

C6 Configures the nib as a Speedball C6 nib.

4.7 Automatic Pen Definitions

This section shows the predefined definitions for automatic . automatic 1 Configures the nib for an Automatic 1 pen. automatic 2 Configures the nib for an Automatic 2 pen. automatic 3 Configures the nib for an Automatic 3 pen. automatic 3a Configures the nib for an Automatic 3a pen. automatic 4 Configures the nib for an Automatic 4 pen. automatic 5 Configures the nib for an Automatic 5 pen. automatic 6 Configures the nib for an Automatic 6 pen. automatic 6a Configures the nib for an Automatic 6a pen.

10 automatic 7 Configures the nib for an Automatic 7 pen. automatic 8 Configures the nib for an Automatic 8 pen. automatic 9 Configures the nib for an Automatic 9 pen. automatic 10 Configures the nib for an Automatic 10 pen. automatic 5 line Configures the nib for an Automatic 5 Line pen.

4.8 Pilot Pen Definitions

This section shows the predefined definitions for Pilot pens. pilot parallel 1.5 Configures the nib for a 1.5 mm wide Pilot Parallel Pen. pilot parallel 2.4 Configures the nib for a 2.4 mm wide Pilot Parallel Pen. pilot parallel 3.8 Configures the nib for a 3.8 mm wide Pilot Parallel Pen. pilot parallel 6.0 Configures the nib for a 6.0 mm wide Pilot Parallel Pen.

4.9 Pencil-Simulated Pen Definitions

This section shows the predefined definitions for nibs simulated with 2 — 4 parallel . It is assumed the pencils have a thickness of 7.5 mm. two pencils Configure the nib to two parallel pencils. three pencils Configure the nib to three parallel pencils. four pencils Configure the nib to four parallel pencils.

4.10 Defaults

The defaults keys of the \CalligraphyPaper command are comments=true, mitchell round=1, foundational, and pen angle aid=true.

11 Chapter 5 Examples

This section provides a couple of example. The following loads the class for an a4 portrait sheet and prints guidelines for Italic. The resulting guidelines will have a (default) pen angle of 45 degrees and a letter slant of 5 degrees. \ documentclass [ 1 2 pt , a 4 , portrait ]{ calligraphy – paper } \ begin { document } \ CalligraphyPaper { italic }% \ end { document } The following loads the class for an a3 landscape sheet and prints guidelines for Italic for a pen angle of 40 degrees but it redefines the basic setting for letter slant to 12 degrees. Redefining basic settings like this usually only works if you first set the script and then redefine the values for the basic settings. \ documentclass [ 1 2 pt , a 3 , landscape ]{ calligraphy – paper } \ begin { document } \ CalligraphyPaper { italic =40 , slant = 1 2 } \ end { document } The following loads the class for an a3 landscape sheet and prints ten guideline sheets for Italic and two guideline sheets for Foundational. The comment at the top of the second sheet has the current date in it and the comment at the top of the last sheet sets it to the text “Christmas, 2016.” Notice that the text has a in it, which is why it is put in braces (curly brackets). \ documentclass [ 1 2 pt , a 3 , landscape ]{ calligraphy – paper } \ begin { document } \ CalligraphyPaper { italic , copies =10} \ CalligraphyPaper { foundational , use current date } \ CalligraphyPaper { foundational , date ={ Christmas , 2 0 1 6 } } \ end { document }

12 Chapter 6 Class Maintenance and Bug Support

I don’t have much time to maintain this class but if you send me an email with a detailed, minimal-ish bug report, which should include a reproducible example of the bug, I will have a look and see if I can fix. I also welcome definitions for additional scripts or suggestions for changes to existing script definition. All emails should go to [email protected]. Please use the words “C¸©©¦¤¯¸­¥¶ ¤²¦¡¢©¦Å¢ ©¸Ê°” in the subject title (all uppercase).

13 Indexes

14 Style and Key Index

10pt, 4 c3, 4 11pt, 4 c4, 4 12pt, 3, 4 c5, 4 9pt, 4 c6, 4 cap line=hnwi, 6, 7 a0, 4 carolingian minuscule=hanglei, 8 a1, 4 carolingian minuscule=45 (default), 8 a2, 4 comments=hbooli, 5 a3, 3, 4 comments=false , 5 a4, 4 comments=true , 5, 11 a5, 4 copies=hcounti, 6 a6, 4 angle=hanglei, 6 date=hdatei , 5 ansia, 4 date, 5 ansib, 4 define script=hnameihangleihcodei, 6 ansic, 4 descender line=hnwi, 6, 7 ansid, 4 ansie, 4 executive, 4 artificial uncial=hanglei, 8 foundational=hanglei, 7 artificial uncial=30 (default), 8 foundational=30 (default), 7 ascender line=hnwi, 6, 7 gothic blackletter=hanglei, 8 b0, 4 gothic blackletter=40 (default), 8 b0j, 4 b1, 4 horizontal=hwidthi, 4 b1j, 4 b2, 4 insular majuscule=hanglei, 8 b2j, 4 insular majuscule=20 (default), 8 b3, 4 insular minuscule=hanglei, 8 b3j, 4 insular minuscule=45 (default), 8 b4, 4 italic=hanglei, 7 b4j, 4 italic, 7 b5, 4 italic=45 (default), 7 b5j, 4 b6, 4 landscape, 3, 4 b6j, 4 left=hwidthi, 4 baseline separation=hnwi, 6, 7 legal, 4 bottom=hwidthi, 4 letter, 4 luxeuil minuscule=hanglei, 8 c0, 4 luxeuil minuscule=45 (default), 8 c1, 4 c2, 4 margin=1.0cm , 3

15 mitchell round=1 , 11 nib style=hnamei, 6 nib style=fancy , 6 nib width=hwidthi, 6 nib width in inches=3 , 6 nib width in inches=hwidthi, 6 nib width in millimetres=3 , 6 nib width in millimetres=hwidthi, 6 one sided, 4 pen angle aid=hbooli, 6 pen angle aid=false , 6 pen angle aid=true , 11 portrait, 4 right=hwidthi, 4 roman half uncial=hanglei, 8 roman half uncial=20 (default), 8 roman rustic=hanglei, 8 roman rustic=45 (default), 8 script=hnamei, 6, 7 slant=hanglei, 6, 7 top=hwidthi, 4 trajan=hanglei, 8 trajan=20 (default), 8 two sided, 3, 4 uncial=hanglei, 8 uncial=30 (default), 8 use current date, 5 vertical=hwidthi, 4 waist line=hnwi, 6, 7

16 Script Index

Artificial Uncial, 8

Carolingian Minuscule, 8

Foundational, 7

Gothic Blackletter, 8

Insular Majuscule, 8 Insular Minuscule, 8 Italic, 7

Luxeuil Minuscule, 8

Roman Half Uncial, 8 Roman Rustic, 8

Trajan, 8

Uncial, 8

17 Bibliography

Camp, Ann [1980]. Pen . A & C Black. isbn: 0-7136-2415-9. Drogin, Marc [1980]. Medieval Calligraphy Its and Technique. Dover. John Neal’s Website entry for Mitchell Products [2017]. url: http://www.johnnealbooks.com/ prod_detail_list/s?keyword=mitchell+nibs. Scribler’s Website entry for Mitchell Round Hand Nibs [2017]. url: https://www.scribblers. co.uk/resources/william-mitchell-round-hand-nib-sizes/. Tantau, Till [2010]. TikZ & PGF. Version 2.00-cvs. Umeki, Hideo [2010]. The geometry Package. Version v5.6. Wright, Joseph [2010]. pgfopts—LATEX Package Options with pgfkeys. Version 2.0.

18