[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: Conundrum



** Reply to note from nsivin@xxxxxxxx (Nathan Sivin) Thu, 23 Jan 1997 09:19:43 -0500 (EST)

Nathan:

Here's one home-brew way that I've used to de-nun your conundrum (a
meaningless word, BTW). I was printing out museum exhibition labels;
there'd be ten other ways to do this if it weren't for the vertical
spacing, which is the sole snag. I'd be curious to see other
solutions...

1) I assume that you want your cards to print out in a particular order,
e.g. alpha sorted? So you don't want to hard code anything that can't be
changed readily (e.g. a COlumn number) in your raw bibliographic data. All
you need is unique character(s) after each book|article in your raw
list, as a sort of separator between citations (in my bibliographies, two
consecutive carriage returns serve this purpose).

2) Here's the principle: Our goal is to subdivide the page into quarters,
thus generating four 3.5 x 5 inch "cards". Print Landscape
(ORientation=1). Assume 8.5 x 11 inches, useable printed area = 6.5 x 9
inches. Assume a 12-point font, which yields 15 lines/card.

3) We're gonna tell XyWrite to print *three* COlumns per row, two rows per
page. So that's six items per page, of which four will be bibliographic
citations. Why the extra entries? They're non-printing dummies (COlumn
3), which serve only to establish constant vertical spacing. Here's how
the page looks (approximately):

----------------------------------------------
          |          |
  Cite#1   |   Cite#2  |
          |          |
--------------------|-------------------|-----
          |          |
  Cite#3   |   Cite#4  |
          |          |
----------------------------------------------

Column 3 has a nominal width of .1 inch, to accommodate a carriage return
and nothing more. Your header template probably ought to look something
like this (depends how you intend to slice the page):





A simple PM "paginates" your raw bibliographical data each time you print
it out, using a throwaway copy of your original data. It goes something
like:

1) Replace the citation separator -- let's assume two s -- with,
  alternately, "" and "" (first instance must be !)
2) Alternate between replacing instances of "" with, first,
  "[*fifteen carriage returns*]" and then with "".
  (In code, below, I do the "[*fifteen carriage returns*]"
  replacement in two stages, first replacing with a dummy character, a
  wierd 3-byte "W" which nobody will ever actually use, and then going
  back at the end and substituting the actual string -- avoids logical
  difficulties).
  Done.


XPLeNCODE v1.9
b-gin 3X5CARDS.PM RJH 1/23/97
[XH_][YD_][XD_][XP_][TF_][BX_](es 1);*;[cr|lf]{<}LBA{>}[BX_]c
i/1 ^[wC][wC]^{<}CO2{>}^[Q2_]{<}IF@NOT({<}ER{>}){>}[BX_]ci/1{32}
^[wC][wC]^[255+53+55]^[Q2_]{<}IF@NOT({<}ER{>}){>}[BX_]ci/1 ^[
wC][wC]^{<}CO2{>}^[Q2_]{<}IF@NOT({<}ER{>}){>}[BX_]ci/1 ^[wC][
wC]^{<}CO3{>}{<}PG{>}{<}CO1{>}^[Q2_]{<}IF@NOT({<}ER{>}){>}{<}
GLA{>}{<}EI{>}{<}EI{>}{<}EI{>}{<}EI{>};*;[cr|lf];*;[cr|lf][BX
_]ci ^[255+53+55]^{<}CO3{>}[wC][wC][wC][wC][wC][wC][wC][wC][w
C][wC][wC][wC][wC][wC][wC]{<}CO1{>}^[Q2_][BF_]{<}SV01,{<}EC{>
}{<}PG{>}{>}{<}GT01{>}[TF_][BX_](es 0){<}PRDone{>}{<}EX{>}[cr
|lf]
-nd
XPLeNCODE

This is harder to describe than to implement, and the idea is really
simple if you study it. I haven't actually tried it, but it should be a
snap.

Here's the PM in XXcode. Lemme know. This _is_ gonna work!

Moronic XXenCoder for XyWrite RexXPL v1.0 R.J.Holmgren 9/22/96
begin 644 3X5CARDS.PM
hzs8bzs2xzs29zs4hzs1lzs8f84Jn612dCmcv1EeiH27-fzy0eqBd9n2ULjz+
hazz+apuiEowmfpvzUbyiGIN+HYxI88t3Iewdfzy0eqBd9n2ULjz+azz+apvz
hBHRSzs7zfYZ4E2tDJ0WiFJ8j8OzzUehXOGwl63vzk7jzk7hSfYBDAexSzs7z
hfYZ4E2tDJ0WiFJ8j8OzzUehXOGwl63vzk7jzk7hSfYBDAuyiI2SjfYBDAOxS
hzs7zfYZ4E2tDJ0WiFJ8j8OyiFol-fut3GOyiFIajfYJ7fut3GOwv8XgB0Xge
hCko8zs8fMqYULjwpBpuiEownfzz+azz+azz+azz+azz+azz+azz+azz+azz+
hazz+azz+azz+azz+azz+azz+aut1Hn4jLjy0Tzy+HOtHJX+l98t3EuyiI2Sj
Wfut5J1+lfzy+wTy0emVZQm+k8OtEIYFjPaKjfYJMfko84U++
+
end



-----------
Robert Holmgren
holmgren@xxxxxxxx
-----------