Calligraphy-Doc
Total Page:16
File Type:pdf, Size:1020Kb
±he ºalligraphy-Çaper las (Í0.10) Ä. É. van »onge ¸pri 17, 2017 Abstract Drawing guidelines for calligraphy scripts is tedious and may take long. When practis- ing their scripts, some calligraphers may prefer using computer-generated and printed guideline sheets. This document provides a quick introduction to the LATEX calligraphy-paper 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 Page 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 Nib Definitions . 9 4.5 Brause Pen Definitions . 9 4.6 Speedball Pen Definitions . 10 4.7 Automatic Pen Definitions . 10 4.8 Pilot Pen Definitions . 11 4.9 Pencil-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 page layout 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 shorthands 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, margin=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 letter 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 point 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 printing 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. ascender line=hnwi Set the height of the ascender line to hnwi nib widths. descender line=hnwi Set the height of the descender line to hnwi nib widths. baseline 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’s 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 descenders, 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.