Parameters for the placemat software

Data, quotations, and other non-conversational posts containing reference materials.

Parameters for the placemat software

Postby jdaw1 » 20:06 Tue 20 Mar 2012

To help users of the placemat software, in this thread will be posted the used parameters of the placemat software. The intention is that placemats made by JDAW can be used as examples of how the software’s features can be invoked.

This thread is not to hold discussion of these examples, which should be in the usual thread for discussion of the placemat software. For this reason this thread will typically be locked.

These placemats were generally made with the then-current version. It may well be that some later versions of the software have changed the names or usage or existence of some of the parameters. Hence readers might prefer to start reading at the end.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 20:06 Tue 20 Mar 2012

Monday 12th March 2012, The Bung Hole, Cynthia in London (placemats, planning and arrangements).
Image Image
Code: Select all
/Names [
   (CJ)  % Cynthia Jenson
   (DRT) (RLC) (BMHR)
   (AHB) % Arriving at 7ish
   (CMAG)  % Will see what I can do. Should be able to make it.
   [(RA) {-0.06 Kern} (Y) {-0.02 Kern} (C)]   [(JDA) {-0.04 Kern} (W)]  % late
   ()
] def

/Titles [
   Names {dup length 0 eq {pop} if} forall
   (+) (&)
] def
/Circlearrays [ Titles {[exch]} forall ] def
/Belowtitles [ Titles length {()} repeat ] def

/HeaderLeftText [(The Bung Hole, Monday 12) {SuperscriptOn} (th) {SuperscriptOff} ( March 2012)] def
/HeaderCenterText [(Cynthia) /quoteright (s in Town)] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=5796&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/papers/2012/20120312_cynthia.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bunghole)
   (http://malvedos.wordpress.com/)  (The Malvedos Blog)
] def

/TitlesFont  /MyriadPro-Bold def
/FontSizesRatioTitlesMin 999 def

/CrossHatchingTitles true def

/GlassesOnSheets [
   [ 0   1  Titles length 1 sub 2 idiv  {} for ]
   [ Titles length 1 add 2 idiv  1  Titles length 1 sub {} for ]
] def  % /GlassesOnSheets
/GlassesOnTastingNotePages GlassesOnSheets def
/GlassesClusteredOnVoteRecorders [
   GlassesOnTastingNotePages dup
] def  % triple-depth array, same length as VoteRecorderTopTexts and VoteRecorderShowTotalRow
/VoteRecorderTopTexts [
   [ (What is it?) ]
   [ (Wine Of The Night)  (Q:) ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ true false ] def  % Must be same length as GlassesClusteredOnVoteRecorders
Software version: 20:00 Sunday 11th March 2012.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 20:24 Mon 26 Mar 2012

Thursday 22nd March 2012, The Bung Hole, JDAW’s oddments (placemats, planning and arrangements).
Image Image
Code: Select all
/Circlearrays [
   [ (Santelmo) (White) (from Lidl) ]
   [ (Santelmo) (Tawny) (from Lidl) ]
   [ (Santelmo) (10Y) (from Lidl) ]
   
   [ (Cruz) (White) (from Franprix) ]
   [ (Sao Pedro das Aguias) (10Y) (from Franprix) ]
   [ [(Roz) /egrave (s)] (Reserve) (from Franprix) ]
   
   [ (Passadouro) (1995) ]
   [ (Passadouro) (1994) ]
   [ (Niepoort) (1994) ]

   [ (&) (And) ]
   [ /plus (Plus) ]
   [ /infinity (Much) ]
] def

/Titles [
   (Sn)
   dup
   dup
   
   (Cz)
   [(SP) {-0.11 Kern} (A)]
   (Rz)

   (Pd)
   (Pd)
   (Ni)
   
   counttomark 1 Circlearrays length 1 sub {Circlearrays exch get 0 get} for
] def

/Overtitles [ Circlearrays {1 get} forall ] def

/Belowtitles [ Titles length {()} repeat ] def

/Names [
   [(JDA) {-0.06 Kern} (W)]
   (DRT)
   (THRA)
   (AHB)
   [(RA) {-0.06 Kern} (YC)]
   ()
] def

/HeaderLeftText [(The Bung Hole, Thursday 22) {SuperscriptOn} (nd) {SuperscriptOff} ( March 2012)] def
/HeaderCenterText [(Some Little Ports)] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=5841&view=unread#unread)   (Review thread on ThePortForum.com)
   (http://www.theportforum.com/viewtopic.php?t=5750&view=unread#unread)   (Planning thread on ThePortForum.com)
   (http://www.jdawiseman.com/papers/2012/20120322.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
   (http://www.lidl.fr/)  (Lidl France)
   (http://www.franprix.fr/)  (Franprix)
] def

/SubtitlesTastingNotes Overtitles def

/FontSizesRatioTitlesMin 2 def
/FontSizesRatioAboveBelowOverMin 99 def
/OvertitleMaxFontSizeProportionTitles 0.4 def

/GlassesOnSheets [
   [ 0 3 1 4 2 5 ]
   dup [ exch {6 add} forall ]
] def  % /GlassesOnSheets
/GlassesOnTastingNotePages [
   [ 0 1 5 {} for ]
   dup [ exch {6 add} forall ]
] def

/WaterCountTarget 15 def  % intended number of tickable squares

/VerticalMiddlingTitles {Titles WithinTitles get type /nametype eq {/MatchNone} {/MatchString} ifelse} def
Software version: 14:00 Monday 19th March 2012.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 07:03 Thu 29 Mar 2012

Thursday 29th March 2012, The Bung Hole, The Birthday Boys (placemats, planning and arrangements).
Image Image Image Image
Code: Select all
/JDAW [(JDA) {-0.06 Kern} (W)] def
/RAYC [(RA) {-0.06 Kern} (YC)] def

/RubyCount 8 def

/Names [
   (BMHR)
   (CMAG)
   RAYC
   (THRA)
   (AHB)
   (DRT)
   (RLC)
   ()

%   (AP)
%   (CSD)
%   [(CSD) /quoteright (s +1)]  % Terry
%   JDAW
] def

/Titles [
   (G)
   (G)
   (Ck)
   (F)
   (N)
   (RP)
   (Rs)
   (TPS)
   
   0 1 Names length 2 sub {Names exch get} for
] def

/Circlearrays [
   [ [(Graham) /quoteright (s Six Grapes)]  (DRT) ]
   [ [(Graham) /quoteright (s Finest Reserve)]  JDAW ]
   [ (Cockburn Special Reserve)  (RLC) ]
   [ [(Fonseca T) {-0.08 Kern} (erra Prima)]  RAYC ]
   [ (Noval Black)  RAYC ]
   [ (Ramos-Pinto Collector)  (RLC) ]
   [ (Quinta de la Rosa Reserve)  RAYC ]
   [ (The Port Society Ruby Reserve)  (RLC) ]
   
   0 1 Names length 2 sub {Names exch get [exch]} for
] def

/Overtitles [
   (Six Grapes)
   (Finest Reserve)
   (Special Reserve)
   [(T) {-0.08 Kern} (erra Prima)]
   (Black)
   (Collector)
   (Reserve)
   (Ruby Reserve)
   
   Circlearrays length RubyCount sub {()} repeat
] def
/SubtitlesTastingNotes Overtitles def
/Belowtitles [ Titles length {()} repeat ] def

/HeaderLeftText [(The Bung Hole, Thursday 29) {SuperscriptOn} (th) {SuperscriptOff} ( March 2012)] def
/HeaderCenterText [
   (The Birthday Boys)
   {TypeOfPagesBeingRendered dup /Glasses eq exch /TastingNotes eq or {SheetNum 1 le {(: Amuse-Bouche)} {(: Plat Principal)} ifelse} if}
   {TypeOfPagesBeingRendered /VoteRecorder eq {SheetNum 0 le {(: Plat Principal)} if} if}
] def

/ExternalLinks [
   (http://www.theportforum.com/viewtopic.php?t=5202&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/papers/2012/20120329_birthday.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bunghole)
   (http://en.wikipedia.org/wiki/1965#March)  (March 1965)
] def

/GlassesOnSheets [
   [ 0 1 3 {} for ]
   [ 4 1 7 {} for ]
   [ 8  1  Circlearrays length 1 sub RubyCount add 2 idiv {} for ]
   dup dup length 1 sub get 1 add  [ exch  1  Circlearrays length 1 sub {} for ]
] def  % /GlassesOnSheets
/GlassesOnTastingNotePages GlassesOnSheets def  % For no tasting note pages at all use  /GlassesOnTastingNotePages [] def

/TitlesFont     /Impact def
/CircletextFont /BookAntiqua-Bold def
/OvertitlesFont  {CircletextFont} def

/FontSizesRatioTitlesMin 99 def
/FontSizesSetsGlassesPages [ 0 0  counttomark GlassesOnSheets length exch sub {1} repeat ] def

/GlassesClusteredOnVoteRecorders [
   GlassesOnTastingNotePages  2  1 index length 2 sub  getinterval
   GlassesOnTastingNotePages
] def
/VoteRecorderTopTexts [  % Must be same length as GlassesClusteredOnVoteRecorders
   [ (What is it?) ]
   [ (Wine Of The Night)  (Q:) ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ true false ] def  % Must be same length as GlassesClusteredOnVoteRecorders

/CrossHatchingBackground {SheetNum 1 le} def
/CrossHatchingTitles {SheetNum 1 gt} def
/CrossHatchingRadialGapStart 48 def
/CrossHatchingRadialGapAtInfinity 12 def
Software version: 21:00 Monday 26th March 2012.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 07:38 Thu 12 Apr 2012

Wednesday 11th April 2012, The Bung Hole, A Small Emergency (placemats, planning and arrangements).
Image
Code: Select all
/Names [
   [(JDA) {-0.06 Kern} (W)]
   (DRT)
   (THRA)
   (RLC)
   ()
] def

/Circlearrays [
   [ (+) ]
   Names {dup length 0 eq {pop} {[exch]} ifelse} forall
] def

/Titles [ Circlearrays {0 get} forall ] def

/Belowtitles [ Circlearrays length {()} repeat ] def

/HeaderLeftText [(The Bung Hole, Wednesday 11) {SuperscriptOn} (th) {SuperscriptOff} ( April 2012)] def
/HeaderCenterText [(A Small Emergency)] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=5889&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20120411_blind.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bunghole)
   (http://oldnickholborn.co.uk/)  (The Old Nick (pre-Port beer))
] def

/TitlesFont     /Century def
/FontSizesRatioTitlesMin 999 def

/VoteRecorderCrossedBox
{
   VoteRecorderShowTotalRow VoteRecorderSheetNum get execU dup
   {
      pop Titles WithinTitles get ThisName eq ThisName length 0 gt ThisName type /arraytype ne and and
      Titles WithinTitles get type /arraytype eq {ThisName (THRA) eq or} if
   } if
} def

/GlassesClusteredOnVoteRecorders [
   {GlassesOnTastingNotePages} dup
] def
/VoteRecorderTopTexts [
   [ (What is it?) ]
   [ (Wine Of The Night)  (Q:) ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ true false ] def  % Must be same length as GlassesClusteredOnVoteRecorders

/VerticalMiddlingTitles {Titles WithinTitles get type /nametype eq {/MatchNone} {/MatchString} ifelse} def
Software version 21:00 Monday 26th March 2012.

In the used typeface, Century, my initials should have been kerned a bit more.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 17:38 Mon 16 Apr 2012

Tuesday 17th April 2012, The Bung Hole, A Small Horizontal of 1966s (placemats, planning and arrangements).
Image
Code: Select all
/JDAW [(JDA) {-0.06 Kern} (W)] def
/RAYC [(RA) {-0.06 Kern} (YC)] def

/Circlearrays [
   [ (Croft)  (1966)  (DRT) ]
   [ (Gould Campbell)  (1966)  RAYC ]
   [ (Fonseca)  (1966)  (AHB) ]
   [ [(W) {-0.12 Kern} (arre)]  (1966)  [JDAW ( & STG)] ]
   [ [(T) {-0.04 Kern} (aylor)]  (1966)  [JDAW ( & STG)] ]
   [ (Quinta do Noval)  (1966)  (WS) ]
] def

/Titles [ (Cr) (GC) (F) (W) (T) (N) ] def

/Belowtitles [ Circlearrays length {()} repeat ] def
/Overtitles [ Circlearrays {0 get} forall ] def
/TitlesTastingNotes Overtitles def
/TitlesVoteRecorder Titles def
/SubtitlesTastingNotes Belowtitles def
/SubtitlesVoteRecorder Overtitles def

/Names [
   JDAW
   (STG) % Stephanie True Galley, right-handed
   RAYC (AHB) (DRT) (WS) ()
] def

/HeaderLeftText [(The Bung Hole, Tuesday 17) {SuperscriptOn} (th) {SuperscriptOff} ( April 2012)] def
/HeaderCenterText (A Small Horizontal of 1966s) def

/ExternalLinks [
   (http://www.theportforum.com/viewtopic.php?t=5905&view=unread#unread)   (Review thread on ThePortForum.com)
   (http://www.theportforum.com/viewtopic.php?t=5858&view=unread#unread)   (Organisation thread on ThePortForum.com)
   (http://www.jdawiseman.com/papers/2012/20120417_1966.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
] def

/TitlesFont     /TimesNewRomanPS-BoldMT def
/OvertitlesFont  TitlesFont def
/CircletextFont /TimesNewRomanPSMT def

/FontSizesRatioAboveBelowOverMin 99 def
/OvertitleMaxFontSizeProportionTitles 0.25 def

/ShapesInTitles true def
/ShapesToUse [/Flower] def  % At least one of: /Flower /Star
/ShapesInAbovetitles false def
/ShapesInBelowtitles false def
/ShapesInOvertitles false def
Software version 18:00 Saturday 14th April 2012.

The /TitlesTastingNotes Overtitles def was new: using one of the sets of subtitles in one place as titles in another.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 08:59 Wed 25 Apr 2012

Tuesday 24th April 2012, The Bung Hole, Delaforce (placemats, planning and arrangements).
Image Image Image
Code: Select all
/CirclearrayPortNames << /Df (Delaforce)  /DfC [(Delaforce C) /ocircumflex (rte)]  /QC [(Delaforce Quinta da C) /ocircumflex (rte)] >> def
/SubtitlePortNames << /Df (Delaforce)  /DfC [(Delaforce C) /ocircumflex (rte)]  /QC [(Quinta da C) /ocircumflex (rte)] >> def

/VintageData [
   [ (1975) /Df  (AP) ]

   [ (1960) /Df  (THRA) ]
   [ (1963) /Df  (THRA) ]
   [ (1966) /Df  (THRA) ]
   [ (1970) /Df  (AHB) ]
   [ (1974) /QC  (JHG) ]
   [ (1977) /Df  (AHB) ]
   [ (1980) /DfC  (WS) ]
   [ (1982) /Df  (AP) ]
   [ (1984) /QC  (AHB) ]
   [ (1985) /Df  (THRA) ]
   [ (1987) /QC  (WS) ]
   [ (1991) /DfC  (AP) ]
   [ (1992) /Df  (AP) ]
   [ (1994) /Df  (AP) ]
   [ (1997) /DfC  (AP) ]
   [ (2000) /Df  (AP) ]
   [ (2003) /Df  (AP) ]
   [ (2007) /Df  (AP) ]
] def

/Circlearrays [ VintageData {
   [ exch dup  0 get exch  dup 1 get CirclearrayPortNames exch get exch  dup length 2 le {pop} {2 get} ifelse  ]
} forall] def

/Titles [ VintageData {0 get 2 2 getinterval} forall ] def

/Belowtitles [ VintageData {1 get dup /Df ne {pop ()} {SubtitlePortNames exch get} ifelse} forall ] def
/Overtitles  [ VintageData {1 get dup /Df eq {pop ()} {SubtitlePortNames exch get} ifelse} forall ] def
/TitlesTastingNotes [ VintageData {0 get} forall ] def
/SubtitlesTastingNotes [ VintageData {1 get CirclearrayPortNames exch get} forall ] def

/Names [
   (Nick D.)
   [(J) {-0.02 Kern} (ulian W) {-0.15 Kern} (.)]
   (Tom A.)
   (Rob C.)
   [(Axel P) {-0.15 Kern} (.)]
   [(Derek T) {-0.15 Kern} (.)]
   (Alex B.)
   [(J) {-0.04 Kern} (acob H.)]
   (Ben R.)
   [(W) {-0.08 Kern} (olfgang S.)]
   (Ray C.)
   [(Christoper G) {-0.02 Kern} (.)]
   ()
] def

/HeaderLeftText [(Delaforce at The Bung Hole, Tuesday 24) {SuperscriptOn} (th) {SuperscriptOff} ( April 2012)] def
/HeaderCenterText [] def

/HeaderRightText [
   (www) {-0.092 Kern} (.) {-0.092 Kern} (Delaforce.com, )
   (www) {-0.092 Kern} (.) {-0.092 Kern} (ThePortForum.com, )
   % (www) {-0.092 Kern} (.) {-0.12 Kern} (W) {-0.092 Kern} (orldOf) {+0.12 Kern} (Port.de, )
   % (www.jacob-head.com/port,)
   (www) {-0.092 Kern} (.jdawiseman.com)
] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=5172&view=unread#unread)   (Organisation thread on ThePortForum.com)
   (http://www.theportforum.com/viewtopic.php?t=5922&view=unread#unread)   (Review thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20120424_delaforce.pdf)   (Latest version this placemat)
   (http://www.delaforce.com/)  (Delaforce)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
] def

/PlaceNamesNumCopies 1 def
/PrePourNumCopies 1 def
/CorkDisplay true def
/StickyLabelsNumCopies 1 def
/StickyLabelsTypes [0] def

/TitlesFont     /BookmanOldStyle-Bold def
/CircletextFont /BookmanOldStyle def
/HeaderFont CircletextFont def

/GlassesOnSheets [
   [ 0 ]
   dup [ exch dup length 1 sub get 1 add  dup 5 add    1 exch {} for ]
   dup [ exch dup length 1 sub get 1 add  dup 5 add    1 exch {} for ]
   dup [ exch dup length 1 sub get 1 add  dup 5 add    1 exch {} for ]
] def  % /GlassesOnSheets
/GlassesOnTastingNotePages [
   [ 0  GlassesOnSheets 1 get {} forall ]
   2  1  GlassesOnSheets length 1 sub {GlassesOnSheets exch get} for
] def

/NonDecanterLabelGlassesNumCopies {SheetNum 0 eq {0} {1} ifelse} def

/GlassesClusteredOnVoteRecorders [
   GlassesOnSheets
] def  % triple-depth array, same length as VoteRecorderTopTexts and VoteRecorderShowTotalRow

/WaterCountTarget 15 def  % intended number of tickable squares

/PlaceNamesFirstAndThirdFoldsFromEdge 0 def
Software version 23:00 Monday 23rd April 2012.

The Df75, which was surprisingly good, caused some intricacy. It was to be served as an aperitif, so not to appear on the glasses sheets. It would need a pre-pour sheet and a sticky label. But these two contain repeats of the relevant component of the glasses sheet. Not on glasses sheet ⇒ no pre-pour, no sticky. Hmmm: awkward.

What to do? So it was on a glasses sheet, the first, containing just the ’75 (/GlassesOnSheets [ [ 0 ] … ] def). But zero copies of this sheet were shown (/NonDecanterLabelGlassesNumCopies {SheetNum 0 eq {0} {1} ifelse} def). Thus pre-pour and sticky repeats of the glasses sheet ’75 could appear. Yes, it is a bit awkward, but driven by the desire for a very strong visual similarity between the pre-pour sheets and the sheets to which glasses are then transferred.

However, be careful if generalising this trick. Imagine that there were a dozen ports to appear on pre-pour but not on the glasses sheets. If these were all put on the first glasses sheet (of which zero copies are printed), the computed radius would be much smaller, and that would shrink the radius on other sheets with which it shared a common radius (controlled by ShrinkRadii). Not good. Obviously there would need to be several different glasses sheets to be printed zero times.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 11:51 Tue 01 May 2012

Wednesday 2nd May 2012, The Bung Hole, post-BFT with Johnny Symington and the Graham 1952 Single Harvest Tawny (placemats, planning and arrangements).
Image Image Image
Code: Select all
/JDAW [(JDA) {-0.06 Kern} (W)] def
/RAYC [(RA) {-0.06 Kern} (YC)] def

/Names [
   (JDS)
   (AHB) (DRT) (RLC) (PW) (WS)
   (BMHR) (CMAG) JDAW RAYC (THRA)
   ()
] def

/Circlearrays [
   1 1 Names length 2 sub {[exch Names exch get]} for
   [ (Graham)  (1952)  [(Single T) {-0.092 Kern} (awny)]  (JDS)  ]
   [/dagger]   [/daggerdbl]   [/lozenge]   [/currency]
] def

/Titles [
   Circlearrays {dup length 2 ge {[exch dup 0 get 0 1 getinterval exch 1 get 2 2 getinterval]} {0 get} ifelse} forall
] def

/Belowtitles [ Circlearrays {dup length 3 ge {2 get} {pop ()} ifelse} forall ] def

/HeaderLeftText [(The Bung Hole, W) {-0.092 Kern} (ednesday 2) {SuperscriptOn} (nd) {SuperscriptOff} ( May 2012)] def
/HeaderCenterText [(Post-BFT: we) /quoteright (ll still be sober, honest guv)] def
/HeaderRightText [
   (www) {-0.092 Kern} (.grahams-port.com, )
   (www) {-0.092 Kern} (.) {-0.092 Kern} (ThePortForum.com, )
   % (www) {-0.092 Kern} (.) {-0.12 Kern} (W) {-0.092 Kern} (orldOf) {+0.12 Kern} (Port.de, )
   % (www.jacob-head.com/port,)
   (www) {-0.092 Kern} (.jdawiseman.com)
] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=5890&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20120502.pdf)   (Latest version this placemat)
   (http://www.thebft.co.uk/)  (The Big Fortified Tasting)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
   (http://www.grahams-port.com/)  (Graham's Port)
] def

/TitlesFont     /TrebuchetMS-Bold def
/CircletextFont /Garamond-Bold def
/BelowtitlesFont  CircletextFont def
/HeaderFont /Garamond def

/FontSizesRatioTitlesMin 9999 def

/GlassesClusteredOnVoteRecorders [
   {[ GlassesOnTastingNotePages {[exch {dup Circlearrays exch get length 3 ge {pop} if} forall]} forall ]}
  {GlassesOnTastingNotePages}
] def  % triple-depth array, same length as VoteRecorderTopTexts and VoteRecorderShowTotalRow
/VoteRecorderTopTexts [
   [ (What is it?) ]
   [ (Wine Of The Night)  (Q:) ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ true false ] def  % Must be same length as GlassesClusteredOnVoteRecorders

/CircletextMaxFontSizeProportionRadius 0.0984 def
Software version 22:00 Sunday 29th April 2012.

The combination of the large titles in TrebuchetMS-Bold (sans-serif, pleasingly weighted, with bright negative spaces) and smaller text in Garamond-Bold and Garamond (ornately seriffed, and slightly antique) works well.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 22:37 Thu 17 May 2012

Tuesday 15th May 2012, The Bung Hole, A Small 1970 Horizontal, Honouring Ronnie Roots (placemats, planning and arrangements).
Image Image
Code: Select all
/JDAW [(JDA) {-0.06 Kern} (W)] def
/RAYC [(RA) {-0.06 Kern} (YC)] def

/Circlearrays [
   [ [(Dow)]  (1970)  JDAW ]
   [ [(Fonseca)]  (1970)  (CMAG) ]
   [ [(Graham)]  (1970)  (THRA) ]
   [ (Sandeman)  (1970)  (RLC) ]
   [ [(T) {-0.09 Kern} (aylor)]  (1970)  (RMW) ]
   [ [(W) {-0.06 Kern} (arre)]  (1970)  (AHB) ]

   [ [(Cockburn)]  (1970)  RAYC ]
   [ [(Of) /fl (ey Boa Vista)]  (1970)  (NDS)  ]
   [ [(Royal Oporto)]  (1970)  (DRT) ]
   [ [(Royal Oporto Carvalhas)]  (1970)  [RAYC ( from THRA)] ]
   [ /dagger ]
   [ /daggerdbl ]
] def

/Titles [
   (D)
   (F)
   (G)
   (S)
   (T)
   (W)

   (Ck)
   (OBV)
   (RO)
   (ROC)
   /dagger
   /daggerdbl
] def

/Overtitles  [ Circlearrays {0 get} forall ] def
/Belowtitles [ Circlearrays {dup length 3 ge {1 get} {pop ()} ifelse} forall ] def

/TitlesTastingNotes [ 0 1 Titles length 1 sub {dup Overtitles exch get dup length 0 gt {exch pop} {pop Titles exch get} ifelse} for ] def
/TitlesVoteRecorder Titles def
/TitlesDecantingNotes Titles def
/TitlesCorkDisplay TitlesTastingNotes def

/Names [
   (RMW) (AHB) (CMAG) (DRT) RAYC (RLC) JDAW (THRA)
   (NDS)  % Cookie's friend Sandy
   ()
] def


/HeaderLeftText [(The Bung Hole, Tuesday 15) {SuperscriptOn} (th) {SuperscriptOff} ( May 2012)] def
/HeaderCenterText [(A Small 1970 Horizontal, Honouring Ronnie Roots)] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=5977&view=unread#unread)   (Review thread on ThePortForum.com)
   (http://www.theportforum.com/viewtopic.php?t=5912&view=unread#unread)   (Planning thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20120515_1970.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
   (http://en.wikipedia.org/wiki/1970)  (Wikipedia on 1970)
] def

/TitlesFont     /TrebuchetMS-Bold def
/OvertitlesFont /Garamond-Bold def
/BelowtitlesFont OvertitlesFont def
/CircletextFont OvertitlesFont def

/FontSizesRatioAboveBelowOverMin 999 def

/GlassesOnSheets [
   [ 0  Titles length 1 sub  /e exch def /s exch def  s 1 e {dup e lt e s sub 6 ge and {dup s sub e s sub 1 add dup 6 div ceiling cvi 3 -1 roll 3 copy mul exch idiv 4 1 roll 1 add mul exch idiv ne {][} if} if} for ]
] def  % /GlassesOnSheets

/CircletextMaxFontSizeProportionRadius 0.092 def

/TastingNotesTitlesFontSizeMax 16 def

/CircletextsMaxCopies {  % Needlessly complicated for this use, but reusably general-purpose
   Rays
   {
      dup RaysLinesPerGlass idiv RaysLinesPerGlass mul dup 0 eq
      {pop dup 1 {
         RaysLinesPerGlass 3 mod 0 eq {RaysLinesPerGlass 2 mul 3 idiv 2 copy ge {exch pop exit} {pop} ifelse} if
         2 1 6 {/i exch def
         RaysLinesPerGlass i mod 0 eq {RaysLinesPerGlass       i idiv 2 copy ge {exch pop exit} {pop} ifelse} if
         } for  % i
      } repeat} if  % ... 0 eq
   } {65535} ifelse  % Rays
} def  % Needlessly complicated for this use, but reusably general-purpose

/Rays true def
/RaysLinesToPaperEdge true def
/RaysLinesPerGlass 56 def
Software version 22:00 Sunday 13th May 2012.

I wanted the short Circlearrays to resonate with the Rays, which is why CircletextsMaxCopies is so complicated. This code will be moved into the code proper, perhaps to be activated by a parameter to be called CircletextsAttemptResonateWithRays.

Edit on Sunday 20th May 2012:
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 21:05 Mon 23 Jul 2012

Wednesday 25th July 2012, The Olympic Tasting at the Portuguese Embassy (placemats, planning and arrangements).
Image

Image
Code: Select all
/PeopleData [
   [
      (JdV)
      [
         {TypeOfPagesBeingRendered dup dup /PlaceName eq exch /VoteRecorder eq or exch /DecantingNotes eq or {/JDAW-CFS CurrentFontSize def CurrentFontName JDAW-CFS 3 div selectfont  0 JDAW-CFS 0.25 mul rmoveto} if}
         (H.E. Dr )
         {TypeOfPagesBeingRendered dup dup /PlaceName eq exch /VoteRecorder eq or exch /DecantingNotes eq or {CurrentFontName JDAW-CFS selectfont  0 JDAW-CFS -0.25 mul rmoveto} if}
         {TypeOfPagesBeingRendered /VoteRecorder eq {[(J) {-0.09 Kern} (.)]} {[(J) {-0.03 Kern} (o) /atilde (o)]} ifelse}
         ( de V) {-0.15 Kern} (allera)
      ]
   ]
   [
      (TEB)
      [
         (Lord Boswell)
         {TypeOfPagesBeingRendered dup dup /PlaceName eq exch /VoteRecorder eq or exch /DecantingNotes eq or not {( of Aynho)} if}
      ]
   ]   
   [  (CM)  (Charles M.)  ]  % Charles Metcalfe
   [  (AWE)    (Alex E.)  ]  % Ambassador's Guest, Alex W. Ellis
   [
      (RB)
      [(Roger B.)  {TypeOfPagesBeingRendered /PlaceName ne {(, Esq)} if}]
   ]  % Ambassador's Guest, Lord Roger Bramble, the Deputy Lieutenant of Greater London ?
   [  (RLC)  (Ray C.)  ]
   [  (THRA)  [(T) {-0.08 Kern} (om A.)]  ]
   [  (DRT)  [(Derek T) {-0.09 Kern} (.)]  ]
   [  (WS)  [(W) {-0.12 Kern} (olfgang S.)]  ]
   [  (BMHR)  (Ben R.)  ]
   [  [(JDA) {-0.06 Kern} (W)]  [(J) {-0.03 Kern} (ulian W) {-0.12 Kern} (.)]  ]
   [  [(RA) {-0.06 Kern} (YC)]  (Rob C.)  ]
   [  (OJMQ) [(Oscar Q) {-0.03 Kern} (.)]  ]  % -0.105
   [  (ARK)  (Alex K.)  ]
   [  (CRS)  (Carl S.) ]
   [  (PW)  [(Phil W) {-0.12 Kern} (.)] ]
   [  (GW)  [(Giles W) {-0.12 Kern} (.)] ]  % Giles Wigoder, no middle initial known, right-handed, no special dietary requirements other than an aversion to Pot Noodle
   [
      (GRJ)  % The Right Reverend Graham R James (Bishop of Norwich)
      [
         {TypeOfPagesBeingRendered dup dup /PlaceName eq exch /VoteRecorder eq or exch /DecantingNotes eq or {/JDAW-CFS CurrentFontSize def CurrentFontName JDAW-CFS 3 div selectfont  0 JDAW-CFS 0.25 mul rmoveto} if}
         {TypeOfPagesBeingRendered /TastingNotes eq {(The Right Reverend )} {(T) {-0.09 Kern} (.R.R. )} ifelse}
         {TypeOfPagesBeingRendered dup dup /PlaceName eq exch /VoteRecorder eq or exch /DecantingNotes eq or {CurrentFontName JDAW-CFS selectfont  0 JDAW-CFS -0.25 mul rmoveto} if}
         {TypeOfPagesBeingRendered /VoteRecorder eq {(G.)} {(Graham)} ifelse}
         ( James)
         {TypeOfPagesBeingRendered /TastingNotes eq {(, the 71) {SuperscriptOn} (st) {SuperscriptOff} ( Bishop of Norwich)} if}
      ]
   ]
   [  (LB-S)  (Lorenzo B.-S.)  ]  % Lorenzo Bakewell-Stone
   [  (SF)    [(Steve F) {-0.12 Kern} (.)]  ]  % Steve Filbey
   [  (QA)    (Quentin A.)  ]  % Quentin Archer
   [  (RC)    [/quoteleft (Oz) /quoteright ( C.)]  ]  % Oz Clarke
   [  ()    ()  ]  % Industry guest
   [  ()    ()  ]  % Industry guest
] def

/PortData [
   %  YYYY    City                     Abbreviation  Type           Subtitle shipper     Circlearray shipper
   [ (1948) (London)                   (Mz)          ()             (Martinez)           dup ]
   [ (1952) (Helsinki)                 (Ni)          (Colheita)     (Niepoort)           dup ]
   [ (1956) (Melbourne)                (Ni)          (Experimental) (Niepoort)           dup ]
   [ (1960) (Rome)                     (Cr)          ()             (Croft)              dup ]
   [ (1964) [(T) {-0.06 Kern} (okyo)]  (GM)          ()             (Malvedos)           (Graham Malvedos) ]
   [ (1968) (Mexico City)              (TV)          ()             (Guimaraens)         (Fonseca Guimaraens) ]
   [ (1972) (Munich)                   (OBV)         ()             (Offley Boa Vista)   dup ]
   [ (1976) (Montreal)                 (RP)          ()             [(V) {-0.06 Kern} (argellas)]   [(T) {-0.08 Kern} (aylor Quinta de ) 4 index]  ]
   [ (1980) (Moscow)                   (D)           ()             (Dow)                dup ]
   [ (1984) (Los Angeles)              (WC)          ()             (Cavadinha)          [(W) {-0.09 Kern} (arre Quinta da Cavadinha)] ]
   [ (1988) (Seoul)                    (Rs)          ()             (de la Rosa)         [(Quinta ) 2 index] ]
   [ (1992) (Barcelona)                (T)           ()             (Burmester)          dup ]
   [ (1996) (Atlanta)                  (V)           ()             (Vesuvio)            [(Quinta do V) {-0.15 Kern} (esuvio)] ]
   [ (2000) (Sydney)                   (C)           ()             (Delaforce)          dup ]
   [ (2004) (Athens)                   (Cs)          ()             (Cockburn Canais)    (Cockburn Quinta dos Canais) ]
   [ (2008) (Beijing)                  (Qv)          ()             (Quevedo)            [1 index ( Quinta Vale D) /quoteright {-0.12 Kern} (Agodinho)] ]
] def

/TitlesTastingNotes [ PortData {0 get} forall ] def
/Titles [ TitlesTastingNotes {2 2 getinterval} forall ] def
/Overtitles [ PortData {[exch dup 4 get exch 3 get dup length 0 gt {( ) exch} {pop} ifelse]} forall ] def
/Circlearrays [ PortData {[ exch dup 5 get exch dup 3 get dup length 0 eq {pop} {exch} ifelse  0 get ]} forall ] def
/FillTexts [ PortData {1 get} forall ] def

/Belowtitles [ Titles length {()} repeat ] def
/SubtitlesTastingNotes Overtitles def

/Names [  PeopleData {1 get} forall  ] def

/PaperType /A3 def  % /A4 /A3 /B4 /USL /USLegal /USL2 [SmallerPts LargerPts]
/Orientation /Landscape def  % /Landscape /Portrait

/HeaderLeftText [(The P) {-0.04 Kern} (ortuguese Embassy, London, W) {-0.07 Kern} (ednesday 25) {SuperscriptOn} (th) {SuperscriptOff} ( July 2012)] def
/HeaderCenterText [(P) {-0.04 Kern} (ort from the Y) {-0.12 Kern} (ears of Summer Olympics)] def
/ExternalLinks [
   (http://www.theportforum.com/viewtopic.php?t=4567&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20120725_olympic.pdf)   (Latest version this placemat)
] def

/PlaceNamesNumCopies 1 def
/PrePourNumCopies 2 def
/CorkDisplay true def
/CorkDisplayNumCopies 2 def

/TitlesFont     /Baskerville-SemiBold def  % /Optima-Bold
/OvertitlesFont  /LiberateBold def  % /LiberateNormal  /LiberateBold  /LiberateExtendedNormal  /Harrington  /LucyNormal

/GlassesOnSheets [
   [ 0 1 Titles length 1 sub {} for ]
] def  % /GlassesOnSheets
/GlassesOnTastingNotePages [
   [8 12 0 4] {[ exch dup 3 add 1 exch {} for ]} forall
] def  % For no tasting note pages at all use  /GlassesOnTastingNotePages [] def

/GlassesClusteredOnVoteRecorders [
   [ [2 3 0 1] {GlassesOnTastingNotePages exch get} forall ]
] def  % triple-depth array, same length as VoteRecorderTopTexts and VoteRecorderShowTotalRow
/VoteRecorderTopTexts [  % Must be same length as GlassesClusteredOnVoteRecorders, each sub-array containing some number of TopTexts
   [  (Wine Of The Night)  (Q:)  ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ GlassesClusteredOnVoteRecorders length {false} repeat ] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderOrientation /Landscape def

/GlassesClusteredOnCorkDisplay [ [ GlassesOnTastingNotePages aload pop 4 2 roll ] ] def

/PermittedPackingStyles [ [
   0 1 7 {[ exch dup 2 mod ]} for
   0 1 7 {[ exch dup 2 mod 2.2 add ]} for
] ] def

/FlightSeparations true def
/FlightSeparationLines
[
   [
      [
         [/Left 8
            {
               /JDAW-Rs
               GlassPositions SheetNum get 1 get aload pop
               GlassPositions SheetNum get 8 get aload pop
               3 -1 roll sub dup mul  3 1 roll sub dup mul  add sqrt Radii SheetNum get div 2 div
               def
               JDAW-Rs neg
            }
         ]
         [1 8] [1 10] [3 10] [3 12] [5 12] [5 14] [7 14]
         [/Right 7 {JDAW-Rs}]
      ]
   ]  % SheetNum = 0
] def  % /FlightSeparationLines

/ColourSchemeTitles /Black def  % /MidGrey /Black
/ColourSchemeOvertitles /Black def  % /MidGrey /Black

/FillTitles true def
/FillOvertitles false def
/FillTextPlacename {PeopleData NameNum get 0 get} def

/NamesFontSizeMin 15 def
/NamesFontSizeMax NamesFontSizeMin def

/VerticalMiddlingStringTitles (N) def  % Benchmark characters

/FillTextPrintQuickerDistillSlower true def
Software version 22:00 Sunday 22nd July 2012.

The Olympic placemats were more complicated than is typical.

• Data is mostly in two arrays, PeopleData and PortData, and is decanted from there into the parameter arrays. For large tastings this can be easier, as it keeps together the relevant items of Titles, Overtitles, FillTexts, etc.

• Some of the people have complicated names, containing code that tests TypeOfPagesBeingRendered and chooses a suitably shortened version. The compound strings to be rendered themselves contain code, kerning, shrinking and superscripting.

• These data are decanted into the parameters with lines like “/TitlesTastingNotes [ PortData {0 get} forall ] def” followed by “/Titles [ TitlesTastingNotes {2 2 getinterval} forall ] def”.

• With the glasses pages being A3 and the tasting-note pages being A4, GlassesOnSheetsGlassesOnTastingNotePages. Also unusually, GlassesClusteredOnVoteRecorders and GlassesClusteredOnCorkDisplay were re-ordered versions of GlassesOnTastingNotePages.

PermittedPackingStyles contains only one possibility, an array: [   [0 0] [1 1] [2 0] [3 1] [4 0] [5 1] [6 0] [7 1]   [0 2.2] [1 3.2] [2 2.2] [3 3.2] [4 2.2] [5 3.2] [6 2.2] [7 3.2]   ]. (Usually PermittedPackingStyles contains contains multiple named arrangements including /RectangularDislocation, /PseudoHexagonal, and /SquareGrid.) But for the array possibility the code chooses the radius and x and y scaling factors, to fill the page less margins. The extra 0.2 in some of the array’s y values slightly separates the top two rows from the bottom two: before and after dinner. But even without this, observe that the ordering of the glasses would be different to that in a /PseudoHexagonal arrangement.

FlightSeparationLines is an array of depth four holding the definitions of lines that separate flights. For the first time—at least my first time—this contains code. The code calculates half the distance between the Ni52c and D80 centres, and, to give the appearance of neatness, ensures that the line starts on the left the same distance below the D80. So the line starts at [/Left 8 -1.13324], which is on the left margin, at a height equal to the y-centre of circle 8 (as “8” is an integer), adjusted by the real × radius. (So “8” and “8.0” would do different things.) This real is stored in JDAW-Rs, so that it could also be used relative to the TV76 circle on the right.

• Finally FillTextPrintQuickerDistillSlower. With this false, distillation took 34 seconds. With it true, removing copies of FillTexts that were entirely clipped away, it took 1302 seconds, more than 38 × slower. The file size fell from 2,135,094 to 1,482,771 bytes, so a change of about -30%. (Indeed, the placenames weren’t used, and without them distillation would have taken only 199 seconds. Also removing the unused pre-pour sheets would have further reduced the time to only 48 seconds.)



Edit in January 2013: recently added to the code is the function HalfDistanceBetweenCentresProportionRadius, which simplifies part of the above to
Code: Select all
/FlightSeparationLines
[
   [
      [
         [/Left 8   {1 8 HalfDistanceBetweenCentresProportionRadius neg}]
         [1 8] [1 10] [3 10] [3 12] [5 12] [5 14] [7 14]
         [/Right 7  {7 14 HalfDistanceBetweenCentresProportionRadius}]
      ]
   ]  % SheetNum = 0
] def  % /FlightSeparationLines
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 22:42 Mon 03 Sep 2012

Tuesday 4th September 2012, Bung Hole Blinder (placemats, planning and arrangements).
Image Image
Code: Select all
/Circlearrays [
   [ (AHB) ]
   [ (DRT) ]
   [ (PW) ]
   [ [(JDA) {-0.08 Kern} (W)]   (Older) ]
   dup [ exch 0 get  [(Y) {-0.09 Kern} (ounger)] ]

   [ (+) ]
   [ [(RA) {-0.08 Kern} (Y) {-0.03 Kern} (C)]  (One) ]
   dup [ exch 0 get [(T) {-0.09 Kern} (wo)] ]
   dup [ exch 0 get (Three) ]
   dup [ exch 0 get (Four) ]
] def

/Titles [ Circlearrays {0 get} forall ] def

/Belowtitles [ Circlearrays {dup length 1 le {pop ()} {1 get} ifelse} forall ] def

/Names [
   Circlearrays {dup length 0 gt {0 get dup length 1 gt {counttomark 1 sub -1 1 {index 1 index eq {pop exit} if} for} {pop} ifelse} {pop} ifelse} forall
   ()
] def

/HeaderLeftText [(T) {-0.09 Kern} (uesday 4) {SuperscriptOn} (th) {SuperscriptOff} ( September 2012)] def
/HeaderCenterText [(Bung Hole Blinder)] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=6201&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20120904.pdf)   (Latest version this placemat)
] def

/TitlesFont     /IkariusADFStd-Bold def
/FontSizesRatioTitlesMin 999 def

/ColourSchemeTitles /MidGrey def  % /MidGrey /Black
/ExclusionAnnulusProportionInnerRadiusTitlesAboveBelow 0.025 def

/PermittedPackingStyles [ /RectangularDislocation  {NG 5 eq {/None} {/PseudoHexagonal} ifelse}  ] def  % Put, in order of preference, any of /PseudoHexagonal /SquareGrid /RectangularDislocation /RectangularDislocationV /TwoRowsOrTwoColumns /GaiaElegant /Gaia /Irregular /IrregularMirror /IrregularPortrait /IrregularLandscape /IrregularMirrorPortrait /IrregularMirrorLandscape

/WaterCountTarget 12 def  % intended number of tickable squares

/GlassesClusteredOnVoteRecorders [
   {GlassesOnTastingNotePages} dup
] def  % triple-depth array, same length as VoteRecorderTopTexts and VoteRecorderShowTotalRow
/VoteRecorderTopTexts [  % Must be same length as GlassesClusteredOnVoteRecorders, each sub-array containing some number of TopTexts
   [ (What is it?) ]
   [ (Wine Of The Night)  (Q:) ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ true false ] def  % Must be same length as GlassesClusteredOnVoteRecorders

/ShapesInTitles true def
/ShapesToUse [/Star] def  % At least one of: /Flower /Star
/ShapesStarsPointsAndStepsArray [ [7 2] dup [7 3] dup dup dup dup ] def  % Less-polygonal more-pointy: [[3 1.318] [4 1.792] [5 2.278] [6 2.77] [7 3.265] [8 3.762] [9 4.259]]
/ShapesAverageSeparation {7  TypeOfPagesBeingRendered /PlaceName eq {PlaceNamesDetailsScalingFactor mul} if} def

/MarginL 12 def  % Left
/MarginR {MarginL} def  % Right
/MarginT 18 def  % Top
/MarginB {MarginL} def  % Bottom
Software version 23:30 Monday 3rd September 2012.

• The names were auto-generated from the Circlearrays with a nifty stack manipulation that removes duplicates. Careful though: [(JDAW)] [(JDAW)] eq returns false; [(JDAW)] dup eq returns true.

• Unusual values of ShapesStarsPointsAndStepsArray and ShapesAverageSeparation.

• Also unusually, the margins were changed from the default value of 30.
Here jdaw1 wrote:Printed, though the margins were too small for the printer used. :-(
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 12:26 Wed 26 Sep 2012

Monday 24th September 2012, Warre and Fonseca, Warre versus Fonseca, 1955 to 1955 (placemats, planning and arrangements).

PhilW, who made the placemats, wrote:
Code: Select all
% Warre's Logo
/warre_logo_source_width 168 def
/warre_logo_source_height 138 def
/warre_logo_source_bpp 8 def
%
/warre_logo
{
    warre_logo_source_width warre_logo_source_height warre_logo_source_bpp  % dimensions of source image
    [ warre_logo_source_width 0 0 warre_logo_source_height 0 0 ]            % coordinate transformation matrix
   {<
%***binary data omitted***
   >}
    image
} def % /warre_logo

% Fonseca Logo
/fonseca_logo_source_width 222 def
/fonseca_logo_source_height 81 def
/fonseca_logo_source_bpp 8 def
%
/fonseca_logo
{
    fonseca_logo_source_width fonseca_logo_source_height fonseca_logo_source_bpp      % dimensions of source image
    [ fonseca_logo_source_width 0 0 fonseca_logo_source_height 0 0 ]                  % coordinate transformation matrix
   {<
%***binary data omitted***
   >}
   image
} def % /fonseca_logo

/warre_logo_dest_width 168 def
/warre_logo_dest_height 138 def
/warre_logo_below_header_space 5 def
/warre_logo_from_margin_space 9 def

/fonseca_logo_dest_width 172 def
/fonseca_logo_dest_height 70 def
/fonseca_logo_below_header_space 15 def
/fonseca_logo_from_margin_space 9 def

/PlaceFonsecaLogoTopLeft
{
    MgnL fonseca_logo_from_margin_space add  PageHeight MgnT sub fonseca_logo_below_header_space sub fonseca_logo_dest_height sub  translate
   fonseca_logo_dest_width fonseca_logo_dest_height scale
   fonseca_logo
} def % /PlaceProducerLogoTopLeft

/PlaceWarreLogoTopRight
{
    PageWidth MgnR sub warre_logo_dest_width sub warre_logo_from_margin_space sub  PageHeight MgnT sub warre_logo_below_header_space sub warre_logo_dest_height sub  translate
   warre_logo_dest_width warre_logo_dest_height scale
   warre_logo
} def % /PlaceProducerLogoTopRight

/PlaceProducerLogo
{
   SheetNum 1 eq { PlaceFonsecaLogoTopLeft } { PlaceWarreLogoTopRight } ifelse
} def % /PlaceProducerLogo

/HeaderLeftText [(London, Monday 24) {SuperscriptOn} (th) {SuperscriptOff} ( September 2012)] def
/HeaderCenterText [(W){-0.09 Kern}(arre's vs Fonseca, double mini vertical)] def
/HeaderRightText [
   (www) {-0.092 Kern} (.) {-0.092 Kern} (ThePortForum.com, )
   (www) {-0.092 Kern} (.jdawiseman.com)
] def


/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?f=3&t=5944)   (Thread on ThePortForum.com)
   (http://www.hallarn.com/placemats/120924_WarreFonseca.pdf)   (Placemat creation software)
] def % /ExternalLinks


/Circlearrays [
   [ [(W) {-0.09 Kern} (arre) /quoteright (s)] (1955) ]
   [ [(W) {-0.09 Kern} (arre) /quoteright (s)]  (1960) ]
   [ [(W) {-0.09 Kern} (arre) /quoteright (s)]  (1963) ]
   [ [(W) {-0.09 Kern} (arre) /quoteright (s)]  (1966) ]
   [ [(W) {-0.09 Kern} (arre) /quoteright (s)]  (1970) ]
   [ [(W) {-0.09 Kern} (arre) /quoteright (s)]  (1977) ]
   [ [(W) {-0.09 Kern} (arre) /quoteright (s)]  (1985) ]
   [ (Fonseca) (1955) ]
   [ (Fonseca) (1960) ]
   [ (Fonseca) (1963) ]
   [ (Fonseca) (1966) ]
   [ (Fonseca) (1970) ]
   [ (Fonseca) (1977) ]
   [ (Fonseca) (1985) ]
] def

/Titles [
   (W55)
   (W60)
   (W63)
   (W66)
   (W70)
   (W77)
   (W85)
   (F55)
   (F60)
   (F63)
   (F66)
   (F70)
   (F77)
   (F85)
] def

/Belowtitles [
   ()
   ()
   ()
   ()
   ()
   ()
   ()
   ()
   ()
   ()
   ()
   ()
   ()
   ()
] def

/Names [
   [(PW)]
   [(RAYC)]
   [(JDA){-0.08 Kern}(W)]
   [(DRT)]
   [(WS)]
   [(CS)]
   [(CMAG)]
   [(THRA)]
   [(AHB)]
   [(MW)]
   [(BMHR)]
   [(spare1)]
   [(spare2)]
] def

/GlassesOnSheets [   [ 0 1 2 3 4 5 6 ] [ 7 8 9 10 11 12 13 ] ] def  % /GlassesOnSheets

/MarginL 12 def  % Left    11x  12
/MarginR 13 def  % Right   12x  13
/MarginT 19 def  % Top     18x  19
/MarginB 13 def  % Bottom  12x  13

/PermittedPackingStyles [
   [ [2 5] [0 4] [4 4] [2 3] [0 2] [4 2] [2 1] ]   % enforce desired layout
] def

/ExclusionAnnulusProportionInnerRadiusTitlesAboveBelow 0.15 def

/PaintBackgroundCode
{
   TypeOfPagesBeingRendered /Glasses eq
   {
      ThisPageDecanterLabels not
      {
          % Draw path lines between glasses
         0 1 MakePathConnectingGlasses
         1 2 MakePathConnectingGlasses
         3 2 MakePathConnectingGlasses
         3 4 MakePathConnectingGlasses
         4 5 MakePathConnectingGlasses
         6 5 MakePathConnectingGlasses
         6 setlinewidth  0.5 setgray  0 setlinecap  stroke
         
         % Add Producer Logo to the page
         PlaceProducerLogo
         
      } if  % ThisPageDecanterLabels not
   } if  % TypeOfPagesBeingRendered /Glasses eq
} def  % /PaintBackgroundCode

/ThePortForumIconColour true def

/WaterCounts true def
/WaterCountsOverrideShowEverySheet false def
/WaterCountTarget 14 def
/WaterCountMaxRowLengths [ 7 5 3 ] def


Comments regarding use:
  • Margins were selected as absolute minimum values for which output was not cropped by the printer, in this case a Dell 3110cn. This was in order to maximise glass sizes, which were expected to be borderline.
  • Glass size did work on the night, but was defintely the borderline case (Radius=113.025) for glasses at TBH.
  • Layout was enforced since with minor margin change the default layout was sometimes varying from that intended (rows of 1-2-1-2-1 wanted, default varied between this and 2-2-1-2).
  • Logos were created from images converted to .eps in PaintShopPro, then manually adjusted for use here.
  • Water count boxes appear on each glasses sheet (bug?).
It was a bug, which has been fixed.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 20:57 Sun 11 Nov 2012

Tuesday 13th November 2012, A Smattering of Graham and Malvedos (placemats, planning and arrangements).
Image
(There are two A3 pages. The right-hand one has been guillotined, and attached to the left, slightly overlapping, with double-sided sticky tape. The green line shows the join.)
Code: Select all
/Graham (Graham) def
/MalvedosShort (Malvedos) def
/MalvedosLong (Graham Malvedos) def
/JDAW [(JDA) {-0.04 Kern} (W)] def
/RAYC [(RA) {-0.04 Kern} (YC)] def

/Circlearrays [
   [ (1942) Graham [(MW & DRT & ) JDAW] ]
   [ (1955) Graham (THRA) ]
   [ (1960) Graham ]
   [ (1963) Graham (WS) ]
   [ (1965) MalvedosLong (AP) ]
   [ (1966) Graham ]
   [ (1968) MalvedosLong ]
   [ (1970) Graham ]
   [ (1975) Graham (PW) ]
   [ (1976) MalvedosLong ]
   [ (1977) Graham (Griff) ]
   [ (1978) MalvedosLong ]
   [ (1979) MalvedosLong (Magnum) (TS-C) ]
   [ (1980) Graham (AHB) ]
   [ (1983) Graham ]
   [ (1984) MalvedosLong ]
   [ (1985) [Graham] (Crusted) ]
   [ (1985) Graham ]
   [ (1987) MalvedosLong  (JGH) ]
   [ (1990) MalvedosLong JDAW ]
   [ (1991) Graham (PW) ]
   [ (1994) Graham ]
] def


/Titles [ Circlearrays {0 get dup length 2 sub 2 exch getinterval} forall ] def
/Belowtitles [ Circlearrays {1 get dup Graham ne {pop ()} if} forall ] def
/Abovetitles [ Circlearrays {dup length 3 ge {2 get dup dup (Crusted) ne exch (Magnum) ne and {pop ()} if} {pop ()} ifelse} forall ] def
/Overtitles [  Circlearrays {1 get dup Graham eq {pop ()} if} forall ] def
/TitlesTastingNotes [ Circlearrays {0 get} forall ] def
/SubtitlesTastingNotes [ 0 1 Circlearrays length 1 sub {dup Abovetitles exch get dup length 0 gt {exch pop} {pop Circlearrays exch get 1 get dup MalvedosLong eq {pop MalvedosShort} if} ifelse} for ] def

/Names [
   (TS-C) (CJ) RAYC (THRA) (WS) (AP) (AHB) JDAW (DRT) (MW) (JGH) (PW)
   (CRS)
   (SCP)
   ()
   ()
] def

/PaperType /A3 def
/Orientation /Landscape def

/ThePortForumIconPlacement {SheetNum NamesIsLeftHander NameNum get {NumSheets 1 sub} {0} ifelse eq {/LowerNonWaterCount} {/None} ifelse} def  % /None

/HeaderLocation [(The Bung Hole, Tuesday 13) {SuperscriptOn} (th) {SuperscriptOff} ( November 2012)] def
/HeaderTastingName (A Smattering of Graham and Malvedos) def
/HeaderLinks [
   (www) {-0.092 Kern} (.) {-0.092 Kern} (ThePortForum.com, )
   % (www) {-0.092 Kern} (.) {-0.12 Kern} (W) {-0.092 Kern} (orldOf) {+0.12 Kern} (Port.de, )
   % (www.jacob-head.com/port,)
   (www) {-0.092 Kern} (.jdawiseman.com)
] def

/HeaderRightText {TypeOfPagesBeingRendered /Glasses eq {SheetNum 1 eq} {true} ifelse {HeaderLinks} {()} ifelse} def
/HeaderLeftText {TypeOfPagesBeingRendered /Glasses eq {SheetNum 0 eq} {true} ifelse {HeaderLocation} {()} ifelse} def
/HeaderCenterText {TypeOfPagesBeingRendered /Glasses eq {SheetNum 0 eq} {true} ifelse {HeaderTastingName} {()} ifelse} def

/HeaderFooterCenterRelativeX {TypeOfPagesBeingRendered /Glasses eq {GlassPositions SheetNum get 6 get 0 get MgnL sub PageWidth MgnL MgnR add sub div} {0.5} ifelse} def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=6274&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20121113_graham.pdf)   (Latest version this placemat)
   (http://www.grahams-port.com/)  (Graham\220s Port)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
   (http://www.streetmap.co.uk/map.srf?x=530848&y=181628&pc=WC1V+6DT)  (London WC1V 6DT)
] def

/PrePourNumCopies 1 def
/DecantingNotesNumCopies 1 def
/CorkDisplay true def
/StickyLabelsNumCopies 1 def
/StickyLabelsTypes [0] def

/TitlesFont     /Tahoma-Bold def
/OvertitlesFont  /LiberateBold def
/CircletextFont /BookmanOldStyle def
/AbovetitlesFont  OvertitlesFont def
/BelowtitlesFont  OvertitlesFont def

/OvertitleMaxFontSizeProportionTitles 0.5 def
/FontSizesRatioTitlesMin 99 def
/FontSizesRatioAboveBelowOverMin 99 def

/GlassesOnSheets [
   [
      0   1   2   3
        6   7   8
      11  12  13  14
        17  18  19
   ]
   [
                  3   4   5
                    9  10
                  14  15  16
                    20  21
   ]
] def  % /GlassesOnSheets
/GlassesOnTastingNotePages [
   [ 0  Titles length 1 sub  /e exch def /s exch def  s 1 e {dup e lt e s sub 6 ge and {dup s sub e s sub 1 add dup 6 div ceiling cvi 3 -1 roll 3 copy mul exch idiv 4 1 roll 1 add mul exch idiv ne {][} if} if} for ]
] def

/PermittedPackingStyles [ {SheetNum 1 eq {[ [-1 3 3 3] [1 3 3 3] [3 3]  [0 2 3 2] [2 2 3 2]  [-1 1 3 1] [1 1 3 1] [3 1]  [0 0 3 0] [2 0 3 0] ]} {/PseudoHexagonal} ifelse} ] def  % Put, in order of preference, any of /PseudoHexagonal /SquareGrid /RectangularDislocation /RectangularDislocationV /TwoRowsOrTwoColumns /GaiaElegant /Gaia /Irregular /IrregularMirror /IrregularPortrait /IrregularLandscape /IrregularMirrorPortrait /IrregularMirrorLandscape

/WaterCountsOverrideShowEverySheet false def

/CircletextsMinCopies 4 def

/InlineTitles {Overtitles WithinTitles get length 0 gt} def
/InlineTitlesMaxNumberContours {Abovetitles WithinTitles get (Crusted) eq {1} {12} ifelse} def
/InlineAbovetitles false def
/InlineBelowtitles false def

/RowsMinNum 4 def
/RowsMaxNum 4 def

/MarginL 18 def  % Left
/MarginT 27 def  % Top
Software version 19:00 Monday 12th November 2012.

Lots going on.

• Typically, if the same string is to be used for many ports, I assign it to a variable name. That helps with changes, including the addition of kerning.

• The Circlearrays used these strings, a lot.

• The Titles, Belowtitles, Abovetitles, Overtitles, TitlesTastingNotes, and SubtitlesTastingNotes were then derived from the Circlearrays. Depending on how many cases there are, that can be intricate.

• The glass decoration then derived from these — observe the code in InlineTitles and InlineTitlesMaxNumberContours.

• The layout on the A3 glasses pages was unusual. The problem was a shortage of table space. We just didn’t have room for 2×A3 each, but the 22 glasses wouldn’t quite fit on 1×A3 + 1×A4. So two A3s were to be used, the right one to be trimmed and the whole held together with double-sided sticky tape. That meant the headers weren’t constant. For simplicity three constants (HeaderLocation, HeaderTastingName, HeaderLinks) were def’d, and then HeaderRightText, HeaderLeftText, and HeaderCenterText set to code that chose between one of these and blank. Also the position of centre header needed to be changed, for which the code had been altered to add the parameter HeaderFooterCenterRelativeX. This was then assigned to some 132 characters of code, the complication of which might suggest that the form of this parameter was not optimally chosen. (See software thread.)

• The strange layout of the pages required an unusual value for GlassesOnSheets (note the pseudo-graphical layout), and a different value for GlassesOnTastingNotePages.

• The PermittedPackingStyles for the first sheet was /PseudoHexagonal, with both RowsMinNum and RowsMaxNum set to 4. But the second sheet was more complicated, circles being laid in a fixed topology, and then shunted right ([ [-1 3 3 3] [1 3 3 3] [3 3] [0 2 3 2] [2 2 3 2] [-1 1 3 1] [1 1 3 1] [3 1] [0 0 3 0] [2 0 3 0] ]).

• The layout semi-compelled WaterCountsOverrideShowEverySheet to be false. In that it would have compelled had there been any left-handers present.

• Having recently added the parameter CircletextsSameFontSizeIfRadiiShrunkToBeSame, there would be good behaviour from setting /CircletextsMinCopies 4 def. So I did.

• Because of the shortage of space the margins were slightly trimmed.

• There’s an imperfection in the pre-pour sheets, as the ’63 and ’83 appear twice, later fixed:
The author of the manual wrote:There can, rarely, be an additional complication. If a placemat is made from several A3 placemats, guillotined and overlapped …, then the same glass will appear on two sheets. But it should not have twice as many pre-pour sheets. This technicality is fixed with PrePourRemoveDuplicatesByWithinTitles, which, if true, removes duplicates, equivalence being determined by GlassesOnSheets having the same value of WithinTitles. The guillotine-and-overlap trick also messes with the order of the pre-pour sheets, sometimes fixable with PrePourSortByWithinTitles.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 20:25 Wed 12 Dec 2012

Thursday 13th December 2012, The Unknown Shipper and His Peculiar Friends, at The Bell (‘placemats’, being TN sheets and sticky labels, planning and arrangements).

Image Image
Code: Select all
/NumberWords [
   (One)
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wo)]
   (Three)
   [(F) {CurrentFontSize -0.09 mul 0 rmoveto} (our)]
   (Five) (Six) (Seven) (Eight) (Nine)
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (en)]
   (Eleven)
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (welve)]
   (Thirteen)
   [(F) {CurrentFontSize -0.09 mul 0 rmoveto} (ourteen)]
   (Fifteen) (Sixteen) (Seventeen) (Eighteen) (Nineteen)
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wenty)]
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wenty-One)]
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wenty-T) {CurrentFontSize -0.09 mul 0 rmoveto} (wo)]
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wenty-Three)]
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wenty-F) {CurrentFontSize -0.09 mul 0 rmoveto} (our)]
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wenty-Five)]
   [(T) {CurrentFontSize -0.09 mul 0 rmoveto} (wenty-Six)]
] def  % /NumberWords

/Overtitles NumberWords 0 26 getinterval def
/Titles [ 1 1 Overtitles length {5 string cvs} for ] def
/Circlearrays [ 0 1 Overtitles length 1 sub {[ exch dup  Overtitles exch get exch Titles exch get ]} for ] def
/Belowtitles [ Titles length {()} repeat ] def

/SubtitlesTastingNotes Overtitles def

/Names [
   (Dirk)
   [(T) {-0.04 Kern} (om)]
   (Ray) (Alex) (Christopher) (Julian) (Jacob) (Axel) (Phil) (Rob)
   [(Wolfgang)]
   ()
] def

/TastingNotesCirclesBehind true def

/HeaderLeftText [(The Bell, Thursday 13) {SuperscriptOn} (th) {SuperscriptOff} ( December 2012)] def
/HeaderCenterText [(The Even More Familiar Unknown Shipper and His Peculiar Friends)] def


/ExternalLinks [
   (http://www.theportforum.com/viewtopic.php?t=5914&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2012/20121213_bell.pdf)   (Latest version this placemat)
   (http://www.thebellatwenden.co.uk/)  (The Bell, Wendens Ambo, Saffron Walden)
   (http://www.streetmap.co.uk/map.srf?x=551093&y=236398&pc=CB11+4JY)  (Map, CB11 4JY)
] def

/NonDecanterLabelGlassesNumCopies 0 def
/StickyLabelsNumCopies {StickyLabelsTypeThis 0 eq {2} {1} ifelse} def

/TitlesFont     /Tahoma-Bold def
/OvertitlesFont  /Harrington def
/CircletextFont /Tahoma def
/HeaderFont /Tahoma def

/FontSizesRatioTitlesMin 99 def
/FontSizesRatioAboveBelowOverMin 99 def

/StickyLabelsOrientationAutomatic {[true false] StickyLabelsTypeThis get} def

/GlassesClusteredOnVoteRecorders [  {GlassesOnTastingNotePages} dup  ] def
/VoteRecorderTopTexts [
   [
      (What is it?)
   ]
   [
      (Wine Of The Night)
      [/quoteleft (Peculiar) /quoteright ( Of The Night)]
      [/quoteleft (Unknown) /quoteright ( Of The Night)]
      (Non-Port Of The Night)
   ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ true false ] def  % Must be same length as GlassesClusteredOnVoteRecorders
Software version 19:30 Sunday 25th November 2012.

The array NumberWords holds words as numbers, item 0 being (One). That drives much of the data.

There is a trickiness. The sticky labels can only contain copies of what is on the glasses sheets. The TN sheets have, faded, copies of what is on the glasses sheets. But there are no glasses sheets! Oh yes there are, but zero copies are shown: /NonDecanterLabelGlassesNumCopies 0 def. Also observe /StickyLabelsOrientationAutomatic {[true false] StickyLabelsTypeThis get} def, which allows automatic rotation of the bottle labels (2×4 on A4) but not of the glass labels (5×13).
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 21:31 Fri 15 Mar 2013

Friday 22nd March 2013, Taylor Vertical, at The Bung Hole (placemats, planning and arrangements, review of the evening).

Image

Code: Select all
/taylor [(T) {-0.03 Kern} (aylor)] def
/specialquintaShort [(Special Quinta)] def
/vargellasShort [(V) {-0.06 Kern} (argellas)] def
/terrafeitaShort [(T) {-0.06 Kern} (erra Feita)] def
/specialquintaLong [taylor aload pop ( ) specialquintaShort aload pop] def
/vargellasLong [(Quinta de ) vargellasShort aload pop] def
/terrafeitaLong [(Quinta de ) terrafeitaShort aload pop] def

/Circlearrays [
   [ (1920)  taylor ]
   [ (1924)  taylor ]
   [ (1927)  taylor ]
   [ (1935)  taylor ]
   [ (1945)  taylor ]
   [ (1948)  taylor ]
   [ (1950)  specialquintaLong ]
   [ (1955)  taylor ]
   [ (1960)  taylor ]
   [ (1963)  taylor ]
   [ (1965)  vargellasLong ]
   [ (1966)  taylor ]
   [ (1970)  taylor ]
   [ (1970)  vargellasLong ]
   [ (1976)  vargellasLong ]
   [ (1977)  taylor ]
   [ (1980)  taylor ]
   [ (1983)  taylor ]
   [ (1985)  taylor ]
   [ (1986)  terrafeitaLong ]
] def

/TitlesTastingNotes [ Circlearrays {0 get} forall ] def
/Titles [ TitlesTastingNotes {dup cvi 1912 gt {2 2 getinterval} if} forall ] def
/TitlesVoteRecorder TitlesTastingNotes def

/Belowtitles [ Circlearrays {1 get dup taylor ne {pop ()} if} forall ] def
/Overtitles [ Circlearrays {1 get
   1 {
      dup vargellasLong eq {pop vargellasShort exit} if
      dup specialquintaLong eq {pop specialquintaShort exit} if
      dup terrafeitaLong eq {pop terrafeitaShort exit} if
      pop ()
   } repeat
} forall ] def
/SubtitlesTastingNotes [ Circlearrays {1 get} forall ] def
/SubtitlesVoteRecorder [
   0  1  Belowtitles length 1 sub
   {1 {
      dup Belowtitles exch get dup length 0 gt {exch pop exit} {pop} ifelse
      dup Overtitles  exch get dup length 0 gt {exch pop exit} {pop} ifelse
      pop ()
   } repeat} for
] def  % /SubtitlesVoteRecorder
/SubtitlesDecantingNotes SubtitlesVoteRecorder def
/SubtitlesCorkDisplay SubtitlesTastingNotes def

/Names [
   (DBFG)  (DRT)
   [(JDA) {-0.06 Kern} (W)]  (THRA)  [(RA) {-0.06 Kern} (YC)]
   (MW)  (AHB)  (WS)  (DB)  (CMAG)  (TF)  (BMHR)  (CS)  (AP)  ()
] def

/PaperType /A3 def  % /A4 /A3 /B4 /USL /USLegal /USL2 [SmallerPts LargerPts]
/Orientation /Landscape def  % /Landscape /Portrait

/TastingNotesCirclesBehind true def

/HeaderLeftText [(The Bung Hole WC1V 6DT, Friday 22) {SuperscriptOn} (nd) {SuperscriptOff} ( March 2013)] def
/HeaderCenterText {TypeOfPagesBeingRendered /Glasses eq {SheetNum 0 eq} {true} ifelse {[taylor (, and relatives)]} {()} ifelse} def

/HeaderRightText {TypeOfPagesBeingRendered /Glasses eq {SheetNum 1 eq} {true} ifelse {[
   (www) {-0.092 Kern} (.taylor.pt, )
   (www) {-0.092 Kern} (.) {-0.092 Kern} (ThePortForum.com, )
   % (www) {-0.092 Kern} (.) {-0.12 Kern} (W) {-0.092 Kern} (orldOf) {+0.12 Kern} (Port.de, )
   % (www.jacob-head.com/port,)
   (www) {-0.092 Kern} (.jdawiseman.com)
]} {()} ifelse} def
/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=6731&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2013/20130322_taylor.pdf)   (Latest version this placemat)
   (http://www.taylor.pt/)  (Taylor)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
   (http://www.streetmap.co.uk/map.srf?x=530848&y=181628&pc=WC1V+6DT)  (London WC1V 6DT)
] def
/HeaderFooterCenterX {TypeOfPagesBeingRendered /Glasses eq {GlassPositions SheetNum get dup 6 get 0 get exch 2 get 0 get add 2 div} {0.5} ifelse} def

/PrePourNumCopies 1 def
/DecantingNotesNumCopies 1 def
/CorkDisplay true def
/StickyLabelsNumCopies 2 def
/StickyLabelsTypes [ 0 ] def

/TitlesFont     /Tahoma-Bold def
/OvertitlesFont  /LiberateBold def
/CircletextFont /BookmanOldStyle def
/BelowtitlesFont  OvertitlesFont def

/ColourSchemeTitles /MidGrey def  % /MidGrey /Black

/GlassesOnSheets [
   [
       0   1   2   3
         5   6   7
      10  11  12  13
        15  16  17
   ]
   [
                         3   4
                           8   9
                        13  14
                          18  19
                        
   ]
] def  % /GlassesOnSheets

/PermittedPackingStyles [ {SheetNum 0 eq {/PseudoHexagonal} {[ [0 3 3 3] [2 3 3 3]  [1 2 3 2] [3 2]  [0 1 3 1] [2 1 3 1]  [1 0 3 0] [3 0] ]} ifelse} ] def

/WaterCountTarget 10 def  % intended number of tickable squares
/WaterCountMaxRowLengths [ 4 3 2 1 ] def
/WaterCountsOverrideShowEverySheet false def
/WaterCountShowLeft [  true false ] def
/WaterCountShowRight [ false true ] def

/CircletextsMinCopies 6 def

/BelowtitleMaxFontSizeProportionTitles 0.75 def
/OvertitleMaxFontSizeProportionTitles 0.75 def
/FontSizesRatioTitlesMin 1.4 def
/FontSizesRatioAboveBelowOverMin 99 def

/ShapesInTitles {specialquintaLong Circlearrays WithinTitles get 1 get eq} def
/ShapesInOvertitles false def
/ShapesToUse [/Star] def  % At least one of: /Flower /Star
/ShapesTitlesFill {1 setgray fill} def

/CrossHatchingTitles {taylor Circlearrays WithinTitles get 1 get eq} def
/CrossHatchingBelowtitles false def
/CrossHatchingOvertitles false def
/CrossHatchingCentreX {GlassPositions SheetNum get  SheetNum 0 eq {0 get 0 get} {dup 0 get 0 get 4 mul exch 1 get 0 get -3 mul add} ifelse} def  % /Name /Left /Center /Right

/InlineTitles {Circlearrays WithinTitles get 1 get dup vargellasLong eq exch terrafeitaLong eq or} def
/InlineTitlesMaxNumberContours {Circlearrays WithinTitles get 1 get vargellasLong eq {8} {2} ifelse} def

/MarginL 18 def  % Left
/MarginB {TypeOfPagesBeingRendered dup /PrePour eq exch /VoteRecorder eq or {30} {MarginL} ifelse} def  % Bottom
Software version: 18:00 Friday 15th March 2013.

Lots happening.

• Various strings were used multiple times, so given identities (taylor, specialquintaShort, vargellasShort, terrafeitaShort, specialquintaLong, vargellasLong, terrafeitaLong).

• As is usual, much of the wine-specific action driven by the data in Circlearrays. Logic on this used in Titles (alas some its logic being redundant), Overtitles, SubtitlesVoteRecorder, ShapesInTitles, CrossHatchingTitles, InlineTitles, and InlineTitlesMaxNumberContours.

One of the two A3 pages to be guillotined and overlapped on the other, being affixed with double-sided sticky tape. That caused complications.

• Observe the layout of GlassesOnSheets, and complicated value of the only item of PermittedPackingStyles when SheetNum == 1.

• There were also complications for HeaderCenterText and HeaderRightText, and careful positioning of the centre with HeaderFooterCenterX, which was recently re-named.

• The full-declaration Taylors had CrossHatching. Because there was to be one physical sheet, the CrossHatchingTitles needed a common centre, requiring code in CrossHatchingCentreX.

• Because of the shortage of table space, the left/bottom/right margins were slightly compressed, from the usual 30, to 18. Except in the ‘backstage’ papers, which tend to have a footer, for which the bottom margin wasn’t compressed. Hence the code in MarginB.

And one thing not happening properly.

• Because the T35 and TV70 appear on both glasses sheets, they have twice as many labels as the others. Error. What to do? This could have been fixed in the parameters by making StickyLabelsNumCopies much more complicated, but that would be nasty. Of course there can’t be a …StickyLabels… equivalent of GlassesClusteredOnVoteRecorders, so it can’t be fixed that way. So instead I will code StickyLabels… equivalents to PrePourRemoveDuplicatesByWithinTitles and PrePourSortByWithinTitles.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 11:52 Tue 02 Apr 2013

Tuesday 2nd April 2013, 1983-1985 double Horizontal, at The Bung Hole (placemats, planning and arrangements, review of the evening).

Image Image Image Image

Code: Select all
/Warre [(W) {-0.06 Kern} (arre)] def
/Taylor [(T) {-0.06 Kern} (aylor)] def

/Circlearrays [
   [ (Dow) (1983) ]
   [ (Dow) (1985) ]
   [ (Graham) (1983) ]
   [ (Graham) (1985) ]
   [ Warre (1983) ]
   [ Warre (1985) ]
   [ Taylor (1983) ]
   [ Taylor (1985) ]
   [ (Fonseca) (1983) ]
   [ (Fonseca) (1985) ]
] def

/Titles [
   (D83)  (D85)
   (G83)  (G85)
   (W83)  (W85)
   (T83)  (T85)
   (F83)  (F85)
] def

/Belowtitles [ Circlearrays length {()} repeat ] def

/Names [
   (DJ)
   (MDB)  % DRT's +1, Daniel, right-handed
   (DRT)
   [(JDA) {-0.06 Kern} (W)]
   (THRA) (PW) (AHB)
   ()
] def

/HeaderLeftText [(The Bung Hole, Tuesday 2) {SuperscriptOn} (nd) {SuperscriptOff} ( April 2013)] def
/HeaderCenterText [(1983 versus 1985)] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=6813&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2013/20130402_1983_1985.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
   (http://www.streetmap.co.uk/map.srf?x=530848&y=181628&pc=WC1V+6DT)  (London WC1V 6DT)
   (http://en.wikipedia.org/wiki/1983)  (1983 at Wikipedia)
   (http://en.wikipedia.org/wiki/1985)  (1985 at Wikipedia)
] def

/DecanterLabelsNumCopies {SheetNum 1 eq {1} {0} ifelse} def
/CorkDisplay true def

/TitlesFont     /BlueHighwayFreeCondensed def
/CircletextFont /Cochin-Bold def

/FontSizesRatioTitlesMin 1.1 def

/GlassesOnSheets [  0 1 1 {[exch 2 Titles length 1 sub {} for]} for  ] def
/GlassesOnTastingNotePages GlassesOnSheets def

/GlassesClusteredOnVoteRecorders [
   GlassesOnTastingNotePages 0 1 getinterval
   GlassesOnTastingNotePages 1 1 getinterval
   GlassesOnTastingNotePages
] def  % triple-depth array, same length as VoteRecorderTopTexts and VoteRecorderShowTotalRow
/VoteRecorderShowTotalRow [ false false false ] def  % Must be same length as GlassesClusteredOnVoteRecorders

/VoteRecorderTopTexts [  % Must be same length as GlassesClusteredOnVoteRecorders, each sub-array containing some number of TopTexts
   [ [/quoteright (83 Of The Night)] ]
   [ [/quoteright (85 Of The Night)] ]
   [ (Wine Of The Night)  (Q:) ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders

/BackgroundTextsGlasses true def
/BackgroundTextsGlassesTexts [ (83) (85) ] def
Software version 23:45 Monday 1st April 2013.

• The code in DecanterLabelsNumCopies, as only an F85 label was needed. At first attempt this didn’t work — code was fixed so that DecanterLabelsNumCopies could depend on SheetNum.

• Cute definition of GlassesOnSheets.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London

Re: Parameters for the placemat software

Postby jdaw1 » 13:49 Tue 16 Apr 2013

Wednesday 17th April 2013, Oscar in London at The Bung Hole on the day of the funeral of Baroness Thatcher (placemats, planning and arrangements).

Image   Image   Image   Image

Code: Select all
/Names [
   (OJMQ)  % OJMQ = Oscar Quevedo
   (AHB)
   (CMAG)
   [(DR) {+0.04 Kern} (T)]
   [(JDA) {-0.12 Kern} (W)]
   (BMHR)
   [(ID) {+0.02 Kern} (J)]  % Ian Johns
   (WS)
   (RMW)  % Ronnie Roots
   ()
] def

/Circlearrays [
   [ (Oscar Quevedo) ]
   [ (Alex Bridgeman) ]
   [ [(Christ) {+0.04 Kern} (opher Gee)] ]
   [ [(Derek Turn) {-0.04 Kern} (bull)] ]
   [ [(J) {-0.04 Kern} (ulian Wiseman)] ]
   [ (Ben Read) ]
   [ (Ian Johns) ]
   [ [(W) {-0.08 Kern} (olfgang S) {-0.04 Kern} (t) {+0.04 Kern} (arz)] ]
   [ [(Ronnie Root) {+0.04 Kern} (s)] ]
   [ (+) ]
   [ /dagger ]
   [ /daggerdbl ]
] def

/Titles [
   (OJMQ)  % OJMQ = Oscar Quevedo
   (AHB)
   (CMAG)
   [(DR) {+0.02 Kern} (T)]
   [(JDA) {-0.02 Kern} (W)]
   (BMHR)
   (IDJ)
   (WS)
   (RMW)  % Ronnie Roots
   counttomark dup Circlearrays length exch sub Circlearrays 3 1 roll getinterval aload pop
] def

/Belowtitles [ Circlearrays length {()} repeat ] def

/TastingNotesCirclesBehind true def

/HeaderLeftText [(At The Bung Hole on the day of the funeral of Baroness Thatcher)] def
/HeaderCenterText [(Oscar in London)] def
/HeaderRightText [
   (www) {-0.02 Kern} (.QuevedoPortWine.com, )
   (www) {-0.02 Kern} (.) {-0.092 Kern} (ThePortForum.com, )
   (www) {-0.02 Kern} (.) {-0.04 Kern} (jdawiseman.com)
] def

/ExternalLinks [  % Even-length array of strings: http://URL0, Descriptor0, http://URL1, Descriptor1, ...
   (http://www.theportforum.com/viewtopic.php?t=6834&view=unread#unread)   (Thread on ThePortForum.com)
   (http://www.jdawiseman.com/2013/20130417_oscar.pdf)   (Latest version this placemat)
   (http://www.davy.co.uk/bunghole/)  (The Bung Hole)
   (http://www.streetmap.co.uk/map.srf?x=530848&y=181628&pc=WC1V+6DT)  (WC1V 6DT, streetmap.co.uk)
   (https://maps.google.co.uk/maps?z=20&t=k&layer=c&cbll=51.5182,-0.1154&cbp=11,15,,0,0)  (WC1V 6DT, maps.google.co.uk)
   (http://www.quevedoportwine.com/)  (QuevedoPortWine.com)
   (http://www.margaretthatcher.org/)  (MargaretThatcher.org)
] def

/StickyLabelsNumCopies 1 def
/StickyLabelsTypes [0] def

/GlassesClusteredOnVoteRecorders [
   {GlassesOnTastingNotePages} dup
] def  % triple-depth array, same length as VoteRecorderTopTexts and VoteRecorderShowTotalRow
/VoteRecorderTopTexts [  % Must be same length as GlassesClusteredOnVoteRecorders, each sub-array containing some number of TopTexts
   [ (What is it?) ]
   [ (Wine Of The Night)  (Q:) ]
] def  % Must be same length as GlassesClusteredOnVoteRecorders
/VoteRecorderShowTotalRow [ true false ] def  % Must be same length as GlassesClusteredOnVoteRecorders

/VoteRecorderCrossedBox {VoteRecorderShowTotalRow VoteRecorderSheetNum get  NameNum WithinTitles eq  NameNum Names length 1 sub lt  and and} def  % replace 'false' with code referring to WithinTitles and NameNum

/TitlesFont     /AvenirNextCondensed-DemiBold def
/CircletextFont /Modern-Regular def  % Very sloppy letter spacing: don't use again.

/FontSizesRatioTitlesMin 9999 def

/CrossHatchingTitles true def
/CrossHatchingCentreY /Name def  % /Name /Bottom /Middle /Top
Software version 18:00 Monday 15th April 2013.

• Don’t use the font /Modern-Regular as it has sloppy letter spacing.
User avatar
jdaw1
Quinta do Noval Nacional 1962
 
Posts: 11438
Joined: 14:03 Thu 21 Jun 2007
Location: London


Return to Reference

Who is online

Users browsing this forum: No registered users and 0 guests