Build the handbook. Missing zinemaker step, but will later work out a bash script that builds the pages and automatically stitches a pdf for printing.

This commit is contained in:
Matt McWilliams 2022-08-31 16:26:18 -04:00
parent fbff95e21e
commit 616166b6e9
7 changed files with 342 additions and 5 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
handbook handbook
pdf/*handbook*

View File

@ -51,6 +51,9 @@ date: "March 1983"
| [Other Fades](#other-fades) | 16 | [Ritual and Art](#ritual-and-art) | 35 | | [Other Fades](#other-fades) | 16 | [Ritual and Art](#ritual-and-art) | 35 |
::: :::
::: {.indexTableEnd}
:::
\newpage \newpage
\pagenumbering{arabic} \pagenumbering{arabic}
@ -1173,6 +1176,8 @@ Example of a joint color and brightness test:
> Each line in the chart represents CC filtration to be added to an initial guess of the right CC's. At each line make a series of ND variations surrounding an initial guess of the right ND. Perhaps the guess -.50, -.40, -.30, -.20, -.10, the guese itself, +.10, +.20, and +.30. The series is lopsided because the CC filtrations are all added to the CC guess. The 37 CC variations X the 9 ND variations = a 333 frame > Each line in the chart represents CC filtration to be added to an initial guess of the right CC's. At each line make a series of ND variations surrounding an initial guess of the right ND. Perhaps the guess -.50, -.40, -.30, -.20, -.10, the guese itself, +.10, +.20, and +.30. The series is lopsided because the CC filtrations are all added to the CC guess. The 37 CC variations X the 9 ND variations = a 333 frame
test. test.
::: {.ymcTable}
| Y | M | C | | Y | M | C |
|-----|-----|-----| |-----|-----|-----|
| 0 | 0 | 0 | | 0 | 0 | 0 |
@ -1213,6 +1218,8 @@ test.
| 30 | 20 | 0 | | 30 | 20 | 0 |
| 30 | 30 | 0 | | 30 | 30 | 0 |
:::
**![Diagram depicting the CC chart plotted on 3 axes: +M, +Y, +C](img/image_9.jpg)** **![Diagram depicting the CC chart plotted on 3 axes: +M, +Y, +C](img/image_9.jpg)**
A joint color and brightness test is a net spread over the logical region around an initial guesea, to catch the right exposure. A joint color and brightness test is a net spread over the logical region around an initial guesea, to catch the right exposure.

3
build_handbook.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
convert "handbook/zine_*.jpg" -quality 100 ./pdf/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE_handbook.pdf

View File

@ -11,13 +11,40 @@ if [ ! -f ./handbook/cmunrm.otf ]; then
cd .. cd ..
fi fi
HANDBOOK="./handbook"
TMP_HTML="$(realpath ./handbook/index.html)" TMP_HTML="$(realpath ./handbook/index.html)"
HTML="html/index.html" HTML="html/index.html"
LAYOUT_PDF="handbook/layout.pdf" LAYOUT_PDF="handbook/layout.pdf"
BODY_HTML="handbook/body.html"
INDEX_TABLE_HTML="$(cat ./tmpl/handbook_index.html)"
rm -f "${BODY_HTML}"
WRITING=0
INDEX_TABLE=0
while read p; do
if [ ${WRITING} -eq 0 ] && [[ "${p}" == *"<body>"* ]]; then
WRITING=1
fi
if [ ${WRITING} -eq 1 ] && [[ "${p}" == *"</body>"* ]]; then
WRITING=0
fi
if [ ${INDEX_TABLE} -eq 0 ] && [[ "${p}" == *"class=\"indexTable\""* ]]; then
INDEX_TABLE=1
echo "${INDEX_TABLE_HTML}" >> "${BODY_HTML}"
fi
if [ ${INDEX_TABLE} -eq 1 ] && [[ "${p}" == *"</div>"* ]]; then
INDEX_TABLE=0
fi
if [ ${WRITING} -eq 1 ] && [ ${INDEX_TABLE} -eq 0 ]; then
echo "$p" >> "${BODY_HTML}"
fi
done < "${HTML}"
BODY_VAR="{{BODY_HTML}}" BODY_VAR="{{BODY_HTML}}"
TMPL_HTML=`cat tmpl/layout.html.tmpl` TMPL_HTML=`cat tmpl/layout.html.tmpl`
BODY_CONTENT=`cat "${HTML}"` BODY_CONTENT=`cat "${BODY_HTML}"`
FONT=`cat handbook/cmunrm.txt | tr -d '\n'` FONT=`cat handbook/cmunrm.txt | tr -d '\n'`
BODY_CONTENT="${BODY_CONTENT//.svg/.jpg}" BODY_CONTENT="${BODY_CONTENT//.svg/.jpg}"
@ -37,8 +64,27 @@ chromium-browser \
cd handbook cd handbook
rm -f page-*.jpg
#convert -density 600 "../${LAYOUT_PDF}" -quality 90 page-%3d.jpg #convert -density 600 "../${LAYOUT_PDF}" -quality 90 page-%3d.jpg
#pdftoppm "../${LAYOUT_PDF}" page -jpeg -rx 600 -ry 600 pdftoppm "../${LAYOUT_PDF}" page -jpeg -rx 600 -ry 600
convert -size 5100x6601 xc:white blank.jpg
cp blank.jpg page-0.jpg
cp blank.jpg page-00.jpg
pages=`ls page-*.jpg`
i=-1
for page in $pages
do
#5100x6601
if [ ${i} -gt 0 ]; then
echo "Numbering [$i] $page"
convert "${page}" -gravity North -pointsize 180 -draw 'text 0,6450 "'${i}'"' "${page}"
fi
let i=i+1
done
cd .. cd ..
#rm -f "${TMP_HTML}" #rm -f "${TMP_HTML}"

241
tmpl/handbook_index.html Normal file
View File

@ -0,0 +1,241 @@
<div class="indexTable">
<!-- HANDBOOK_INDEX_TABLE -->
<table>
<tbody>
<tr class="odd">
<td><a href="#magnification">Magnification</a></td>
<td>2</td>
<td><a href="#fades-in-original">Fades in Original</a></td>
<td>26</td>
</tr>
<tr class="even">
<td><a href="#blowup-and-reduction">Blowup &amp; Reduction</a></td>
<td>3</td>
<td><a href="#chart-c">Chart C: Neutral Density</a></td>
<td></td>
</tr>
<tr class="odd">
<td><a href="#blowup-sharpness">Blowup Sharpness</a></td>
<td>3</td>
<td><a href="#chart-c">and Equivalent Shutter</a></td>
<td></td>
</tr>
<tr class="even">
<td><a href="#printer-lenses">Printer Lenses</a></td>
<td>4</td>
<td><a href="#chart-c">Angle</a></td>
<td>29</td>
</tr>
<tr class="odd">
<td><a href="#optical-zoom">Optical Zoom</a></td>
<td>5</td>
<td><a href="#image-superposition">Image Superposition</a></td>
<td>31</td>
</tr>
<tr class="even">
<td><a href="#lens-aperature">Lens Aperture</a></td>
<td>6</td>
<td><a href="#gamma-and-bipack">Gamma &amp; Bipack</a></td>
<td>31</td>
</tr>
<tr class="odd">
<td><a href="#focusing">Focusing</a></td>
<td>6</td>
<td><a href="#incidentally">Incidentally</a></td>
<td>33</td>
</tr>
<tr class="even">
<td><a href="#focusing-aperature">Focusing Aperture</a></td>
<td>6</td>
<td><a href="#exposure-compensation">Exposure Compensation</a></td>
<td>35</td>
</tr>
<tr class="odd">
<td><a href="#focusing-reprision">Focusing Precision</a></td>
<td>6</td>
<td><a href="#special-originals">Special Originals</a></td>
<td>35</td>
</tr>
<tr class="even">
<td><a href="#focusing-target">Focusing Target</a></td>
<td>6</td>
<td><a href="#texturing">Texturing</a></td>
<td>36</td>
</tr>
<tr class="odd">
<td><a href="#depth-of-field">Depth of Field</a></td>
<td>7</td>
<td><a href="#multi-exposure">Multi-Exposure</a></td>
<td>37</td>
</tr>
<tr class="even">
<td><a href="#bolex-prism">Bolex Prism</a></td>
<td>7</td>
<td><a href="#multi-pack">Multi-Pack</a></td>
<td>37</td>
</tr>
<tr class="odd">
<td><a href="#bolex-groundglass">Bolex Groundglass</a></td>
<td>7</td>
<td><a href="#natural-superposition">Natural Superposition</a></td>
<td>37</td>
</tr>
<tr class="even">
<td><a href="#defocus">Defocus</a></td>
<td>7</td>
<td><a href="#flashing">Flashing</a></td>
<td>38</td>
</tr>
<tr class="odd">
<td><a href="#x-y-adjustment">X-Y Adjustment</a></td>
<td>7</td>
<td><a href="#contrast-adjustment">Contrast Adjustment</a></td>
<td>38</td>
</tr>
<tr class="even">
<td><a href="#exact-1-1">Exact 1:1</a></td>
<td>8</td>
<td><a href="#color-image-superposition">Color Image Superposition</a></td>
<td>39</td>
</tr>
<tr class="odd">
<td><a href="#aimframe">Aimframe</a></td>
<td>9</td>
<td><a href="#weighted-double-exposures">Weighted Double Exposures</a></td>
<td>40</td>
</tr>
<tr class="even">
<td><a href="#framelines">Framelines</a></td>
<td>11</td>
<td><a href="#dissolves">Dissolves</a></td>
<td>41</td>
</tr>
<tr class="odd">
<td><a href="#emulsion-position">Emulsion Position</a></td>
<td>12</td>
<td><a href="#effects-dissolves">Effects Dissolves</a></td>
<td>41</td>
</tr>
<tr class="even">
<td><a href="#time">Time</a></td>
<td>14</td>
<td><a href="#fades-from-negative">Fades from Negative</a></td>
<td>42</td>
</tr>
<tr class="odd">
<td><a href="#fancy-freeze">Fancy Freeze</a></td>
<td>15</td>
<td><a href="#color-exposure">Color Exposure</a></td>
<td>42</td>
</tr>
<tr class="even">
<td><a href="#fancy-slow">Fancy Slow</a></td>
<td>15</td>
<td><a href="#testing">Testing</a></td>
<td>43</td>
</tr>
<tr class="odd">
<td><a href="#diffusers">Diffusers</a></td>
<td>15</td>
<td><a href="#cc-pack-reduction">CC Pack Reduction</a></td>
<td>47</td>
</tr>
<tr class="even">
<td><a href="#uv-filter">UV Filter</a></td>
<td>16</td>
<td><a href="#high-contrast-prints">High Contrast Prints</a></td>
<td>48</td>
</tr>
<tr class="odd">
<td><a href="#ir-filter">IR Filter</a></td>
<td>16</td>
<td><a href="#hicon-exposure">Hicon Exposure</a></td>
<td>49</td>
</tr>
<tr class="even">
<td><a href="#green-filter">Green Filter</a></td>
<td>17</td>
<td><a href="#contrast-building-steps">Contrast Building Steps</a></td>
<td>50</td>
</tr>
<tr class="odd">
<td><a href="#filter-location">Filter Location</a></td>
<td>17</td>
<td><a href="#hicon-speckle">Hicon Speckle</a></td>
<td>50</td>
</tr>
<tr class="even">
<td><a href="#exposure">Exposure</a></td>
<td>17</td>
<td><a href="#tone-isolation">Tone Isolation</a></td>
<td>51</td>
</tr>
<tr class="odd">
<td><a href="#exposure-adjusters">Exposure Adjusters</a></td>
<td>18</td>
<td><a href="#logic-of-mask-combination">Logic of Mask Combination</a></td>
<td>51</td>
</tr>
<tr class="even">
<td><a href="#specifying-exposure">Specifying Exposure</a></td>
<td>19</td>
<td><a href="#image-spread-and-bloom">Image Spread and Bloom</a></td>
<td>52</td>
</tr>
<tr class="odd">
<td><a href="#film-speed">Film Speed</a></td>
<td>19</td>
<td><a href="#mask-and-countermask">Mask and Countermask</a></td>
<td>53</td>
</tr>
<tr class="even">
<td><a href="#right-exposure">Right Exposure</a></td>
<td>20</td>
<td><a href="#reversal-negative-fitting">Reversal/Negative Fitting</a></td>
<td>53</td>
</tr>
<tr class="odd">
<td><a href="#generations">Generations</a></td>
<td>20</td>
<td><a href="#feathered-masks">Feathered Masks</a></td>
<td>54</td>
</tr>
<tr class="even">
<td><a href="#bellows-formula">Bellows Formula</a></td>
<td>23</td>
<td><a href="#image-marriage">Image Marriage</a></td>
<td>55</td>
</tr>
<tr class="odd">
<td><a href="#fades">Fades</a></td>
<td>24</td>
<td><a href="#mask-blackness">Mask Blackness</a></td>
<td>56</td>
</tr>
<tr class="even">
<td><a href="#log-fade">Log Fade</a></td>
<td>24</td>
<td><a href="#hicons-from-color-originals">Hicons from Color Originals</a></td>
<td>56</td>
</tr>
<tr class="odd">
<td><a href="#bolex-variable-shutter">Bolex Variable Shutter</a></td>
<td>25</td>
<td><a href="#hicon-processing">Hicon Processing</a></td>
<td>57</td>
</tr>
<tr class="even">
<td><a href="#linear-fade">Linear Fade</a></td>
<td>25</td>
<td><a href="#optical-printed-release-prints">Optical Printed Release Prints</a></td>
<td>58</td>
</tr>
<tr class="odd">
<td><a href="#other-fades">Other Fades</a></td>
<td>25</td>
<td><a href="#ritual-and-art">Ritual and Art</a></td>
<td>59</td>
</tr>
</tbody>
</table>
</div>

View File

@ -1,6 +1,7 @@
<!doctype html> <!doctype html>
<html> <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head> <head>
<meta charset="utf-8" />
<title></title> <title></title>
<style> <style>
@font-face { @font-face {
@ -15,6 +16,10 @@
font-family: "cmu"; font-family: "cmu";
} }
@page { padding: 0.5cm 0.5cm 1cm 0.5cm; } @page { padding: 0.5cm 0.5cm 1cm 0.5cm; }
a{
text-decoration: none;
color: #000;
}
img { img {
width: 90vw; width: 90vw;
height: auto; height: auto;
@ -24,11 +29,45 @@
font-size: 32px; font-size: 32px;
font-family: monospace; font-family: monospace;
} }
pre{ pre {
size: 18.45cm 21cm; size: 18.45cm 21cm;
margin: 0; margin: 0;
background: rgb(225, 225, 225); background: rgb(225, 225, 225);
} }
.indexTable{
margin-top: 90px;
margin-bottom: 120px;
}
th,
td,
p,
li{
font-size: 0.75em;
}
.indexTable tr > td:nth-child(2) {
padding-right: 20px;
}
.ymcTable tr td {
padding-left: 10px;
padding-right: 10px;
}
h1{
font-size: 1.25em;
text-align: center;
}
h2 {
font-size: 0.9em;
text-align: center;
}
p.author,
p.date{
text-align: center;
}
table{
margin-left: auto;
margin-right: auto;
}
} }
</style> </style>
</head> </head>