123 Commits
-
13.gitignore
-
108001/build/codex-001.log
-
BIN001/build/codex-001.pdf
-
BIN001/build/codex-001.synctex.gz
-
13001/codex-001.tex
-
21002/build/codex-002.aux
-
893002/build/codex-002.log
-
1002/build/codex-002.out
-
BIN002/build/codex-002.pdf
-
BIN002/build/codex-002.synctex.gz
-
1002/build/codex-002.toc
-
870002/codex-002.tex
-
BIN002/images/Unix_timeline_en.png
-
BIN002/images/advanced.png
-
BIN002/images/beginner.png
-
BIN002/images/c128-scaled.jpg
-
BIN002/images/c128.jpg
-
BIN002/images/c64-scaled.png
-
BIN002/images/c64.png
-
BIN002/images/cheat_sheet.jpg
-
BIN002/images/codeck.png
-
BIN002/images/intermediate.png
-
BIN002/images/notebook.jpg
-
BIN002/images/number_blank_pages.jpg
-
BIN002/images/number_your_sections.jpg
-
BIN002/images/paper_cutter.jpg
-
BIN002/images/pdfchain_-_title.png
-
BIN002/images/pythagorean_theorem.pdf
-
BIN002/images/pythagorean_theorem2.pdf
-
BIN002/images/ready_to_scan.jpg
-
BIN003/build/codex-003.pdf
-
BIN003/build/songs-01.pdf
-
BIN003/build/songs-02.pdf
-
1036003/codex-003.tex
-
BIN003/images/DEC_VT100_terminal.jpg
-
BIN003/images/Unix_timeline_en.png
-
BIN003/images/codeck.png
-
BIN003/images/ncsa4-0.png
-
BIN003/images/songs-01.pdf
-
BIN003/images/songs-02.pdf
-
BIN003/images/vt100.jpg
-
7003/songs-01.tex
-
7003/songs-02.tex
-
551004/codex-004.tex
-
BIN004/images/codeck.png
-
BIN004/images/flavours.png
-
BIN004/images/ncsa4-0.png
-
60README.md
@ -1,2 +1,15 @@ |
|||
Covers |
|||
*bklt* |
|||
*.aux |
|||
*.log |
|||
*.out |
|||
*.synctex.gz |
|||
*.toc |
|||
*.dvi |
|||
*.odt |
|||
metric* |
|||
*.mx1 |
|||
*.abc |
|||
*.bak |
|||
*wc* |
|||
*drafts* |
@ -1,21 +0,0 @@ |
|||
\relax |
|||
\providecommand\hyper@newdestlabel[2]{} |
|||
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} |
|||
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined |
|||
\global\let\oldcontentsline\contentsline |
|||
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} |
|||
\global\let\oldnewlabel\newlabel |
|||
\gdef\newlabel#1#2{\newlabelxx{#1}#2} |
|||
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} |
|||
\AtEndDocument{\ifx\hyper@anchor\@undefined |
|||
\let\contentsline\oldcontentsline |
|||
\let\newlabel\oldnewlabel |
|||
\fi} |
|||
\fi} |
|||
\global\let\hyper@last\relax |
|||
\gdef\HyperFirstAtBeginDocument#1{#1} |
|||
\providecommand\HyField@AuxAddToFields[1]{} |
|||
\providecommand\HyField@AuxAddToCoFields[2]{} |
|||
\@writefile{toc}{\contentsline {chapter}{\numberline {1}The Early Salad Days, continued}{4}{chapter.1}\protected@file@percent } |
|||
\@writefile{lof}{\addvspace {10\p@ }} |
|||
\@writefile{lot}{\addvspace {10\p@ }} |
@ -1,893 +0,0 @@ |
|||
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2021.9.5) 24 SEP 2021 18:42 |
|||
entering extended mode |
|||
restricted \write18 enabled. |
|||
%&-line parsing enabled. |
|||
**codex-002.tex |
|||
(./codex-002.tex |
|||
LaTeX2e <2020-02-02> patch level 2 |
|||
L3 programming layer <2020-02-14> |
|||
(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls |
|||
Document Class: report 2019/12/20 v1.4l Standard LaTeX document class |
|||
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo |
|||
File: size10.clo 2019/12/20 v1.4l Standard LaTeX file (size option) |
|||
) |
|||
\c@part=\count167 |
|||
\c@chapter=\count168 |
|||
\c@section=\count169 |
|||
\c@subsection=\count170 |
|||
\c@subsubsection=\count171 |
|||
\c@paragraph=\count172 |
|||
\c@subparagraph=\count173 |
|||
\c@figure=\count174 |
|||
\c@table=\count175 |
|||
\abovecaptionskip=\skip47 |
|||
\belowcaptionskip=\skip48 |
|||
\bibindent=\dimen134 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty |
|||
Package: inputenc 2018/08/11 v1.3c Input encoding file |
|||
\inpenc@prehook=\toks14 |
|||
\inpenc@posthook=\toks15 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty |
|||
Package: amsmath 2020/01/20 v2.17e AMS math features |
|||
\@mathmargin=\skip49 |
|||
|
|||
For additional information on amsmath, use the `?' option. |
|||
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty |
|||
Package: amstext 2000/06/29 v2.01 AMS text |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty |
|||
File: amsgen.sty 1999/11/30 v2.0 generic functions |
|||
\@emptytoks=\toks16 |
|||
\ex@=\dimen135 |
|||
)) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty |
|||
Package: amsbsy 1999/11/29 v1.2d Bold Symbols |
|||
\pmbraise@=\dimen136 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty |
|||
Package: amsopn 2016/03/08 v2.02 operator names |
|||
) |
|||
\inf@bad=\count176 |
|||
LaTeX Info: Redefining \frac on input line 227. |
|||
\uproot@=\count177 |
|||
\leftroot@=\count178 |
|||
LaTeX Info: Redefining \overline on input line 389. |
|||
\classnum@=\count179 |
|||
\DOTSCASE@=\count180 |
|||
LaTeX Info: Redefining \ldots on input line 486. |
|||
LaTeX Info: Redefining \dots on input line 489. |
|||
LaTeX Info: Redefining \cdots on input line 610. |
|||
\Mathstrutbox@=\box45 |
|||
\strutbox@=\box46 |
|||
\big@size=\dimen137 |
|||
LaTeX Font Info: Redeclaring font encoding OML on input line 733. |
|||
LaTeX Font Info: Redeclaring font encoding OMS on input line 734. |
|||
\macc@depth=\count181 |
|||
\c@MaxMatrixCols=\count182 |
|||
\dotsspace@=\muskip16 |
|||
\c@parentequation=\count183 |
|||
\dspbrk@lvl=\count184 |
|||
\tag@help=\toks17 |
|||
\row@=\count185 |
|||
\column@=\count186 |
|||
\maxfields@=\count187 |
|||
\andhelp@=\toks18 |
|||
\eqnshift@=\dimen138 |
|||
\alignsep@=\dimen139 |
|||
\tagshift@=\dimen140 |
|||
\tagwidth@=\dimen141 |
|||
\totwidth@=\dimen142 |
|||
\lineht@=\dimen143 |
|||
\@envbody=\toks19 |
|||
\multlinegap=\skip50 |
|||
\multlinetaggap=\skip51 |
|||
\mathdisplay@stack=\toks20 |
|||
LaTeX Info: Redefining \[ on input line 2859. |
|||
LaTeX Info: Redefining \] on input line 2860. |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty |
|||
Package: amssymb 2013/01/14 v3.01 AMS font symbols |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty |
|||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support |
|||
\symAMSa=\mathgroup4 |
|||
\symAMSb=\mathgroup5 |
|||
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' |
|||
(Font) U/euf/m/n --> U/euf/b/n on input line 106. |
|||
)) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty |
|||
Package: makeidx 2014/09/29 v1.0m Standard LaTeX package |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty |
|||
Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR) |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty |
|||
Package: keyval 2014/10/28 v1.15 key=value parser (DPC) |
|||
\KV@toks@=\toks21 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty |
|||
Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR) |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty |
|||
Package: trig 2016/01/03 v1.10 sin cos tan (DPC) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg |
|||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration |
|||
) |
|||
Package graphics Info: Driver file: pdftex.def on input line 105. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def |
|||
File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex |
|||
)) |
|||
\Gin@req@height=\dimen144 |
|||
\Gin@req@width=\dimen145 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/kpfonts.sty |
|||
Package: kpfonts 2010/08/20 v3.31 |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty |
|||
Package: textcomp 2020/02/02 v2.0n Standard LaTeX package |
|||
LaTeX Font Info: Changing ? sub-encoding to TS1/0 on input line 75. |
|||
) |
|||
\c@mv@rm=\count188 |
|||
\c@mv@boldrm=\count189 |
|||
\c@mv@sf=\count190 |
|||
\c@mv@boldsf=\count191 |
|||
LaTeX Font Info: Redeclaring symbol font `operators' on input line 354. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `normal' |
|||
(Font) OT1/cmr/m/n --> OT1/jkp/m/n on input line 354. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `bold' |
|||
(Font) OT1/cmr/bx/n --> OT1/jkp/m/n on input line 354. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `rm' |
|||
(Font) OT1/cmr/m/n --> OT1/jkp/m/n on input line 354. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `boldrm' |
|||
(Font) OT1/cmr/m/n --> OT1/jkp/m/n on input line 354. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `sf' |
|||
(Font) OT1/cmr/m/n --> OT1/jkp/m/n on input line 354. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `boldsf' |
|||
(Font) OT1/cmr/m/n --> OT1/jkp/m/n on input line 354. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `bold' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/b/n on input line 355. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `rm' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/m/n on input line 357. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `boldrm' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/b/n on input line 358. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `sf' |
|||
(Font) OT1/jkp/m/n --> OT1/jkpss/m/n on input line 359. |
|||
LaTeX Font Info: Overwriting symbol font `operators' in version `boldsf' |
|||
(Font) OT1/jkp/m/n --> OT1/jkpss/b/n on input line 360. |
|||
LaTeX Font Info: Redeclaring math alphabet \mathrm on input line 364. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/b/n on input line 365. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `rm' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/m/n on input line 366. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `boldrm' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/b/n on input line 367. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `sf' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/m/n on input line 368. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `boldsf' |
|||
(Font) OT1/jkp/m/n --> OT1/jkp/b/n on input line 369. |
|||
LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 378. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' |
|||
(Font) OT1/cmr/bx/n --> OT1/jkp/b/n on input line 378. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' |
|||
(Font) OT1/cmr/bx/n --> OT1/jkp/b/n on input line 378. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `rm' |
|||
(Font) OT1/cmr/bx/n --> OT1/jkp/b/n on input line 378. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `boldrm' |
|||
(Font) OT1/cmr/bx/n --> OT1/jkp/b/n on input line 378. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `sf' |
|||
(Font) OT1/cmr/bx/n --> OT1/jkp/b/n on input line 378. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `boldsf' |
|||
(Font) OT1/cmr/bx/n --> OT1/jkp/b/n on input line 378. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' |
|||
(Font) OT1/jkp/b/n --> OT1/jkp/b/n on input line 379. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `rm' |
|||
(Font) OT1/jkp/b/n --> OT1/jkp/b/n on input line 381. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `boldrm' |
|||
(Font) OT1/jkp/b/n --> OT1/jkp/b/n on input line 382. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `sf' |
|||
(Font) OT1/jkp/b/n --> OT1/jkpss/b/n on input line 383. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `boldsf' |
|||
(Font) OT1/jkp/b/n --> OT1/jkpss/b/n on input line 384. |
|||
LaTeX Font Info: Redeclaring math alphabet \mathit on input line 390. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' |
|||
(Font) OT1/cmr/m/it --> OT1/jkp/m/it on input line 390. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' |
|||
(Font) OT1/cmr/bx/it --> OT1/jkp/m/it on input line 390. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `rm' |
|||
(Font) OT1/cmr/m/it --> OT1/jkp/m/it on input line 390. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `boldrm' |
|||
(Font) OT1/cmr/m/it --> OT1/jkp/m/it on input line 390. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `sf' |
|||
(Font) OT1/cmr/m/it --> OT1/jkp/m/it on input line 390. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `boldsf' |
|||
(Font) OT1/cmr/m/it --> OT1/jkp/m/it on input line 390. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' |
|||
(Font) OT1/jkp/m/it --> OT1/jkp/b/it on input line 391. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `rm' |
|||
(Font) OT1/jkp/m/it --> OT1/jkp/m/it on input line 393. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `boldrm' |
|||
(Font) OT1/jkp/m/it --> OT1/jkp/b/it on input line 394. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `sf' |
|||
(Font) OT1/jkp/m/it --> OT1/jkpss/m/it on input line 395. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `boldsf' |
|||
(Font) OT1/jkp/m/it --> OT1/jkpss/b/it on input line 396. |
|||
LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 401. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' |
|||
(Font) OT1/cmss/m/n --> OT1/jkpss/m/n on input line 401. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' |
|||
(Font) OT1/cmss/bx/n --> OT1/jkpss/m/n on input line 401. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `rm' |
|||
(Font) OT1/cmss/m/n --> OT1/jkpss/m/n on input line 401. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `boldrm' |
|||
(Font) OT1/cmss/m/n --> OT1/jkpss/m/n on input line 401. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `sf' |
|||
(Font) OT1/cmss/m/n --> OT1/jkpss/m/n on input line 401. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `boldsf' |
|||
(Font) OT1/cmss/m/n --> OT1/jkpss/m/n on input line 401. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' |
|||
(Font) OT1/jkpss/m/n --> OT1/jkpss/b/n on input line 402. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `rm' |
|||
(Font) OT1/jkpss/m/n --> OT1/jkpss/m/n on input line 403. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `boldrm' |
|||
(Font) OT1/jkpss/m/n --> OT1/jkpss/b/n on input line 404. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `sf' |
|||
(Font) OT1/jkpss/m/n --> OT1/jkpss/m/n on input line 405. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `boldsf' |
|||
(Font) OT1/jkpss/m/n --> OT1/jkpss/b/n on input line 406. |
|||
LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 410. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' |
|||
(Font) OT1/cmtt/m/n --> OT1/jkptt/m/n on input line 410. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' |
|||
(Font) OT1/cmtt/m/n --> OT1/jkptt/m/n on input line 410. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `rm' |
|||
(Font) OT1/cmtt/m/n --> OT1/jkptt/m/n on input line 410. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `boldrm' |
|||
(Font) OT1/cmtt/m/n --> OT1/jkptt/m/n on input line 410. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `sf' |
|||
(Font) OT1/cmtt/m/n --> OT1/jkptt/m/n on input line 410. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `boldsf' |
|||
(Font) OT1/cmtt/m/n --> OT1/jkptt/m/n on input line 410. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' |
|||
(Font) OT1/jkptt/m/n --> OT1/jkptt/b/n on input line 411. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `rm' |
|||
(Font) OT1/jkptt/m/n --> OT1/jkptt/m/n on input line 412. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `boldrm' |
|||
(Font) OT1/jkptt/m/n --> OT1/jkptt/b/n on input line 413. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `sf' |
|||
(Font) OT1/jkptt/m/n --> OT1/jkptt/m/n on input line 414. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `boldsf' |
|||
(Font) OT1/jkptt/m/n --> OT1/jkptt/b/n on input line 415. |
|||
LaTeX Font Info: Redeclaring symbol font `letters' on input line 423. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `normal' |
|||
(Font) OML/cmm/m/it --> OML/jkp/m/it on input line 423. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `bold' |
|||
(Font) OML/cmm/b/it --> OML/jkp/m/it on input line 423. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `rm' |
|||
(Font) OML/cmm/m/it --> OML/jkp/m/it on input line 423. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `boldrm' |
|||
(Font) OML/cmm/m/it --> OML/jkp/m/it on input line 423. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `sf' |
|||
(Font) OML/cmm/m/it --> OML/jkp/m/it on input line 423. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `boldsf' |
|||
(Font) OML/cmm/m/it --> OML/jkp/m/it on input line 423. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `bold' |
|||
(Font) OML/jkp/m/it --> OML/jkp/bx/it on input line 424. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `rm' |
|||
(Font) OML/jkp/m/it --> OML/jkp/m/it on input line 426. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `boldrm' |
|||
(Font) OML/jkp/m/it --> OML/jkp/bx/it on input line 427. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `sf' |
|||
(Font) OML/jkp/m/it --> OML/jkpss/m/it on input line 428. |
|||
LaTeX Font Info: Overwriting symbol font `letters' in version `boldsf' |
|||
(Font) OML/jkp/m/it --> OML/jkpss/bx/it on input line 429. |
|||
\symlettersA=\mathgroup6 |
|||
LaTeX Font Info: Overwriting symbol font `lettersA' in version `bold' |
|||
(Font) U/jkpmia/m/it --> U/jkpmia/bx/it on input line 439. |
|||
LaTeX Font Info: Overwriting symbol font `lettersA' in version `rm' |
|||
(Font) U/jkpmia/m/it --> U/jkpmia/m/it on input line 441. |
|||
LaTeX Font Info: Overwriting symbol font `lettersA' in version `boldrm' |
|||
(Font) U/jkpmia/m/it --> U/jkpmia/bx/it on input line 442. |
|||
LaTeX Font Info: Overwriting symbol font `lettersA' in version `sf' |
|||
(Font) U/jkpmia/m/it --> U/jkpssmia/m/it on input line 443. |
|||
LaTeX Font Info: Overwriting symbol font `lettersA' in version `boldsf' |
|||
(Font) U/jkpmia/m/it --> U/jkpssmia/bx/it on input line 444. |
|||
LaTeX Font Info: Redeclaring math alphabet \mathfrak on input line 447. |
|||
LaTeX Font Info: Redeclaring symbol font `symbols' on input line 456. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' |
|||
(Font) OMS/cmsy/m/n --> OMS/jkp/m/n on input line 456. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' |
|||
(Font) OMS/cmsy/b/n --> OMS/jkp/m/n on input line 456. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `rm' |
|||
(Font) OMS/cmsy/m/n --> OMS/jkp/m/n on input line 456. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `boldrm' |
|||
(Font) OMS/cmsy/m/n --> OMS/jkp/m/n on input line 456. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `sf' |
|||
(Font) OMS/cmsy/m/n --> OMS/jkp/m/n on input line 456. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `boldsf' |
|||
(Font) OMS/cmsy/m/n --> OMS/jkp/m/n on input line 456. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' |
|||
(Font) OMS/jkp/m/n --> OMS/jkp/bx/n on input line 457. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `rm' |
|||
(Font) OMS/jkp/m/n --> OMS/jkp/m/n on input line 459. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `boldrm' |
|||
(Font) OMS/jkp/m/n --> OMS/jkp/bx/n on input line 460. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `sf' |
|||
(Font) OMS/jkp/m/n --> OMS/jkp/m/n on input line 461. |
|||
LaTeX Font Info: Overwriting symbol font `symbols' in version `boldsf' |
|||
(Font) OMS/jkp/m/n --> OMS/jkp/bx/n on input line 462. |
|||
LaTeX Font Info: Redeclaring symbol font `AMSa' on input line 475. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `normal' |
|||
(Font) U/msa/m/n --> U/jkpsya/m/n on input line 475. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold' |
|||
(Font) U/msa/m/n --> U/jkpsya/m/n on input line 475. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `rm' |
|||
(Font) U/msa/m/n --> U/jkpsya/m/n on input line 475. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `boldrm' |
|||
(Font) U/msa/m/n --> U/jkpsya/m/n on input line 475. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `sf' |
|||
(Font) U/msa/m/n --> U/jkpsya/m/n on input line 475. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `boldsf' |
|||
(Font) U/msa/m/n --> U/jkpsya/m/n on input line 475. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold' |
|||
(Font) U/jkpsya/m/n --> U/jkpsya/bx/n on input line 476. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `rm' |
|||
(Font) U/jkpsya/m/n --> U/jkpsya/m/n on input line 477. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `boldrm' |
|||
(Font) U/jkpsya/m/n --> U/jkpsya/bx/n on input line 478. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `sf' |
|||
(Font) U/jkpsya/m/n --> U/jkpsya/m/n on input line 479. |
|||
LaTeX Font Info: Overwriting symbol font `AMSa' in version `boldsf' |
|||
(Font) U/jkpsya/m/n --> U/jkpsya/bx/n on input line 480. |
|||
LaTeX Font Info: Redeclaring symbol font `AMSb' on input line 528. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `normal' |
|||
(Font) U/msb/m/n --> U/jkpsyb/m/n on input line 528. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold' |
|||
(Font) U/msb/m/n --> U/jkpsyb/m/n on input line 528. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `rm' |
|||
(Font) U/msb/m/n --> U/jkpsyb/m/n on input line 528. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `boldrm' |
|||
(Font) U/msb/m/n --> U/jkpsyb/m/n on input line 528. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `sf' |
|||
(Font) U/msb/m/n --> U/jkpsyb/m/n on input line 528. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `boldsf' |
|||
(Font) U/msb/m/n --> U/jkpsyb/m/n on input line 528. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold' |
|||
(Font) U/jkpsyb/m/n --> U/jkpsyb/bx/n on input line 529. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `rm' |
|||
(Font) U/jkpsyb/m/n --> U/jkpsyb/m/n on input line 530. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `boldrm' |
|||
(Font) U/jkpsyb/m/n --> U/jkpsyb/bx/n on input line 531. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `sf' |
|||
(Font) U/jkpsyb/m/n --> U/jkpsssyb/m/n on input line 532. |
|||
LaTeX Font Info: Overwriting symbol font `AMSb' in version `boldsf' |
|||
(Font) U/jkpsyb/m/n --> U/jkpsssyb/bx/n on input line 533. |
|||
\symsymbolsC=\mathgroup7 |
|||
LaTeX Font Info: Overwriting symbol font `symbolsC' in version `bold' |
|||
(Font) U/jkpsyc/m/n --> U/jkpsyc/bx/n on input line 549. |
|||
LaTeX Font Info: Overwriting symbol font `symbolsC' in version `rm' |
|||
(Font) U/jkpsyc/m/n --> U/jkpsyc/m/n on input line 551. |
|||
LaTeX Font Info: Overwriting symbol font `symbolsC' in version `boldrm' |
|||
(Font) U/jkpsyc/m/n --> U/jkpsyc/bx/n on input line 552. |
|||
LaTeX Font Info: Overwriting symbol font `symbolsC' in version `sf' |
|||
(Font) U/jkpsyc/m/n --> U/jkpsyc/m/n on input line 553. |
|||
LaTeX Font Info: Overwriting symbol font `symbolsC' in version `boldsf' |
|||
(Font) U/jkpsyc/m/n --> U/jkpsyc/bx/n on input line 554. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathscr' in version `bold' |
|||
(Font) U/jkpsyd/m/n --> U/jkpsyd/bx/n on input line 583. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathscr' in version `rm' |
|||
(Font) U/jkpsyd/m/n --> U/jkpsyd/m/n on input line 585. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathscr' in version `boldrm' |
|||
(Font) U/jkpsyd/m/n --> U/jkpsyd/bx/n on input line 586. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathscr' in version `sf' |
|||
(Font) U/jkpsyd/m/n --> U/jkpsyd/m/n on input line 587. |
|||
LaTeX Font Info: Overwriting math alphabet `\mathscr' in version `boldsf' |
|||
(Font) U/jkpsyd/m/n --> U/jkpsyd/bx/n on input line 588. |
|||
LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 598. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' |
|||
(Font) OMX/cmex/m/n --> OMX/jkp/m/n on input line 598. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' |
|||
(Font) OMX/cmex/m/n --> OMX/jkp/m/n on input line 598. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `rm' |
|||
(Font) OMX/cmex/m/n --> OMX/jkp/m/n on input line 598. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `boldrm' |
|||
(Font) OMX/cmex/m/n --> OMX/jkp/m/n on input line 598. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `sf' |
|||
(Font) OMX/cmex/m/n --> OMX/jkp/m/n on input line 598. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `boldsf' |
|||
(Font) OMX/cmex/m/n --> OMX/jkp/m/n on input line 598. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' |
|||
(Font) OMX/jkp/m/n --> OMX/jkp/bx/n on input line 599. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `rm' |
|||
(Font) OMX/jkp/m/n --> OMX/jkp/m/n on input line 601. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `boldrm' |
|||
(Font) OMX/jkp/m/n --> OMX/jkp/bx/n on input line 602. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `sf' |
|||
(Font) OMX/jkp/m/n --> OMX/jkpss/m/n on input line 603. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbols' in version `boldsf' |
|||
(Font) OMX/jkp/m/n --> OMX/jkpss/bx/n on input line 604. |
|||
\symlargesymbolsA=\mathgroup8 |
|||
LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `bold' |
|||
(Font) U/jkpexa/m/n --> U/jkpexa/bx/n on input line 615. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `rm' |
|||
(Font) U/jkpexa/m/n --> U/jkpexa/m/n on input line 617. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `boldrm' |
|||
|
|||
(Font) U/jkpexa/m/n --> U/jkpexa/bx/n on input line 618. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `sf' |
|||
(Font) U/jkpexa/m/n --> U/jkpexa/m/n on input line 619. |
|||
LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `boldsf' |
|||
|
|||
(Font) U/jkpexa/m/n --> U/jkpexa/bx/n on input line 620. |
|||
LaTeX Info: Redefining \not on input line 1580. |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty |
|||
Package: geometry 2020/01/02 v5.9 Page Geometry |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty |
|||
Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty |
|||
Package: iftex 2019/11/07 v1.0c TeX engine tests |
|||
)) |
|||
\Gm@cnth=\count192 |
|||
\Gm@cntv=\count193 |
|||
\c@Gm@tempcnt=\count194 |
|||
\Gm@bindingoffset=\dimen146 |
|||
\Gm@wd@mp=\dimen147 |
|||
\Gm@odd@mp=\dimen148 |
|||
\Gm@even@mp=\dimen149 |
|||
\Gm@layoutwidth=\dimen150 |
|||
\Gm@layoutheight=\dimen151 |
|||
\Gm@layouthoffset=\dimen152 |
|||
\Gm@layoutvoffset=\dimen153 |
|||
\Gm@dimlist=\toks22 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty |
|||
Package: fancyhdr 2019/01/31 v3.10 Extensive control of page headers and footer |
|||
s |
|||
\f@nch@headwidth=\skip52 |
|||
\f@nch@O@elh=\skip53 |
|||
\f@nch@O@erh=\skip54 |
|||
\f@nch@O@olh=\skip55 |
|||
\f@nch@O@orh=\skip56 |
|||
\f@nch@O@elf=\skip57 |
|||
\f@nch@O@erf=\skip58 |
|||
\f@nch@O@olf=\skip59 |
|||
\f@nch@O@orf=\skip60 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty |
|||
Package: multicol 2019/12/09 v1.8y multicolumn formatting (FMi) |
|||
\c@tracingmulticols=\count195 |
|||
\mult@box=\box47 |
|||
\multicol@leftmargin=\dimen154 |
|||
\c@unbalance=\count196 |
|||
\c@collectmore=\count197 |
|||
\doublecol@number=\count198 |
|||
\multicoltolerance=\count199 |
|||
\multicolpretolerance=\count266 |
|||
\full@width=\dimen155 |
|||
\page@free=\dimen156 |
|||
\premulticols=\dimen157 |
|||
\postmulticols=\dimen158 |
|||
\multicolsep=\skip61 |
|||
\multicolbaselineskip=\skip62 |
|||
\partial@page=\box48 |
|||
\last@line=\box49 |
|||
\maxbalancingoverflow=\dimen159 |
|||
\mult@rightbox=\box50 |
|||
\mult@grightbox=\box51 |
|||
\mult@gfirstbox=\box52 |
|||
\mult@firstbox=\box53 |
|||
\@tempa=\box54 |
|||
\@tempa=\box55 |
|||
\@tempa=\box56 |
|||
\@tempa=\box57 |
|||
\@tempa=\box58 |
|||
\@tempa=\box59 |
|||
\@tempa=\box60 |
|||
\@tempa=\box61 |
|||
\@tempa=\box62 |
|||
\@tempa=\box63 |
|||
\@tempa=\box64 |
|||
\@tempa=\box65 |
|||
\@tempa=\box66 |
|||
\@tempa=\box67 |
|||
\@tempa=\box68 |
|||
\@tempa=\box69 |
|||
\@tempa=\box70 |
|||
\@tempa=\box71 |
|||
\@tempa=\box72 |
|||
\@tempa=\box73 |
|||
\@tempa=\box74 |
|||
\@tempa=\box75 |
|||
\@tempa=\box76 |
|||
\@tempa=\box77 |
|||
\@tempa=\box78 |
|||
\@tempa=\box79 |
|||
\@tempa=\box80 |
|||
\@tempa=\box81 |
|||
\@tempa=\box82 |
|||
\@tempa=\box83 |
|||
\@tempa=\box84 |
|||
\@tempa=\box85 |
|||
\@tempa=\box86 |
|||
\@tempa=\box87 |
|||
\@tempa=\box88 |
|||
\@tempa=\box89 |
|||
\@tempa=\box90 |
|||
\c@minrows=\count267 |
|||
\c@columnbadness=\count268 |
|||
\c@finalcolumnbadness=\count269 |
|||
\last@try=\dimen160 |
|||
\multicolovershoot=\dimen161 |
|||
\multicolundershoot=\dimen162 |
|||
\mult@nat@firstbox=\box91 |
|||
\colbreak@box=\box92 |
|||
\mc@col@check@num=\count270 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty |
|||
\wrapoverhang=\dimen163 |
|||
\WF@size=\dimen164 |
|||
\c@WF@wrappedlines=\count271 |
|||
\WF@box=\box93 |
|||
\WF@everypar=\toks23 |
|||
Package: wrapfig 2003/01/31 v 3.6 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty |
|||
Package: hyperref 2020/01/14 v7.00d Hypertext links for LaTeX |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty |
|||
Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty |
|||
Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO |
|||
) |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty |
|||
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) |
|||
) |
|||
Package pdftexcmds Info: \pdf@primitive is available. |
|||
Package pdftexcmds Info: \pdf@ifprimitive is available. |
|||
Package pdftexcmds Info: \pdfdraftmode found. |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty |
|||
Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty |
|||
Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty |
|||
Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty |
|||
Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty |
|||
Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty |
|||
Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty |
|||
Package: kvoptions 2019/11/29 v3.13 Key value format for package options (HO) |
|||
) |
|||
\@linkdim=\dimen165 |
|||
\Hy@linkcounter=\count272 |
|||
\Hy@pagecounter=\count273 |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def |
|||
File: pd1enc.def 2020/01/14 v7.00d Hyperref: PDFDocEncoding definition (HO) |
|||
Now handling font encoding PD1 ... |
|||
... no UTF-8 mapping file for font encoding PD1 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty |
|||
Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty |
|||
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) |
|||
) |
|||
\Hy@SavedSpaceFactor=\count274 |
|||
\pdfmajorversion=\count275 |
|||
Package hyperref Info: Hyper figures OFF on input line 4547. |
|||
Package hyperref Info: Link nesting OFF on input line 4552. |
|||
Package hyperref Info: Hyper index ON on input line 4555. |
|||
Package hyperref Info: Plain pages OFF on input line 4562. |
|||
Package hyperref Info: Backreferencing OFF on input line 4567. |
|||
Package hyperref Info: Implicit mode ON; LaTeX internals redefined. |
|||
Package hyperref Info: Bookmarks ON on input line 4800. |
|||
\c@Hy@tempcnt=\count276 |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty |
|||
\Urlmuskip=\muskip17 |
|||
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. |
|||
) |
|||
LaTeX Info: Redefining \url on input line 5159. |
|||
\XeTeXLinkMargin=\dimen166 |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty |
|||
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty |
|||
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO |
|||
) |
|||
)) |
|||
\Fld@menulength=\count277 |
|||
\Field@Width=\dimen167 |
|||
\Fld@charsize=\dimen168 |
|||
Package hyperref Info: Hyper figures OFF on input line 6430. |
|||
Package hyperref Info: Link nesting OFF on input line 6435. |
|||
Package hyperref Info: Hyper index ON on input line 6438. |
|||
Package hyperref Info: backreferencing OFF on input line 6445. |
|||
Package hyperref Info: Link coloring OFF on input line 6450. |
|||
Package hyperref Info: Link coloring with OCG OFF on input line 6455. |
|||
Package hyperref Info: PDF/A mode OFF on input line 6460. |
|||
LaTeX Info: Redefining \ref on input line 6500. |
|||
LaTeX Info: Redefining \pageref on input line 6504. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty |
|||
Package: atbegshi 2019/12/05 v1.19 At begin shipout hook (HO) |
|||
) |
|||
\Hy@abspage=\count278 |
|||
\c@Item=\count279 |
|||
\c@Hfootnote=\count280 |
|||
) |
|||
Package hyperref Info: Driver (autodetected): hpdftex. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def |
|||
File: hpdftex.def 2020/01/14 v7.00d Hyperref driver for pdfTeX |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty |
|||
Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO) |
|||
Package atveryend Info: \enddocument detected (standard20110627). |
|||
) |
|||
\Fld@listcount=\count281 |
|||
\c@bookmark@seq@number=\count282 |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty |
|||
Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty |
|||
Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) |
|||
) |
|||
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 |
|||
86. |
|||
) |
|||
\Hy@SectionHShift=\skip63 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/tabto-ltx/tabto.sty |
|||
Package: tabto 2018/12/28 v 1.4 Another tabbing mechanism |
|||
\CurrentLineWidth=\dimen169 |
|||
\TabPrevPos=\dimen170 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty |
|||
\UL@box=\box94 |
|||
\UL@hyphenbox=\box95 |
|||
\UL@skip=\skip64 |
|||
\UL@hook=\toks24 |
|||
\UL@height=\dimen171 |
|||
\UL@pe=\count283 |
|||
\UL@pixel=\dimen172 |
|||
\ULC@box=\box96 |
|||
Package: ulem 2019/11/18 |
|||
\ULdepth=\dimen173 |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def |
|||
File: l3backend-pdfmode.def 2020-02-03 L3 backend support: PDF mode |
|||
\l__kernel_color_stack_int=\count284 |
|||
\l__pdf_internal_box=\box97 |
|||
) |
|||
(build/codex-002.aux) |
|||
\openout1 = `codex-002.aux'. |
|||
|
|||
LaTeX Font Info: Checking defaults for OML/jkp/m/it on input line 74. |
|||
LaTeX Font Info: Trying to load font information for OML+jkp on input line 7 |
|||
4. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/omljkp.fd |
|||
File: omljkp.fd 2006/08/15 v1.0 |
|||
) |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Checking defaults for OMS/jkp/m/n on input line 74. |
|||
LaTeX Font Info: Trying to load font information for OMS+jkp on input line 7 |
|||
4. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/omsjkp.fd |
|||
File: omsjkp.fd 2006/08/15 v1.0 |
|||
) |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 74. |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 74. |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 74. |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Checking defaults for OMX/jkp/m/n on input line 74. |
|||
LaTeX Font Info: Trying to load font information for OMX+jkp on input line 7 |
|||
4. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/omxjkp.fd |
|||
File: omxjkp.fd 2006/08/15 v1.0 |
|||
) |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Checking defaults for U/jkpexa/m/n on input line 74. |
|||
LaTeX Font Info: Trying to load font information for U+jkpexa on input line |
|||
74. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ujkpexa.fd |
|||
File: ujkpexa.fd 2006/08/15 v1.0 |
|||
) |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 74. |
|||
LaTeX Font Info: ... okay on input line 74. |
|||
LaTeX Font Info: Trying to load font information for OT1+jkp on input line 7 |
|||
4. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ot1jkp.fd |
|||
File: ot1jkp.fd 2007/08/30 Fontinst v1.928 font definitions for OT1/jkp. |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii |
|||
[Loading MPS to PDF converter (version 2006.09.02).] |
|||
\scratchcounter=\count285 |
|||
\scratchdimen=\dimen174 |
|||
\scratchbox=\box98 |
|||
\nofMPsegments=\count286 |
|||
\nofMParguments=\count287 |
|||
\everyMPshowfont=\toks25 |
|||
\MPscratchCnt=\count288 |
|||
\MPscratchDim=\dimen175 |
|||
\MPnumerator=\count289 |
|||
\makeMPintoPDFobject=\count290 |
|||
\everyMPtoPDFconversion=\toks26 |
|||
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty |
|||
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf |
|||
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 |
|||
85. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg |
|||
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv |
|||
e |
|||
)) |
|||
*geometry* driver: auto-detecting |
|||
*geometry* detected driver: pdftex |
|||
*geometry* verbose mode - [ preamble ] result: |
|||
* driver: pdftex |
|||
* paper: custom |
|||
* layout: <same size as paper> |
|||
* layoutoffset:(h,v)=(0.0pt,0.0pt) |
|||
* modes: twoside |
|||
* h-part:(L,W,R)=(36.135pt, 325.215pt, 36.135pt) |
|||
* v-part:(T,H,B)=(36.135pt, 542.02501pt, 36.135pt) |
|||
* \paperwidth=397.48499pt |
|||
* \paperheight=614.295pt |
|||
* \textwidth=325.215pt |
|||
* \textheight=469.75502pt |
|||
* \oddsidemargin=-36.135pt |
|||
* \evensidemargin=-36.135pt |
|||
* \topmargin=-37.0pt |
|||
* \headheight=12.0pt |
|||
* \headsep=25.0pt |
|||
* \topskip=10.0pt |
|||
* \footskip=30.0pt |
|||
* \marginparwidth=121.0pt |
|||
* \marginparsep=11.0pt |
|||
* \columnsep=10.0pt |
|||
* \skip\footins=9.0pt plus 4.0pt minus 2.0pt |
|||
* \hoffset=0.0pt |
|||
* \voffset=0.0pt |
|||
* \mag=1000 |
|||
* \@twocolumnfalse |
|||
* \@twosidetrue |
|||
* \@mparswitchtrue |
|||
* \@reversemarginfalse |
|||
* (1in=72.27pt=25.4mm, 1cm=28.453pt) |
|||
|
|||
\AtBeginShipoutBox=\box99 |
|||
Package hyperref Info: Link coloring OFF on input line 74. |
|||
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty |
|||
Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty |
|||
Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) |
|||
) |
|||
(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty |
|||
Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) |
|||
) |
|||
\c@section@level=\count291 |
|||
) |
|||
LaTeX Info: Redefining \ref on input line 74. |
|||
LaTeX Info: Redefining \pageref on input line 74. |
|||
LaTeX Info: Redefining \nameref on input line 74. |
|||
|
|||
(build/codex-002.out) (build/codex-002.out) |
|||
\@outlinefile=\write3 |
|||
\openout3 = `codex-002.out'. |
|||
|
|||
LaTeX Font Info: Trying to load font information for U+jkpsya on input line |
|||
76. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ujkpsya.fd |
|||
File: ujkpsya.fd 2006/08/15 v1.0 |
|||
) |
|||
LaTeX Font Info: Trying to load font information for U+jkpsyb on input line |
|||
76. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ujkpsyb.fd |
|||
File: ujkpsyb.fd 2006/08/15 v1.0 |
|||
) |
|||
LaTeX Font Info: Trying to load font information for U+jkpmia on input line |
|||
76. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ujkpmia.fd |
|||
File: ujkpmia.fd 2006/08/15 v1.0 |
|||
) |
|||
LaTeX Font Info: Trying to load font information for U+jkpsyc on input line |
|||
76. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ujkpsyc.fd |
|||
File: ujkpsyc.fd 2006/08/15 v1.0 |
|||
) [1 |
|||
|
|||
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] |
|||
LaTeX Font Info: Trying to load font information for TS1+jkp on input line 7 |
|||
8. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ts1jkp.fd |
|||
File: ts1jkp.fd 2007/08/30 Fontinst v1.928 font definitions for TS1/jkp. |
|||
) |
|||
<images/ncsa4-0.png, id=15, 88.33pt x 31.11626pt> |
|||
File: images/ncsa4-0.png Graphic file (type png) |
|||
<use images/ncsa4-0.png> |
|||
Package pdftex.def Info: images/ncsa4-0.png used on input line 80. |
|||
(pdftex.def) Requested size: 30.91595pt x 10.89084pt. |
|||
LaTeX Font Info: Trying to load font information for OT1+jkptt on input line |
|||
82. |
|||
|
|||
(/usr/share/texlive/texmf-dist/tex/latex/kpfonts/ot1jkptt.fd |
|||
File: ot1jkptt.fd 2007/01/26 Fontinst v1.928 font definitions for OT1/jkptt. |
|||
) [2 <./images/ncsa4-0.png>] (build/codex-002.toc) |
|||
\tf@toc=\write4 |
|||
\openout4 = `codex-002.toc'. |
|||
|
|||
[3 |
|||
|
|||
] |
|||
Chapter 1. |
|||
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 96. |
|||
[4 |
|||
|
|||
] |
|||
Package atveryend Info: Empty hook `AfterLastShipout' on input line 96. |
|||
(build/codex-002.aux) |
|||
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 96. |
|||
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 96. |
|||
Package rerunfilecheck Info: File `codex-002.out' has not changed. |
|||
(rerunfilecheck) Checksum: <no file>. |
|||
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 96. |
|||
) |
|||
Here is how much of TeX's memory you used: |
|||
8413 strings out of 483140 |
|||
119254 string characters out of 5965152 |
|||
372586 words of memory out of 5000000 |
|||
23234 multiletter control sequences out of 15000+600000 |
|||
572253 words of font info for 113 fonts, out of 8000000 for 9000 |
|||
36 hyphenation exceptions out of 8191 |
|||
34i,10n,45p,496b,336s stack positions out of 5000i,500n,10000p,200000b,80000s |
|||
{/usr/share/texlive/texmf-dist/fonts/enc/dvips/kpfonts/kpfonts-expert.enc}{/u |
|||
sr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texlive/tex |
|||
mf-dist/fonts/type1/public/kpfonts/jkpbn8a.pfb></usr/share/texlive/texmf-dist/f |
|||
onts/type1/public/kpfonts/jkpmit8a.pfb></usr/share/texlive/texmf-dist/fonts/typ |
|||
e1/public/kpfonts/jkpmn8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/public |
|||
/kpfonts/jkpmne.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/kpfonts/j |
|||
kpttmn8a.pfb> |
|||
Output written on build/codex-002.pdf (4 pages, 45444 bytes). |
|||
PDF statistics: |
|||
63 PDF objects out of 1000 (max. 8388607) |
|||
49 compressed objects within 1 object stream |
|||
8 named destinations out of 1000 (max. 500000) |
|||
14 words of extra memory for PDF output out of 10000 (max. 10000000) |
|||
|
@ -1 +0,0 @@ |
|||
\BOOKMARK [0][-]{chapter.1}{The Early Salad Days, continued}{}% 1 |
@ -1 +0,0 @@ |
|||
\contentsline {chapter}{\numberline {1}The Early Salad Days, continued}{4}{chapter.1}% |
After Width: 1280 | Height: 894 | Size: 68 KiB |
After Width: 130 | Height: 24 | Size: 2.1 KiB |
After Width: 126 | Height: 24 | Size: 1.9 KiB |
After Width: 513 | Height: 251 | Size: 61 KiB |
After Width: 3948 | Height: 1932 | Size: 2.3 MiB |
After Width: 654 | Height: 384 | Size: 257 KiB |
After Width: 627 | Height: 347 | Size: 243 KiB |
After Width: 432 | Height: 244 | Size: 146 KiB |
After Width: 510 | Height: 264 | Size: 28 KiB |
After Width: 148 | Height: 24 | Size: 2.2 KiB |
After Width: 500 | Height: 394 | Size: 57 KiB |
After Width: 430 | Height: 176 | Size: 79 KiB |
After Width: 432 | Height: 293 | Size: 158 KiB |
After Width: 432 | Height: 256 | Size: 136 KiB |
After Width: 652 | Height: 563 | Size: 39 KiB |
After Width: 432 | Height: 298 | Size: 159 KiB |
1036
003/codex-003.tex
File diff suppressed because it is too large
View File
After Width: 1024 | Height: 909 | Size: 143 KiB |
After Width: 1280 | Height: 894 | Size: 68 KiB |
After Width: 510 | Height: 264 | Size: 28 KiB |
After Width: 88 | Height: 31 | Size: 1.6 KiB |
After Width: 450 | Height: 399 | Size: 77 KiB |
@ -0,0 +1,7 @@ |
|||
\documentclass{standalone} |
|||
|
|||
\usepackage[chorded]{songs} |
|||
|
|||
\begin{document} |
|||
\gtab{A}{X02220:001230} |
|||
\end{document} |
@ -0,0 +1,7 @@ |
|||
\documentclass{standalone} |
|||
|
|||
\usepackage[chorded]{songs} |
|||
|
|||
\begin{document} |
|||
\gtab{C#sus4}{4:XX3341} |
|||
\end{document} |
@ -0,0 +1,551 @@ |
|||
\documentclass[twoside]{report} |
|||
\usepackage[utf8]{inputenc} |
|||
\usepackage{amsmath} |
|||
\usepackage{amssymb} |
|||
\usepackage{makeidx} |
|||
\usepackage{graphicx} |
|||
\usepackage[nott]{kpfonts} |
|||
\usepackage{float} |
|||
\raggedbottom |
|||
\usepackage{array} |
|||
\usepackage{multirow} |
|||
|
|||
% Where are our images? |
|||
\graphicspath{{images/}} |
|||
|
|||
% Let's set this as a half-letter sized sheet |
|||
\usepackage{geometry} |
|||
\geometry{ |
|||
paperheight=8.5in, |
|||
paperwidth=5.5in, |
|||
% heightrounded, |
|||
margin=0.5in |
|||
} |
|||
|
|||
% Adjust the top and bottom margins |
|||
\addtolength{\topmargin}{0.4in} |
|||
\addtolength{\textheight}{-0.75in} |
|||
|
|||
% Set the header style |
|||
\usepackage{fancyhdr} |
|||
\pagestyle{fancy} |
|||
\fancyhf{} |
|||
\fancyhead[LE,RO]{\textit{the codex}} |
|||
\fancyhead[RE,LO]{Issue \#003} |
|||
\cfoot{Page \thepage} |
|||
\renewcommand{\footrulewidth}{0.5pt} |
|||
|
|||
% Include two- or three-column sections |
|||
\usepackage{multicol} |
|||
|
|||
% Stop resetting the footnote count after each chapter |
|||
\counterwithout{footnote}{chapter} |
|||
|
|||
% Let's wrap some images |
|||
\usepackage{wrapfig} |
|||
|
|||
% Use tab stops when we need to (especially in footnotes) |
|||
\usepackage{tabto} |
|||
% Define 18 tab stops (at 1/4" intervals) |
|||
\NumTabs{18} |
|||
|
|||
% Make things neater. Thanks /u/-LeopardShark- |
|||
\usepackage{microtype} |
|||
|
|||
% Make a nice border and box for the tops of our examples |
|||
\newcommand\klab[3]{\vspace{#1}\noindent{}\hrulefill\fbox{\texttt{~#2~}}\hrulefill\vspace{#3}} |
|||
|
|||
% Add an \hrule with space above and below |
|||
\newcommand\krule[2]{\vspace{#1}\hrule\vspace{#2}} |
|||
|
|||
% Make hrefs easier (must load package hyperref} |
|||
\newcommand\kref[2]{\href{#1}{{\texttt{#2}}}} |
|||
|
|||
% Rotate text in tables easier |
|||
% https://tex.stackexchange.com/questions/89115/how-to-rotate-text-in-multirow-table |
|||
\newcommand\krot[3]{\parbox[t]{#1}{\multirow{#2}{*}{\rotatebox[origin=c]{90}{#3}}}} |
|||
|
|||
% Use line numbers with code samples |
|||
% \begin{Verbatim}...\end{Verbatim} <-- Note the capitalization! |
|||
\usepackage{fancyvrb} |
|||
% Break lines inside this environment: |
|||
\usepackage{fvextra} |
|||
|
|||
% Control spacing in lists |
|||
\usepackage{enumitem} |
|||
|
|||
% Don't force text to fill page |
|||
\raggedbottom |
|||
|
|||
% Better control over line-spacing |
|||
\usepackage{setspace} |
|||
|
|||
% Use nice fractions |
|||
\usepackage{nicefrac} |
|||
|
|||
% Keep the footnotes at the bottom of the page |
|||
\usepackage[bottom]{footmisc} |
|||
|
|||
% Do we want to include URLs? |
|||
% Yes, but we also want to hide the big red box it puts around them in the pdf. Thanks /u/0b0101011001001011 |
|||
\usepackage[hidelinks]{hyperref} |
|||
|
|||
% Adjust space between caption and figure |
|||
% https://tex.stackexchange.com/questions/45990/how-can-i-modify-vertical-space-between-figure-and-caption |
|||
\setlength{\belowcaptionskip}{4pt} |
|||
|
|||
% Just for issue #004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|||
\usepackage{pifont} |
|||
\usepackage{qrcode} |
|||
\usepackage{mhchem} |
|||
\usepackage{chemformula} |
|||
\usepackage{chemfig} |
|||
|
|||
\usepackage{tikz} |
|||
\newcommand\kpage[1]{ |
|||
\begin{tikzpicture} |
|||
\draw (0,0) rectangle (.8,1.4); |
|||
\node at (0.4,.7) {{\LARGE #1}}; |
|||
\end{tikzpicture} |
|||
%\hspace{-3mm} |
|||
} |
|||
|
|||
|
|||
%%%% Document Information %%%%% |
|||
\author{Kenneth John Odle} |
|||
\title{ |
|||
{\Huge the codex} \\ |
|||
{\footnotesize Life with Linux — A Zine \\ |
|||
\bigskip |
|||
Typeset in \LaTeX{} \\ |
|||
Issue \#004} |
|||
} |
|||
\date{\begin{small}\today{}\end{small}} |
|||
|
|||
% Change the name of the TOC |
|||
\renewcommand*\contentsname{In This Issue…} |
|||
|
|||
\begin{document} |
|||
\maketitle |
|||
|
|||
\section*{Impressum} |
|||
All contents \copyright2023 Kenneth John Odle |
|||
|
|||
Although this is now in your hands, and it's also on the web, so if you really wanted to steal this, I've made it pretty darn easy. I can't imagine why anyone would want to, though. However, you don't need to, because this is licenced under a CC BY-NA-SA 4.0 Creative Commons license. More information is at |
|||
|
|||
\kref{https://creativecommons.org/licenses/by-nc-sa/4.0/}{https://creativecommons.org/licenses/by-nc-sa/4.0/} \includegraphics[scale=0.30]{ncsa4-0} |
|||
|
|||
\medskip |
|||
|
|||
FYI, this is made in \LaTeX \,using the report document class. It then gets exported to a letterhalf (5.5 in x 8.5 in) pdf, which then gets made into a booklet using PDF Booklet, which you can find at |
|||
|
|||
\kref{https://pdfbooklet.sourceforge.io/wordpress/}{https://pdfbooklet.sourceforge.io/wordpress/} |
|||
|
|||
\medskip |
|||
|
|||
The image of Linus Torvalds on the front cover is courtesy JericoDelayah from the WikiMedia Commons. The image is from \kref{https://commons.wikimedia.org/wiki/File:4_RETAT_04_Linus_Torvalds.jpg}{https://commons.wi\\kimedia.org/wiki/File:4\_RETAT\_04\_Linus\_Torvalds.jpg} where you can also find a link to the Creative Commons CC BY-SA 3.0 license there, as well. |
|||
|
|||
I'm pushing this to my own git server as I write this. You can find it \href{https://git.kjodle.net/kjodle/the-codex}{here}: \kref{https://git.kjodle.net/kjodle/the-codex}{https://git.kjodle.net/kjodle/the-codex}. New issues will be pushed after they are complete. |
|||
|
|||
You can just skip over all the diversions in here if you want. It's just how my mind works. (And yes, there will be politics in this. \textit{You have been warned.}) Also, I use a lot of em-dashes, parentheses, and footnotes because that is also how my mind works. It's just one big long stream of consciousness up in here most days. |
|||
|
|||
\medskip |
|||
|
|||
\noindent \textbf{Errata:} To err is human, to document those errors is divine. A list of errata can be found at |
|||
|
|||
\kref{https://git.kjodle.net/kjodle/the-codex/wiki/Errata}{https://git.kjodle.net/kjodle/the-codex/wiki/Errata}. |
|||
|
|||
\medskip |
|||
|
|||
\noindent \textbf{Credit where credit is due:} A lot of people have come forth (mostly from Reddit) to help me out in various ways. See the preamble to this document in the source code to see them. One aspect of our society is that nobody \textit{has} to help you. It is wonderful when it happens, and I am grateful for their help. |
|||
|
|||
|
|||
\tableofcontents |
|||
|
|||
\chapter{The Final Salad Days} |
|||
|
|||
\section{College, 2008} |
|||
|
|||
Bush II decided to tank the economy for ordinary people so that rich people could get richer.\footnote{This is the second of three "once in a lifetime" recessions I have lived through. Yay, capitalism! The rich get richer and everyone else gets poorer.} I decided to go back into teaching (which, thanks to current conservative political policies\footnote{Along with the asshole behavior of parents who approve of those policies.} there will always be a demand for), which meant I needed to go back to college to renew my teaching license. But this is a whole other story for which I have run out of space (not to mention it has very little to do with Linux or even computers), so it will have to go in a different zine if I ever decide to write it down. |
|||
|
|||
What I can say is that the first time around, I wanted to get a biology major and an English minor because I wanted to teach biology and English, and I thought (naively) that this was how things worked.\footnote{They don't. Who knew?} But my biology advisor, a man who was many decades if not centuries my senior, advised against that plan. He felt that it would make me unhireable because it would look like I could not make up my mind between biology and English. |
|||
|
|||
I did not realize it at the time,\footnote{I may not have realized it until just \textit{now}, when I wrote this.} but he was revealing his prejudice as a Biology professor. He was wrong, ultimately (schools absolutely love it when you can teach more than one subject as it provides for a lot of flexibility in scheduling), but his argument scared me. I was going to go thousands of dollars in debt for this degree (I was not smart enough to get a full scholarship, so I had to make up the difference with grants and loans—lots and lots of loans), and if I couldn't get a job, I wouldn't be able to pay back those loans. I would be sentenced to a life of penury, which is the very thing a college degree was supposed to protect against. So I agreed with him and forgot about getting an English minor. |
|||
|
|||
His second argument was that as a prospective biology teacher, I was \textit{required} to get a group science ``minor'', which is in quotation marks because it was actually 36 credit hours, which was the equivalent of a major, rather than the 20 credit hours typical of an actual minor. As a result, I would have little time or energy (or money!) for another minor. |
|||
|
|||
So in 2008 I decided to go back to teaching. To do so, I needed to get eight credit hours in ``a teachable subject'' so I decided to take a couple of English classes, as that would both meet the legal requirements and also give me a chance to read and write for credit. |
|||
|
|||
As they say, things happened. |
|||
|
|||
At first I was taking a couple of English classes. But then I thought, that's eight credit hours. If I take three more I could actually get the full minor. Why not? So a couple of English classes became an English minor, which eventually became an English major. |
|||
|
|||
Becoming a biology teacher required that I take a \textit{methods} class, which is a class about…well, basically it's a class about how to \textit{be} a biology teacher. It teaches you how to plan labs and field trips, and how to do things in a safe way so that nobody gets hurt, and covers the specifics of teaching biology that were not covered in your regular education classes. |
|||
|
|||
Becoming an English teacher required that I take \textit{two} methods classes: one about teaching literature and one about teaching writing. I remember very little about either class. (And to be honest, I remember more about the graduate class I took in fairy and folk tales, because those tales evolve like living beings—which in a way they are. This was where biology and literature overlapped for me in the Venn diagram of my life.) |
|||
|
|||
The one thing I remember very distinctly about the writing methods course was that our capstone project had to be \textit{online}. Oh wow, I thought—I've been creating websites for a while now. But I was worried. I had been hearing about how young people were so good with technology, so comfortable with it, that I was sure whatever I came up with would just blow my feeble old school attempts out of the water. |
|||
|
|||
I could not have been more wrong. |
|||
|
|||
|
|||
|
|||
\section{Today} |
|||
|
|||
\chapter{Math in \LaTeX{} with \texttt{align} and \texttt{array}} |
|||
|
|||
\chapter{Searching your Bash History} |
|||
|
|||
https://www.cyberciti.biz/faq/linux-unix-shell-history-search-command/ |
|||
|
|||
https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps |
|||
|
|||
https://superuser.com/questions/7414/how-can-i-search-the-bash-history-and-rerun-a-command |
|||
|
|||
https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html\#Bindable-Readline-Commands |
|||
|
|||
https://stackoverflow.com/questions/7131670/make-a-bash-alias-that-takes-a-parameter |
|||
|
|||
https://tecadmin.net/how-to-create-bash-aliases-with-parameters/ |
|||
|
|||
\chapter{Other Flavors of Linux} |
|||
|
|||
I admit, I am pretty invested in Ubuntu. But I don't have to be that way. There are \textit{lots} of ways to swim in the Linux pool. Just doing a quick search for ``linux flavors'' yields a lot of options: |
|||
|
|||
\begin{center} |
|||
\fbox{\includegraphics[scale=0.35]{flavours}} |
|||
\end{center} |
|||
|
|||
This also omits Edubuntu which, as a former teacher, I am very interested in. |
|||
|
|||
\chapter{What's to Like About Linux} |
|||
|
|||
As I get older, I find that I want to spend less time doing repetitive tasks that need to be done, and spend more time doing the stuff I want to do, like writing. |
|||
|
|||
As it turns out, Linux can help with that goal. More time writing and drawing and making photographs is a good thing, and something I'm grateful to Linux for. The trick is, you have to be comfortable with the command line. |
|||
|
|||
\section{Bash Aliases for \texttt{git}} |
|||
|
|||
One of the nice things about Linux is that once you get used to working on the terminal, it makes your life a lot easier. I'm a huge believer in having a workflow so that you are doing things consistently, and so that you can make gradual improvements to that workflow so you can get more done with less.\footnote{Also, having a workflow means that if you are doing something wrong, you are doing consistently doing it wrong the same way. In which case, you only need to figure out a single fix and apply it to each mistake. If you don't have a workflow, you can screw up in many different ways, and have to figure out a lot of different fixes. Making mistakes is a part of life; making consistent mistakes makes fixing them a less miserable task.} Linux makes it easy for you to do that. |
|||
|
|||
Back in issue \#2 I talked about using Bash aliases to make your life easier. I've also started using them with \texttt{git} as well. Here's what they look like: |
|||
|
|||
\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Bash aliases for git}] |
|||
alias gits="git status" |
|||
alias gita="git add *" |
|||
alias gitx="git add *.tex" |
|||
\end{Verbatim} |
|||
|
|||
The first one just prints out the status of any git project that I'm working. The second one will automatically add all files (except for invisible files) to the commit. Because I use \LaTeX{} a lot, I also have the third one, which will commit any changed files that end in a \texttt{.tex} extension. |
|||
|
|||
I rarely have invisible files in my git repositories except for the .gitignore file, which I rarely change, so I don't need a Bash alias here. I find it easy enough to type \verb+git add .gitignore+ on the rare occasion that I need it. But if I did want to add that file on a regular basis, I could just change that line to: |
|||
|
|||
\begin{Verbatim}[] |
|||
alias gita="git add * .*" |
|||
\end{Verbatim} |
|||
|
|||
or I could just add a separate command for it: |
|||
|
|||
\begin{Verbatim}[] |
|||
alias giti="git add .gitignore" |
|||
\end{Verbatim} |
|||
|
|||
Of course, if I were changing my \textit{.gitignore} file that often, I would start to (quite rightly) question some of the other choices I've been making with my life. |
|||
|
|||
\section{Bash Commands for \textit{git}} |
|||
|
|||
It would be nice if we could do the same sort of thing for \texttt{git commit}, but we can't, because we need to add some sort of message to our commit. (In other words, it requires an \textit{argument}.) So for that, we need to add a \textit{function} to Bash. |
|||
|
|||
As it turns out, this is pretty simple. It looks like this: |
|||
|
|||
\begin{Verbatim}[] |
|||
gitm(){ git commit -m "$1"; } |
|||
\end{Verbatim} |
|||
|
|||
%$ |
|||
|
|||
First, we start with our basic function, which is written like any other function: |
|||
|
|||
\begin{Verbatim}[] |
|||
gitm() |
|||
\end{Verbatim} |
|||
|
|||
So, to invoke this function, we'll use \textit{gitm} on the terminal. Now we add whatever commands we want between curly brackets. In this case we're only going to add one, which is the \verb+git commit -m "$1";+ bit. The only thing unique here is that we have a variable (\verb+$1+) which references our first and only argument, which is the commit message we are going to add. |
|||
|
|||
Once we have added all the files we need to our commit, we can then create the commit with something like this: |
|||
|
|||
\begin{Verbatim}[] |
|||
gitm "Updated section on bash aliases" |
|||
\end{Verbatim} |
|||
|
|||
which is a \textit{bit} shorter than typing |
|||
|
|||
\begin{Verbatim}[] |
|||
git commit -m "Updated section on bash aliases" |
|||
\end{Verbatim} |
|||
|
|||
Admittedly, this doesn't save us a ton of keystrokes every time we use it, but if we make git commits on a regular basis, over time, this will save us a number of keystrokes. |
|||
|
|||
\section{More about Bash commands} |
|||
|
|||
As it turns out, you can add more than a single command to a Bash function. For example, you can use this |
|||
|
|||
\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Bash function with multiple commands}] |
|||
cdl() { |
|||
cd "$1" && ls -ahl; |
|||
} |
|||
\end{Verbatim} |
|||
% $ |
|||
|
|||
This will change to whichever directory we specify with the \verb+$1+ placeholder, and then present a directory listing which shows all files, with human-readable sizes, in a long format. That may not be highly useful, but it's enough to give you an idea of how powerful this using bash aliases and Bash functions can be. |
|||
|
|||
As an example, I like to write rough drafts in longhand, on notebook paper. I find that I am more creative that way. The problem is that I intensely dislike being surrounded by piles of paper. (ADHD means that if I can't see something, it no longer exists. So my brain will only really see whatever is on top of the pile.) So whenever I finish up a rough draft, I scan it to a ``Drafts'' folder, where it goes into a subfolder labeled for whatever projects it belongs to.\footnote{Yep, there is a subfolder labeled ``the codex'' with drafts for this zine.} So that I can see everything, I use the \texttt{tree} command to create a file which lists every single scan in that ``Drafts'' folder. |
|||
|
|||
So far, so good, but running the same \texttt{tree} command consistently is not something my brain is set up to do. So I added this function to my \texttt{.bashrc} file: |
|||
|
|||
\begin{Verbatim}[breaklines=true] |
|||
drafts(){ tree $HOME/Drafts/ -R --prune > $HOME/Drafts/list.txt; } |
|||
\end{Verbatim} |
|||
|
|||
What that command does is go to that ``Drafts'' folder, runs the \texttt{tree} command with the \texttt{-R} (recursive) and \texttt{--prune} (to ignore empty directories) options and then sends the standard output to a file called \texttt{list.txt}. I print out the \texttt{list.txt} file whenever I am searching for something to write up, and I can see in an instant what rough drafts I can work on. My ADHD brain is pretty happy with this arrangement, as nothing gets buried in a pile of files, and I don't have a ton of paper sitting around. |
|||
|
|||
For what it's worth, I also have a backup script (as I mentioned in issue \#2) just for this folder. And I added that command to the top of that backup script, so that before anything gets backed up to my cloud, that \texttt{list.txt} file gets updated and uploaded as well. |
|||
|
|||
\section{Reloading the \texttt{.bashrc} File} |
|||
|
|||
For any of these things to work, you need to reload your \texttt{.bashrc} file after you edit it. You can log out and then log in again, or you can just go to the command line and type |
|||
|
|||
\begin{Verbatim}[] |
|||
source ~/.bashrc |
|||
\end{Verbatim} |
|||
|
|||
And of course, there is also a shorthand version: |
|||
|
|||
\begin{Verbatim}[] |
|||
. ~/.bashrc |
|||
\end{Verbatim} |
|||
|
|||
|
|||
|
|||
\chapter{The Right Ways vs The Wrong Ways} |
|||
|
|||
A lot of grew up hearing that ``there's a right way to do things and a wrong way to do things.'' I don't disagree that there is always a \textit{wrong} way to do things, but like house maintenance, working on computers quickly teaches you that there are a lot of wrong ways to do things. |
|||
|
|||
Experience has shown me that not all wrong ways are wrong in the same way or to the same degree, and that the same is true of right ways. There may be multiple right ways to get something done, but some require less work and some require more work. It is not just a black-and-white issue. |
|||
|
|||
In the past few years, I've started things less in terms of a particular ``right way'' opposed to a particular ``wrong way'', and started thinking in terms of a spectrum of choices, some of which are obviously wrong (but wrong to varying degrees) and some of which are right because they work, but you have to take different roads to get there. |
|||
|
|||
What I have tried to do here is to create a hierarchy of ``rightness'' and ``wrongness'' as a way to organize my thinking on this subject; I can then jump in and discuss why things fall the way they do. No doubt, other people might have more distinctions or fewer in their hierarchy, or might have things in a separate order, or might have different reasons. |
|||
|
|||
And, as we shall see, sometimes it's beneficial to do something the wrong way. |
|||
|
|||
\newpage % Move this list to a new page. |
|||
|
|||
\begin{itemize}[noitemsep] |
|||
\item \textbf{Very Wrong} |
|||
\begin{itemize}[noitemsep] |
|||
\item It doesn't work and it breaks things in weird places. |
|||
\item It doesn't work and it breaks almost everything. |
|||
\item It doesn't work but it only breaks a few local things. |
|||
\end{itemize} |
|||
\item \textbf{Wrong} |
|||
\begin{itemize}[noitemsep] |
|||
\item It works, but it breaks things in weird places. |
|||
\item It works, but it breaks almost everything else. |
|||
\item It works, but it still manages to break a few local things. |
|||
\end{itemize} |
|||
\item \textbf{Wrong\textit{ish}} |
|||
\begin{itemize}[noitemsep] |
|||
\item It works in this specific instance, but not in all instances. |
|||
\item It works, but it's far more work than it should be. |
|||
\end{itemize} |
|||
\item \textbf{Right\textit{ish}} |
|||
\begin{itemize}[noitemsep] |
|||
\item It works, but you have no idea why. |
|||
\item It works, but it requires you to rework some other pieces. |
|||
\item It works, but it's a bit of a kludge. |
|||
\end{itemize} |
|||
\item \textbf{Right} |
|||
\begin{itemize}[noitemsep] |
|||
\item It works, and is considered a best practice. |
|||
\end{itemize} |
|||
\item \textbf{Genius} |
|||
\begin{itemize}[noitemsep] |
|||
\item It's a true hack. |
|||
\end{itemize} |
|||
\end{itemize} |
|||
|
|||
\section{Very Wrong Ways} |
|||
|
|||
Very wrongs ways are very wrong because not only do they not work, they take other things down with them. |
|||
|
|||
\paragraph{It doesn't work and it breaks things in weird places.} You may wonder why this is worse than ``It doesn't work and it breaks almost everything else'' but for me the answer is simple: it can be terribly difficult to find those weird places. When I say ``weird'' I mean that they may be obscure places that nobody looks, they may be distant from the current situation and apparently unconnected,\footnote{But nothing is \textit{truly} disconnected from anything else.}, or they may be things that you don't have to rely on very often, so you may not discover that they are broken until days, weeks, or even months later. |
|||
|
|||
\paragraph{It doesn't work and it breaks almost everything else.} This is bad, but it is not bad as the previous example, because it has two advantages. First, because almost everything is breaking, those breaks are pretty obvious. Second, because almost everything is breaking, this provides you an opportunity to look at the overall structure of your project and examine how all the different parts are connected. There may be connections that you weren't aware of. You may realize that some things are connected that shouldn't be or that some things aren't connected that should be. Sometimes it takes a real disaster to point out the strengths and weaknesses of your system. |
|||
|
|||
\paragraph{It doesn't work and it still manages to break a few local things.} No complaints here. You have to undo what you did and maybe fix a few things, but you probably don't have a whole lot more to think about here. |
|||
|
|||
\section{Wrong Ways} |
|||
|
|||
Wrong ways may work, but they break other things along the way. As we shall see, this is not always a bad thing. |
|||
|
|||
\paragraph{It works, but it breaks things in weird places.} Again, the main issue here is that those weird places may not be obvious at first. You might use this technique, and it looks like it's working fine, but suddenly there is a person in Germany whose toilet no longer flushes properly. Or it works fine for you now, but in ten months \textit{your} toilet no longer flushes properly. And because these two things are so separated in place (in the former case) or time (in the latter case) it can be difficult to connect the two things, and we might end up spending a lot of time going down rabbit holes when the real solution is right in front of us the entire time. We waste time and effort. |
|||
|
|||
\paragraph{It works, but it breaks almost everything else.} This is almost exactly like ``It doesn't work and it breaks almost everything else'' except that your solution \textit{does} work. You just need to look at your overall system and figure out why everything else is going into meltdown mode. |
|||
|
|||
\paragraph{It works, but it still manages to break a few local things.} Even though this is listed as a wrong way---you are still breaking things, after all---this is not always a bad outcome to experience. It's possible that those few things that are breaking are breaking because they are weak. If you strengthen those items and then apply this technique, it turns out that this isn't actually wrong after all, it only seemed wrong at the time. In the end, you have a much project that is much less fragile overall. |
|||
|
|||
\section{Wrong\textit{ish} Ways} |
|||
|
|||
\paragraph{It works in this specific instance, but not in all instances.} It works, so why is this way still wrong? Because it's not \textit{universal} for all similar situations. If it works in \textit{this one particular instance} but not similar instances, and you don't know why, then there is something about this particular instance that you are not aware of. This is not a bad thing if you're willing to chase down that unknown thing; it's potentially disastrous if you are not. |
|||
|
|||
\paragraph{It works, but it's far more work than it should be.} This is often a case of not having the right tools, or having the right tools but not knowing how to use them. If you need to dig a ditch, a shovel will work, but a backhoe works much better. All that time you spent working with a shovel is time you could have spent doing something else. |
|||
|
|||
\section{Right\textit{ish} Ways} |
|||
|
|||
\paragraph{It works, but you have no idea why.} I was very tempted to put this in the wrong\textit{ish} section, and in some cases it may certainly belong there. Quite frankly, you should know why a technique works. Not knowing why can be dangerous, because you assume too much about this particular technique. That may cause you to be a bit overconfident with it, and use it in a situation that doesn't really warrant its use. |
|||
|
|||
\paragraph{It works, but it requires you to rework some other parts of the project.} I admit, I was at a lost as to where to put this one. And I guess it depends if you are using a kludge or a best practice, so I'm going to assume you are using a best practice. In which case, this shows you places that you were possibly \textit{not} using something which is a best practice, and now you need to make those things better. |
|||
|
|||
\paragraph{It works, but it's a bit of a kludge.} A kludge is not always a bad thing (sometimes you have to work with what you have) but they are at best, inelegant, and at worst weighty and ugly. But they work for now, they don't break things, and they will last until you learn or can afford a better way. (I created a bit of a kludge when I couldn't figure out how to indent a bibliography entry. \footnote{You can see it in action in this commit for a different project: \kref{https://git.kjodle.net/kjodle/Notes-on-Python/commit/d4f93ec00f1e1078b1cfcb3aacd3481eb82bb0cd}{https://git.kjodle.net/kjodle/Notes-on-Python/commit/d4f93ec00f1e1078b1cfcb3a\\acd3481eb82bb0cd}.} Does it work? Yes. Am I happy with it? Not entirely. I'm 75\% there is a better way to do this, but I haven't found it yet. But it works for now, and I've marked it as a kludge, so I know this is something that I can come back to later. At least I made this less weighty and hid its heft and inelegance by turning it into a macro.) |
|||
|
|||
\section{Right Ways} |
|||
|
|||
\paragraph{It works, and is considered a best practice.} A best practice is one that has generally been accepted as the best way to do things not because it is perfect, but because it produces results that are better than the results achieved by other methods. This is a good thing. A best practice is a best practice because it's proven itself. It's not perfect (hence it's a ``best practice'' not a ``perfect practice''), but you can count on it to get the job done. And because it is a best practice, when things go pear-shaped, it's probably because of something you've done, but if it isn't, there will most likely be a lot of people who are \textit{very} interested in helping you. |
|||
|
|||
Unfortunately, sometimes a best practice is arrived at that for no other reason than ``that's how we've always done it and nothing has exploded yet.'' That's not great, but still, have a fire extinguisher handy. |
|||
|
|||
\section{Genius Ways} |
|||
|
|||
\paragraph{It's a true hack.} |
|||
|
|||
As I said way back in the first issue, I define a hack as ``an appropriate application of ingenuity''\footnote{See \kref{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html}{http://www.catb.org/~esr/jargon/html/meaning-of-hack.html} for more information.}. These are rare, often false (it only resembles a hack; like the wizard in \textit{The Wizard of Oz}, it's based on smoke and mirrors), and even more often small.\footnote{You can usually identify a false hack by how large it is.} If you find one, enjoy it, preserve, and help to disseminate it. |
|||
|
|||
\chapter{Not Another PDF Scanner} |
|||
|
|||
Way back in issue \#1 of this zine\footnote{Which is only three issues ago, but considering that I published it in 2021, it seems \textit{like} a long time ago. I really need to get my act together and get these out on a more regular basis.} I talked about a workflow for scanning documents because I am trying to be as digital as possible. |
|||
|
|||
In that article ``A Scanner Darkly, but with a workflow'' I mentioned that I used one piece of commercial software (VueScan) because it did what no FOSS\footnote{Free and Open Source} software could do: work with my printer and also sort pages effectively when my scanner's ADF\footnote{Automatic Document Feeder} does not duplex (i.e., it does not flip pages over to scan the other side). And while it is great software, and I did not mind paying the \$100 for a one-year subscription to it (the software company behind it is pretty much a father and son team), I didn't like being dependent on it. |
|||
|
|||
The reasoning is simple. If a company decides to stop producing a product, that's it; you're done. I used to have a great plugin on my WordPress sites that added social media sharing icons to each post. The company that made it got bought out by Oracle. You might think this is a great thing, because Oracle is a big huge company with a lot of resources. But often, when big huge companies buy small independent companies, they are only interested in one or two of their products, and let the rest go. And this is exactly what happened. Oracle suddenly decided they weren't going to support this plugin and it just stopped working. The company's webpage for the plugin redirected to an Oracle page that basically said ``fuck off'' and little more. No explanation, no recommendations of similar plugins, nothing. |
|||
|
|||
At least when FOSS software projects get abandoned or the original developers get better paying jobs delivering pizza, there is always the chance that someone else will take over the project. Better yet, you—yes, \textit{you}—can donate money to the project to help support it. |
|||
|
|||
I first found out about NAPS2\footnote{\kref{https://www.naps2.com/}{https://www.naps2.com/}} because I had downloaded a book from the Internet Archive\footnote{\textit{Inherit the Stars} by James P. Hogan, which you can read at \kref{https://archive.org/details/inheritstars00jame}{https://archive.org/deta\\ils/inheritstars00jame}} and the pages were very, very yellowed. (It had been scanned from a pulp paperback printed on cheap paper with a high acid content. How seldom we plan for the future!) |
|||
|
|||
I was looking for a way to lighten the background of the pages so that it would be easier to read. My usual solution for this would be to open the pdf in GIMP, opening each page as a separate layer. I could then figure out the settings for one page, convert that into a script (GIMP is scriptable!), apply that script to every single layer, and export the entire thing as a pdf, remembering to tick the box that says to export layers as pages, and also to do it in reverse order. |
|||
|
|||
That's not a huge amount of work, but it's still—work. Surely, there has to be a more automated way to do this, no? |
|||
|
|||
I searched and I searched, and I was rewarded for that search. Someone mentioned that a program called NAPS2 had this very feature. The name didn't hurt at all—at this point in my life, I am very much in favor of naps, unlike the five year old version of me. |
|||
|
|||
\section{Interleaving} |
|||
|
|||
Even better, NAPS2 had an ``interleave'' feature, which meant that I didn't need to use \texttt{pdftk} to do that.\footnote{To be fair, this is a feature which VueScan also eventually added at some point.} So scanning longer two-sided documents suddenly became a lot easier. |
|||
|
|||
The only problem was that NAPS2 offered \textit{four} versions of this command: interleave, deinterleave, alternate interleave, and alternate deinterleave. (These are very neatly contained under the ``Reorder'' icon in the main menu.) I knew one of those was what I needed; I just needed to figure out which. |
|||
|
|||
I'm a scientist, so I experimented. I took five sheets of paper, wrote the odd numbers 1-9 on the front side and the corresponding even numbers 2-10 on the back side. If you flipped through them, you would see something like what you see in figure \ref{naps2-orig} |
|||
|
|||
\begin{figure}[h] |
|||
\caption{The document as originally drawn} |
|||
\label{naps2-orig} |
|||
\centering |
|||
\kpage{1}\kpage{2}\kpage{3}\kpage{4}\kpage{5}\kpage{6}\kpage{7}\kpage{8}\kpage{9}\kpage{10} |
|||
\end{figure} |
|||
|
|||
Because I wrote on both sides of each side of paper (in order to emulate a double-sided original), I scanned the pages, and then flipped them over and scanned the other sides. And because I am scanning these upside down, the even numbers end up in reverse order. So I ended up with a pdf that looked like figure \ref{naps2-scan}. |
|||
|
|||
\begin{figure}[h] |
|||
\caption{The document as originally scanned} |
|||
\label{naps2-scan} |
|||
\centering |
|||
\kpage{1}\kpage{3}\kpage{5}\kpage{7}\kpage{9}\kpage{10}\kpage{8}\kpage{6}\kpage{4}\kpage{2} |
|||
\end{figure} |
|||
|
|||
That's progress, but it's not the progress I wanted to make. I tried all the different options available under the ``Reorder'' icon, and finally figured out that ``Alternate Interleave'' would produce the final pdf that I want, which you can see in figure \ref{naps2-final}. |
|||
|
|||
\begin{figure}[h] |
|||
\caption{The document after applying ``Alternate Interleave''} |
|||
\label{naps2-final} |
|||
\centering |
|||
\kpage{1}\kpage{2}\kpage{3}\kpage{4}\kpage{5}\kpage{6}\kpage{7}\kpage{8}\kpage{9}\kpage{10} |
|||
\end{figure} |
|||
|
|||
If that looks like the original document, it is definitely not an accident; it is by design. Print that out and you get something close to the original.\footnote{I say ``close'' because a scan is never the equivalent of the original. It is a reflection, an imitation. But it is not the same. Every time we copy an analog object, we lose something. Replicative failure is a thing.} |
|||
|
|||
\section{Adjusting the Image Quality of a Scanned Book} |
|||
|
|||
I originally downloaded NAPS2 because I wanted to clean up a scanned book I had downloaded from the Internet Archive. It was an old pulp paperback, published in 1977 on cheap paper not much better than newsprint, and it was \textit{extremely} yellowed. |
|||
|
|||
The way I would normally handle this would be the GIMP method I described earlier. But that's a lot of work for a book I just want to read and be done with. (No archivist work for me here.) |
|||
|
|||
The workflow for this is fairly simple. First you import your pdf using the ``Import'' button. Then you select all the pages and click the ``Image'' button. The options are pretty limited: you can adjust the brightness and contrast, adjust the hue and saturation, or you can sharpen. It also has an image called ``Document Correction'' which is great if you are scanning in a lot of hand written notes and need to add a lot of contrast. (This doesn't work so greatly in the case of a badly yellowed book, unfortunately.) |
|||
|
|||
You're probably not going to get a perfect book back, because the options are pretty limited. The trade-off is that you pick your settings once, and then NAPS2 handles all the work while you go get yourself a cup of coffee—or take a nap. |
|||
|
|||
\section{Adjusting Images} |
|||
|
|||
Even though NAPS2 was designed to be a pdf scanner, it also has the ability to save individual scans as images. Even more importantly, because each scanned page is basically an image, you can also edit each page as an image by double clicking on it, where you get editing options like crop and rotate, in addition to the ones I mentioned earlier. This is pretty handy if you're scanning something like a manual that has different sized pages, or is printed on large sheets and folded into a box so that you have to scan it in sections,\footnote{Every piece of furniture I've ever assembled has instructions like this, but I've run into quite a few manuals that are miniature versions of this, like the earbuds I wear on my daily walk.} or a package that has care instructions. |
|||
|
|||
And if you're wondering why I keep banging on about manuals, it's because I do keep them. For years, I kept them all in a large three ring binder filled with page protectors that I could slip them into. It was big and awkward, and don't dare tip it the wrong way, or you have manuals all over the floor. |
|||
|
|||
At some point, I realized that most manuals are available in convenient pdf form from the manufacturer's website, so I started just downloading those, making sure the pdf was identical (or identical \textit{enough}) to the original, and then tossing the original in the recycling. |
|||
|
|||
\medskip |
|||
|
|||
\paragraph{Summary:} In short, NAPS2 is everything I need in a document scanner. It gives me some of the editing features of GIMP, has a simple interface to use (you can create different profile for each kind of scanning you you) and it just plain works. I recommend it. |
|||
|
|||
\chapter{Chemistry in \LaTeX{}} |
|||
|
|||
\section{Package \texttt{hmchem}} |
|||
|
|||
For typesetting chemical equations: |
|||
|
|||
\ce{CO2 + C -> 2 CO} |
|||
|
|||
\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-} |
|||
|
|||
\ce{1/2H2O} |
|||
|
|||
\section{Package \texttt{chemformula}} |
|||
|
|||
For typesetting chemical compounds and reactions: |
|||
|
|||
\ch{KCr(SO4)2 * 12 H2O} |
|||
|
|||
\ch{[Cu(NH3)4]^2+} |
|||
|
|||
\ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \par |
|||
|
|||
\ch{\{[CH2=CH-CH2]- <-> {}[CH2-CH=CH2]- \}} \par |
|||
|
|||
\section{Package \texttt{chemfig}} |
|||
|
|||
For drawing molecules: |
|||
|
|||
Glucose: |
|||
|
|||
\chemfig{?(-[:190]OH)-[:-50](-[:170]OH)-[:10](-[:-55,0.7]OH) |
|||
-[:-10](-[6,0.7]OH)-[:130]O-[:190]?(-[:150,0.7]-[2,0.7]OH)} |
|||
|
|||
|
|||
\chapter{A \texttt{git} Workflow} |
|||
|
|||
|
|||
|
|||
\chapter{More about those folders in \texttt{root}} |
|||
|
|||
|
|||
|
|||
\chapter{Coda} |
|||
|
|||
\section{What I Learned About \LaTeX{} While Creating This Issue} |
|||
|
|||
\subsection{Page Count using \texttt{detex}} |
|||
|
|||
\subsection{How to Create Macros} |
|||
|
|||
\section{What I learned About \LaTeX{} While Creating Something Else} |
|||
|
|||
\end{document} |
After Width: 510 | Height: 264 | Size: 28 KiB |
After Width: 1160 | Height: 849 | Size: 136 KiB |
After Width: 88 | Height: 31 | Size: 1.6 KiB |