From 99f479ee1905d87dd8b1f17f5bceb1422cd78e7a Mon Sep 17 00:00:00 2001 From: John Whitington Date: Sat, 10 Jun 2023 15:04:47 +0100 Subject: [PATCH] Chapter 1 fixes, manual --- cpdfmanual.pdf | Bin 398486 -> 398505 bytes cpdfmanual.tex | 28 ++++++++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cpdfmanual.pdf b/cpdfmanual.pdf index 7cc2d555696f66f77ea13035519f7ccd437283d7..31a1ab31776a99d7cd9d46575063205dba4f5465 100644 GIT binary patch delta 12759 zcmajEWl$YW)GZ7g{NU~q+}$O(1$TFMcQ^!h2zGD|Zo%Chf+Towcb5Rc`SQGPeLwDx zTeqrb*RIuTdS-Ri>e)S=QAto)Nl;Hz2+PUI&6B!AM-QseGx6AKM+HrntJ++O=j+`( z>ZCpYc4Eux%F5~Rp6`h22~xEj)t*iXOv!cZ4H6GcqZ!fW{V9?KBaZ>~l^p7MZ{z3R zwpbZ~agBT#AM|hgQaALtX_g)Fm#wo${A+<7FDEYsqxY715W-o`qW1l(mtFo$=Tui| z3mM)R1v}7d!*Mm1{KrXLUW21^aC_I&UgUr%QG+XiR=68x`u)!%HtyBI1rzjtPdSTw46S8XSC{L`)pZXS{H^Y+eEHUkzITQlzluaky9O@Ch6h`2J)lf*o}X7E@PTmNW`xE9l0$ z-LPcSE4LLZZm4L*q1ZEXpld_@X(jUCcf2b-q&&W@!?|K+KwdAKI~4t6E(3wU5h94R zZE-;N?{DGY&;TM5dRt6I=zTQ@0->6g`PHjRG=zUj*O!U=yluZ-Pkwg()*pRKB9yzL zBNSbR8t({oDlE!Fq4;_8KnjknPmTv7#yd~(w2^6XYuico$*X&N@^o!Dxq9Wn9<6Ru zVs5u@7#9k-w%ro@Fxutnwk1jgVF!gq*`vlpA!fOQHH)PBDYKHqWHOhj<0W9<3`wBs z&ib+0OpP4FMWM%I9MGS9e!KsM=8G|D00e$7Yr|#HtsX0tSdEy zS3_X=HCL_zc=@2Sq6&~g9 z+~FrGi3DAT;{ACjEi}Q>zkkSQ_ML1b5AES`KhdbNb~8oXas#yONxh)uICVW(qMjMQ zxEjD7RV?`&aX%|qH_xJ<(CGx*tmLDu9r7{Wg*c!eR&VVOEGFh?1c6*~{ffh}(DFqs zZuvZ|@RPiswx=(;@pECw!Il@MyIv0-lp>VJllY0xZ49quaQDA8=iXENKTl7)(KjVe z36z)Kmp5|5Bme3%oX&RX>n|nNLo?4C`uN7zfeIgY%u5jLDUL$~FwcvC7GL>Sb$xctJ?9l&IOsOkOa=t{ex4a)rKtGelC`y4s?kDg~Y~66%`v z;@x8ktQ?>_&?vGZ85}=U3DCpBuD^OFbrA#*c+$-z3N^4&8~wsnTh-xQ_G46hdcgO* z&)aJtc-X{H5yk$knji7HEMgMj_>1|xx9+Ur*HnjblJ88oO`QbqWZ`HSjOof_NWuoi zD-5L`)IL*1Fd^vsChPNDNCx0wr2t;L_mf%3*Zx&-TuyGMvOom#w&ySwv;zQQYFRR9 z52PW)TH|4}*2k>Bdrda_AhJ9NS@|Op{mJ!CFxC|fwLqWVs_r^T!z%LL!q58iav&S; z18<@h(Z{1}#=yxXX)#g0+pa313nOBi{h2gtwkiszKp#jg9g9^WY}T=Q%szn8F`bS_ zYV{XIZZo>vO@9d~`+!JLe_d_;qNlDpH*{FCdPfl+yb$wW{||xCO(g98C?4j}j68c@ z@L&H^!WNtvvT?_TI@WwOn2J56StSm=sOBqa@(US!?=a&`2ayX5JltB4gaa|yhUK|U z&X2wdkO<0usEtbZlOv>g>;Rcf8a^~7`MqPg>(mf6=3MQPgEqOC^ zNfMnl2ut-!2s|CS_m=D(Y58%O99bf%r9gsy7nz=nv{@A=#2FgCmqL6*86=(L2=2}} z6L16pfK{7BYsc8r@yX>cJdO%WpQ3pH3$Vco9w2#KT0_y>oLXz#QHY`HN>`%-8ftq6 zNI|`@wP`v--YSD#8#}&jY-C|qR5Z!-;lRJvuSw!dH4LC;%LGq@7nC)VvM-T{j$Jrj z>tNz4W~9dhFUxDLeT(ecT(h6H$0zt(in*4PzVZ(t_;~?+=YW_7sSxSLCn5=wyw*fW z3?lcmT3k~H8KFSCW*i2#f|hkeNoquE6LD_JTX|cftL?*FW~crh)*?e_G`)pLem@xQ$N;D>Ug>ZJ$Z(s!+~qPcm@$&HeIyMmDR$$jpv-*Q zt%_v&9t*uj&Ey+~{WykzQRaj+LxRr6u;yJzAs(B%(f_s8}m0!nR9 ze(n~CIUCC{LMCZ6dne@rQm^)eI1_Wy+4^PGTHVxGVlZt+Gl5O(pf|LPqg(T9PW;ux z2jF8KcPO+TwS`T5~Gw_*Eigdwwz?}#tO@ptR2a0>J843cDxFGm*ft>7ZK?*(*nIM$WJ z#y7ZkjcrWC!OF#Uh>2Zzcl&(Uw$-82zo|lI!}+BL!Kd*d4KYg{ukO~_C3s~H@v96D zQ$}gs+;%>!8;+Xql~me}f)pB#bz`WFV%0+2T-u1*{>CE3)%1mJFThU};n3QF0b*7fkt57!KI;?p9_v8H*xu`xXz8dEU zj*fBK@HP{n`(4(bdQL!qb5J@BGpt+hs^>Jx4|O^9dmgm?De{{Z5dzTBIJ4X#f2`*4 zt}cY44U*FEJz=q4;kA`H&DLzL19WT@VshQMUNno;S|PS0u)Yn2)#sw zkx4Dc=3LV98cjgZ&>ASbaM0L}dE?&w#f_o7k{Q;sp}vXqSeod$Fd;N08M_l_H;nHmiWfGfiF}S@472UL zD(@K6@L4N+P?&?N0~F?>Rw;aIP2f7A4U;Lot^@~^1nN}=WSBknApHln*{Bqbb8=W1 zDq&R9P2zptCp_j9`>-W%%R?`*3x-HfHGXXU#8sMC46*UhU0l$4%u9ja@LDifN;F2D z%oU*Z(5M>gF1Oy-C#9EG+I5%`o8=p2*3LYpj+8Xx^F z%+kTHBNd;zrBo7mXDiR}JyZkTN^2+9kQ77d^J$~_@D6MibHV7-W2NWRfctSg<*7y# z1T9tD8NRy9ryV5U0NZ|{iQ6uG+_*~3oic3AD92`NyDPS5V#MoYl4$cfXx@J^DnJ8e zIvz?vhagbbX@%1mFYDUCRLka9gp#G$__Q!`^?2@+`L(H95{3tsc*VHjgvO}cF zFfh;Z1><~8mg|q#T#y;`9gUKLT^)1 z_OYa(t(4La)RR7a0{;eTaphPsD>E294h4><_bbcnC1k-0fq>8ypOKv!f3%-8Q}hPH z^ZOUD;_K6-E%V>+l#;4?7OW4zR2L!{d!1+Hb`VH5S?3-3(-xnm8cXGrY!Cf$GeRzy zL>^S6kv8)i)u?njb0VEZtWNV|c@(@F%NZZhbJ~IRJE6!u7=N@id9uSR>G7fp9Pz?s z#u9@J8LY891T|t=tw-tWo*_>wX=nPhrsJr-~8 ze^~gr5FrcLZ?|&^)>?lt!5CgN-NB(Tk4cFx+6Sa1^wwZJS?HO4>d|kKhWCA4i?qgs zCcdp1XR@}#s>NQSmDL!>lOMJuDVAbAJggGKTB!q(iIvDK9h!i59wg-D1}xL2{6J;w z3(^OsS-bjPnV7tA=3Z@=Nkc7hb>PrCol%b*DJ;gXuZIFSFuq@OR*$>m3tJ5$esyt) zpn(5C@#IEf0%6bd?nLtD+6~fMJT&5#wm&$VzS<|U8dM?*Edy6e4RrYP+E>_bue^DO zF>=Abl%F)W=1mDZLdtJ4VP)o{?yF4Un;oXiifA>Sz3E|9?f+jr1z4(s_*z!*vU zL-KN>9EGlcESsI;<9o@WeAFFN5xZ(^o3w9sGciLzi+Wal$(gbi|9Be36_61^Dw@Qs zX+6K9vta0=tFz2ov_pCBBu57)nV8Mqz>kNWTTwV-eCYF_viY7kzP7f{Y^~V%X1l7s zgm=QRGM`juY$KJAMh`}pKR8z&0(j8Zw0~dBL`!rc^a~eF0h|>hytSE6{mIgag`lw* z5Wd^?8LoXoKZgHfWxr6qICKU zd8~`y>yj{)#%JY_n*>Olt_2I>+oHEb3CG?FyxY%wkDl-a+<9z*S5V!jSt3rP@#Ljn zzYnN7?cxQYF?fs`0;U_s5%0>Y@i&LfkCU?Q#fvgaX4Y19q!a6%TxI#F`AABSc68bCHpK=xaE#m@ztFM6V}rkG0kBi68~-a- z_|x5B7(u#|DQm4*8`C=MdTLsjq4?0ZmySAyHyay`hI+$#V$|H`s3w#@W~a8wZzyQ& z`5W^(fa!=Bw%na61($~}8yj`x*d$i;*qTyZlEVyxX)>W^Y1YE4xU&Tu137)(A8+?m zg}3H3Lxe@l3H2s-I~ASce{)!rToq@ma}Y`TbUQ%B>#TaSPODn6o(2*EmjlmxWa#4B4bfmI-okWGpDv73D z0i}oft)T=NZ2bPF5eeJdxKWv#wkFiY%m)dVk!QsG!qvAPZ?yCf#>F_kD+&B%i8Geo ztMk-U(A{Y$q2cPdvcA=hYlWhg&occ?)&zt;dvY)MSIjMFF)kUGKDbVnz_O>;R}b|~ zmME5(erjANQbZo}?nD4C8s`N4SgSlAZ4fmu9~Of|fAD9nZxta!IqzvG&tJc!TR8zQE__a~fUW+S5T5_+0V5E=O) z(Djtn^tJdF{yvQAdxfX2W?EE21f4DBkjOUXubTX~FE+A|ON^f*30-lv7a5Qx|2V=M zQJqN=ft=4=C4x13CcgIlPW(G9^EU}HG|B&oKr9qaAywcKKA=5hUN8^*YmL34#a;~E z!iYMBfS~Y(O?m7DN%+rs!KyHM4JZ{Bx-F-1CiwZP!3+8{T;%~jwRZsF!5b;bCkG{$ zbn|no)y@d&*qmW;8q6=h(XY3FUjX)p^x7qY$<6H4nCCyW{NEq*kcV%&>4)R=0LJ}R z(a;`Wt4DeU)3PkKpWM}=5kI~oBUs1vD6-B2RTw5{V*`))F0|fF8Lbj2XF!9P$tonr zjRMgVW%YOEbhrx`nut6613%DJ#yHVGsa)vd;@|i%COj1VO|6G?{H<#VLqHb`Nbl-s z{)+qB()OB*p@Q;YMhh=g?{-iSBH`(hz-Do=;F(J6==}B}%4}@Af6z}>jyYiGm`Y4@ zBMYX(iteD(@=3R%ptX7}WdIelYCU0CKDBc(-Tg>K*@+=rg!;9Wl=^jX5GxpC&{p1= zi}JL*TfIe)%f9A0N-Xv;=iF|w>&40E@86B|M3VX`%d{mQ(0fENjIo|02SsbDfv#+> z>adZb=Il||2aB{^$^iKz&~hXBD^)f{Hm&$@fI*)4dMSoFlp!L6TnvZ-PA#6oI?ORq zl%9*7da-DE6?QM`^G9uU)!T{9XGUUAQnY+Rs=xDdgLM)&x{z0bUad6^J0rD$a*_r;SdaRo$em2DfSU$55%OBgV? zFbWivJ#dtYuHjryA7UWHR1!D&ULd6j(w>XNc+%P1pns_NrTkW83ceTo9#S}x5Fb_= zwd(J|bd`+lm`p^HG8^gOJL zF$;`WT)K9t)j|BG#|1EeB%l~_fT7Gj1fdOsSv2`6IP?DdR1XAm!&F9s67_BI6Z*dj z= z2<|v2qf5A@OX~9CbTEHRvK`_SxHRjEoK<{dqXJt3NdW=Jd+^ zdpF4H0Ypbyjsacjs8d8hrPvADZ7vsm1fR3DkGDb7)~}^&bxT3a z6=*t0x3&dgwDujkhj+X(#JK1&l>ux{lZP|UoIfeqzreIfZkR@1^g59<)8#DE$e6y!%_l(rmKe^G144c0>RuYdv#gxahwkjbK zi>zR-X^8D2L7p35GB=;IWgrDKhOD?9cT=cVVxqgMGBtJpU(mvvDyhPr6}_(`G#b6 zv#a~Tm>C>sJp8V8QU(#wO=FmKcK35Atd*iU!$=>?op{3HHi89!aO%-!X?CUL@RTC6 zp8VnbgWbi+W9j~d`jOKH`FPjL^{3hM@6v3KoOfNkKT)mMn6?vTrFvW>+*(+d@j9W8 z6RM_2lAJkxfiG;R1~6~FF!F(C_O-)(FWmQdP;0$e+utwmiQKIY?Y#q~*>s|~&Xxq) zl)|g3I(aW$}N1BbshI8Rellz~YP044|L7FNxN>cwJ?aw<9x4E>+M z)YY5SjI1s4a+GcTILL7Gss>0M+``2ADAPo8*9-^!EK%xV$*>dRRmIG<48SiW_O)W^ zrr{=YGxieG$r@#1s48j&v>>{8MOl}V8*HGXlCDRF;m3vqq|nOsA&;lGAWG0+>@3`wm>d@~=2 z4KH%WeojZuStx+_ne}q5V}I8iAV-0b#fO)muM9t3r}mBhN-yLF`xnFk{l1OOfeMTH z)q%=&@_MizJ%;)^#wLvAxY&|F`(})t%HkDS0~L^r6e+m{uLeQlk-=}5K&^p?7Z?zi zWWrZ9XErq^0hF$+!ZbD|C&3SnjKc+dS7tReTr{9)uQspE>A=cNCl-zjS!eVg@|0)o zqJ6ci*ZGpXZfJ$9ZVC#D3{>9+e|0GgCG1bRo&gfL2^xK=QRNBH6^}xBE2#qQQbg0n z$6sF7iNo5tvJG)5k?BPnDk-OYBEnSahm^LDCrcvH5*uo`=PI4uR*9S)OxwO%o)>zdT`_n zuOu0Lug?bCB;qaZv2Zi@Kf8SD@RG0DVSjz5rN}jqi0s4;* zvpG+}b&J78qcFDXQzOEt70FVjP`l%8lcDeTAWmNKvVr)Zr$8PN`7V48+ve}TPOr9ZmWllC-YGBZTLQrnIzs6ZTlD6B=af}|bfr|uX?)3N90XZ~ zXWoQZe^6b;ve#PYynXyeSuDGHsXacP879|#>0v45#)=dyzZ8fzj13vYGA?{tf-*0PkPl$REe<2_46W?5c5TKqPK1chSDt8qXA2TpPK6I= zyo25~#U?F|_W8FnhqsW*F2_WOk1_QoOsRgdW#Dk!@XDQ%Pt$}4uyjss+H>X86Rwbl zV{ViX4LG!PH0}1n=L=umM~88v?x>f0vcxkWDEv(q(kx{^7s0~s<#r`KrX$j@06NJq zaPp3Ae#fy(b!f{d+GnjW=^6*D>n)rp_jq3}R9~j*RkD#>^}&;kES{iR)HE5jT(%R6 zql15clp3#kTA2E=(rG_e&mz7=r2b^l9n3dYc+vTC=TEY>aW#)uzmD&@D&?buvU3?FH2R{3N)`5Lm&u0g7NWfr6=)tt; z0k%b9c-j9uod4#G+~)KdZ~_C$X!ssp*>LoA*~;*Iv*TiU9xeO~$)_1Z$I;U+m%Ukk zs<~~zpIFU5C&VgJ2DLH|?b? zHH~p6;dX&eH1?c57pRKH&#IdVML$qYKA+LJ1f1-_ve`v>K7?Oo!t^eHDjuw$;<=&Y z1IZbHjTcssZ^n_63?Do09igpF&cHh3O?Cq~>z{E+b$s`4V9-8&bf2kE{b6JA@aR4&@7u=yPOG7(yLc|WZu%8 z{HWdJLpszigi%HJn#E%Uk|VG|JG)*$kfJO6sU!Yp192Xne)r~BM zH>h>s)!SIu%QfrRH~PW;^PBFEQ_mp*{ZaQ2$tsrR%qk21ArwLP_m|h9vYvXsxYXGM zQMWs*vlze_mt*i7w9dnu9XI>SSUYio|G*{Z%UGS`LlU3~q=?-Q`XN+Ly=94nhi*_2 z2zR8evL;KdVg@p$zwA%RcOAp}^y;49d2rSsU$;t9THR)=@PMsG48c}{U>^hs=-LOe zfr8(nlv7tPR$lzC7U7ckdQhmd;Nj3QqQ|hJt$@g6@(?vXWFK?2s~cJ@@pZ8~KZ!f5 z*Y3I0nm-d4FNIDZJ?2GTOMz>JMOocCbO9wPUsGA;=FfwJ^N(Ija|=nvF48oH2|PVE z>HMg1-1S^(ji2%CqI#59SI@!;YOn>b8Gnzdx_qZmk#gGBrn-S$*#E*I*T+^8lRIuE z^nCu1^zME_GLn_=c%ZmIe)D&N(4;SNMrs*eE_E!WtPA%FB-t>jrJM0}-k~w;slV-% zFJ!*XNaG3v;d1?LS?Dk2w#;US%cOVUklqaD)*0i`S!6KLRw(hZT$(U+D`_wKeFWRn z=uU0edArCGDo)+j5L$ml*X%CcV0+LpD(fYjg^jpmuQy#`dhqYSK4Fs{J?5?KL-5G$ zj(bmgRVGgo!{J%$?t-w>*4v^p-qD{hJ7J@4m!++|@0-)$r9b85TA%r3-l21O`@6uD ziU6Fbcxk}D3$`s@8m_esj)$F_gC8vW21oY4X`B5U+%tlzgaD@$mjtJzG`BbppEM6Y z2d4}-y8tJTIJW>dw>TH4D24Figk zI0ozoKD;=AE(qhC{v$kC0EJQI5<-YLt3Bh4Edzmf!gcyq4`V+|24TT)26&lacoD7& zn~B(p0cQ^p+rng;oot)Jl^}#QXcu@pX!Y1NNKTRUaOV;ZGC8#Cs1J|}u`c;#S4<_8;LX>2DJ6C#Yc)TYxZjfhCd^KXD=ZqPS4kv%{0v(;eyv{ z%{<(oppxD@f>rocibCaO{#8kC(pu#Q)aEf;8^rVq&M-9+$VoNhINz-Oj578F1(z)@ zcOGq)16~c@1$AM(K+^A!G7V-8wxV%|pm4@$A=}&RxhB}lqH&!uq$}tsS`&trNmIBQ zzy-k$qpsvy60N~H!kI0?Od^IT6tV5ttYsxA$`o6P?36YTwsmG7f2Bd#LEIQG;KI5; zQqco3!F*b>dD8Y#pnUlcQ8SY*0wTjhH=fdA5uSUjNcr*}M>DI$e~Cp_oZtk*L#}y} zRc%l>PJnX5Sd;C7sdB>+P5|>z3%2^XzzEr-+=9#hAc6Qb3CZTu3=fZF*%F|hO!K6r z*$0f%F!~2we3myRQtA=1&k}3W6>M@1_?-kN?4IuQ4@G27bd)xH<;y@qDU+{L`#1rV zVcgg$i@D}(o*Z*aW0(RX#-2qySi5EaA>U>zhhqLA$Dwm#(QzKJJ;$>1cI7bcu{|>* z#fizM;|vex7)lJqx9+i^9s-GKniBher1t1CPmO10d$6Y@V2ioQ20d@A_gKAE*oCCmTDq3A;*`={<7i)59SawK2ld?bkb zl&bu{zJ7#p`2U4yiCWVCJq=j#V_XF4OpG+alC1!&iaAKm_bq`}r1m7ftYVX3cfq(sK$v+bGNKbkL@V?vOu#0C->_Ba|6hBt|F6Aj zh(R?9%fQ6qdq@ISK2(scun4sd(#wE6ckS&s;tqo=Q9^mtKJpF}e^^=f|2phfq0uK2 zn4_7rHnYJ$+c4R;-rrOSWcFl|4Jj5rx5t-t|8tlt>7o`en~IFmq|;1%k68bNo8hKL zOul2(o}4MjE)O-2_P}W{Gy{CUDGxF(_hh%`t zh{J16IwSqE&DxHj-Os2CKp$v?dzn5P`8y!!3&q<{RS!4Oh)n08>!d%kF{SaR1j01L zsx8c;B7>(WySlyO>rT9k#)y~e_uML|itf80C#c8s)w&*V4xNCP`ytR{K?kyheuiv7 zP|x8mwkej;^;z2QGB$rhKR^e`;2*;yFcZ8{_3UHtqa=nDZxbBDjSV2pAUqGqyCUbp z1GZ84f$#$u{0P6ofZLx4;KBV?u5j@o)uuR_0|f2xqXS;9*ovWKz|nlNH&k}$vH_HK zIO_qDOa!1Q<~qDjKUO>N(g_+NV*ptf&S6_r7XiH=-WQQ~;GZh?XdNyqF&0hO1%9oN zRT`3=hLACs{NVtsEBS7^dE?-$#_iFZXAml0;Ps2X8FUhyFy3|ha2w3jHb>YP%KuNi zA#-^IKvnzxch?wZFM=sp4F#S6Y>EPp^j|;#3H;UV2bURh1`(1;Vv`bCUuOrn{LF;JSA zVAuj0G#wgsG3OdH2J_wvm-HcCNy)3uy%sYtZ$sN=xBp2X3?O^+Z5vCEX>I6JEFWw^n>l z7_X+60kit)&}pAj8czZwr!Pf^+N5@EaCM*GAY_osrlru&8awU5>zz^BDGFk_<5XW!j=ROJ^t#yk@Tmgkt-X(#=H%R`^x}kmK6jQ@78G*Cpl9U; zDP_N(sLfdL-XYoDG29@zeqY%9R#q74<QmXvp^TS_4}5wJQ~qMoNABk|J4?zb zm>1|i^9Crx865Y5hR?^gH09p#zUgt+CBt_@uvzVYf{fRxP-St_oC`sn8xyh;PTbJ? zt3^|H)d_Pyg2nCQw40LpSQ60MAj800gXWyKU*rxJn*}mnG1Xz?*_|<9!$F_

A=%tDA~9Bvc&gFX1^i}*tvY7_Zeb#s&_ z_I@|L$NSZl1{bcb=EaOck80LsL7-xxe#Hd@w0Uk*@U85(oQSf;NjkcmhSxlTrcW3i zkST_D;qN(I0JGy`YqPc(K*Oo6{-CYI3o1L^-lnpLB_X)XpMa#f{=(1hj&+etEK2PH z;d%Y?mS$_|%Ys*~skDchh?&_@oqgDQu>zGEY5n!~QR%FMrX5k0B;LboXR`+$+Iy5X z$P;NX4ln-^7%_y0_NH51y&W3?sAC{$xK`-VwlG~7^ib)ONVhm?ay>VSz~0V|pi)8} zW6AZ!(B*%6L3Rnf?Fe}79b^C=ZO+=`DH`zKYejJ3u`Xt~7`!+|08M`lM#K*K0r{pK zT43>5x?dUx*YJ9ePV5QSTU>)w3$4*XZ+N2mEJ3brlB+@W<~!PbgIYk)dxE>qFjHF8 zZx*80?}G?MU3Z^;!w6~j|G{x`g)cuIi^lr??|+?rt{2Vn+w%*#5%8F;u-ipL5oo`*MGdL0#*4X{2c5%{^f(;Cyd_}ve zd6Ciwy18r1sxp02k0|N0u9jJ(#LzH2kznO)B3rNaF=qcO{F3{Bi_II}+nh>i-afl> zgCG!|`T2m&L6Wpqe^ERx|0%hd(iP6I`FO?3?$l6rAX=I{Fp2v+*chM{7hJ=Lx>TCU zMA~*7aV4+OR|Ocv^f zQ&>PoDKV?mLhj_4ZNqy8vHh9f{W3GUJujrXaSe_@NiZLlbfe2cY!{Rn%@4nvh+sGt zG|Exy881!ZfiVUs+4I2~o0{W5a6=I#Nktoz9_7e&M=2ti#!H-yw8+?b?zdxy$}|^R zaT_So$+!#p0uDSxZ!sr2$g~iI2PaZSSyb)VQj>&z;X}!^=N~0VTuZd@KdB8>>rWr$ z=A=-T{2q4hwPMwAJMl}tyLraaj#d?s;4vrV$xsK`*|AGQq`9Icgb$i zl!x3;x%xu;PngL})hwgM)?(E-W8V#QO?J&KSm^*W(8(pHZaU*p#wW&wC*$##5Y79J ziNdRe@h*Z1^UZX@%$l6LL<+VN-nf+nYpRE~-;3W{VzEFU{7d$}$7%lYnEV@2WdZs9 z3ugIc%s)_c|LiZ-o9Qr8K#{!Y(J9gqBU92g$mjNo>zCGO#{|C);bN+q$p0mLO9H=R x!;^q9aNv>u&wzmOeVXwqSg3wgLH7E?$JAj4?1TePj?BZ!flNaqts;Z`{{bydY5o8J delta 12698 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 SLX*IA@N&UZQAsLG!T%qMR8k=T diff --git a/cpdfmanual.tex b/cpdfmanual.tex index 1b2520c..34b4ddd 100644 --- a/cpdfmanual.tex +++ b/cpdfmanual.tex @@ -1,3 +1,4 @@ +%FIXME: FIXMEs \documentclass{book} % Edit here to produce cpdfmanual.pdf, cpdflibmanual.pdf, pycpdfmanual.pdf, % dotnetcpdflibmanual.pdf, jcpdflibmanual.pdf jscpdflibmanual.pdf etc. @@ -992,20 +993,20 @@ progress is shown on \verb!stderr! (Standard Error): \begin{framed} \noindent\small\verb!cpdf -gs gs -gs-malformed in.pdf -o out.pdf!\end{framed} -\noindent To suppress the output of \texttt{gs} use the \texttt{-gs-quiet} option. - -If the malformity lies inside an individual page of the PDF, rather than in its gross structure, \texttt{cpdf} may appear to succeed in reconstruction, only to fail when processing a page (e.g when adding text). To force the use of \texttt{gs} to pre-process such files so cpdf cannot fail on them, use \texttt{-gs\--malformed\--force}: +To suppress the output of \texttt{gs} use the \texttt{-gs-quiet} option. If the malformity lies inside an individual page of the PDF, rather than in its gross structure, \texttt{cpdf} may appear to succeed in reconstruction, only to fail when processing a page (e.g when adding text). To force the use of \texttt{gs} to pre-process such files so cpdf cannot fail on them, use \texttt{-gs\--malformed\--force}: \begin{framed} \noindent\small\verb!cpdf in.pdf -gs gs -gs-malformed-force -o out.pdf [-gs-quiet]!\end{framed} -\noindent The command line for \texttt{-gs-malformed-force} must be of \textit{precisely} this form. Sometimes, on the other hand, we might wish \texttt{cpdf} to fail immediately on any malformed file, rather than try its own reconstruction process. The option \texttt{-error-on-malformed} achieves this. \textit{Note: Use of these commands with \texttt{-gs} is a last resort; they may strip some metadata from PDF files.} +\noindent The command line for \texttt{-gs-malformed-force} must be of \textit{precisely} this form. Sometimes, on the other hand, we might wish \texttt{cpdf} to fail immediately on any malformed file, rather than try its own reconstruction process. The option \texttt{-error-on-malformed} achieves this. -Sometimes (old, pre-ISO standardisation) files can be technically well-formed but use inefficient PDF -constructs. If you are sure the input files you are using are -well formed, the \texttt{-fast} option may be added to the command line (or, if + +\begin{framed}\textit{Note: Use of these commands with \texttt{-gs} is a last resort; they may strip some metadata from PDF files.}\end{framed} + +Sometimes old, pre-ISO standardisation files can be technically well-formed but use inefficient PDF constructs. If you are sure the input files you are using are +modern ISO-compliant PDFs, the \texttt{-fast} option may be added to the command line (or, if using \texttt{AND}, to each section of the command line). This will use certain -shortcuts which speed up processing, but would fail on badly-produced files. The \verb!-fast! option may be used with: +shortcuts which speed up processing, but would fail on a minority of pre-ISO files. The \verb!-fast! option may be used with: \begin{framed} \small\noindent Chapter \ref{pages}\\ @@ -1026,13 +1027,13 @@ shortcuts which speed up processing, but would fail on badly-produced files. The \section{Error Handling} \index{error handling} When \cpdf\ encounters an error, it exits with code 2. An error message is -displayed on \texttt{stderr} (Standard Error). In normal usage, this means it's +displayed on \texttt{stderr} (Standard Error). In normal usage, this means it is displayed on the screen. When a bad or inappropriate password is given, the exit code is 1. \section{Control Files} \index{control file} \begin{framed} - \noindent\small\verb!cpdf -control !\\ + \noindent\small\verb!cpdf -control ! \textit{deprecated}\\ \noindent\small\verb!cpdf -args ! \end{framed} @@ -1046,9 +1047,9 @@ may be used to introduce a genuine quotation mark in such an argument. Several \verb!-control! arguments may be specified, and may be mixed in with conventional command-line arguments. The commands in each control file are considered in the order in which they are given, after all conventional -arguments have been processed. It is recommended to use \texttt{-args} in all new applications. However, \texttt{-control} will be supported for legacy applications. +arguments have been processed. -To avoid interference between \texttt{-control} and \texttt{AND}, a new mechanism has been added. Using \texttt{-args} in place of \texttt{-control} will perform direct textual substitution of the file into the command line, prior to any other processing. +It is recommended to use \texttt{-args} in all new applications. However, \texttt{-control} will be supported for legacy applications. Using \texttt{-args} in place of \texttt{-control} will perform direct textual substitution of the file into the command line, prior to any other processing. \section{String Arguments} @@ -1098,8 +1099,11 @@ the command line or configuration files. These are: bit ASCII by dropping any high characters, or \verb!-raw! to perform no processing. The default unless specified in the documentation for an individual operation is \verb!-stripped!. +In modern usage, \texttt{-utf8} is almost always the sensible option. + \section{Font Embedding} \index{font!embedding} +%FIXME: Check and fix when -font-ttf done Use the \texttt{-no-embed-font} to avoid embedding the Standard 14 Font metrics when adding text with \texttt{-add-text}. \begin{cpdflib}