Skip to content
M F edited this page Jun 5, 2022 · 12 revisions

Michael F's convention cards in LaTeX

LaTeX, like many other tools originally devised in academia on the UNIX platform, is amazing if you know how to use it, and utterly incomprehensible if you don't.

The ACBL convention card is a complicated page, with lots of checkboxes and explanation lines in odd places.

Many computer editors have been made for people to fill out this card, all with problems. Anything involving MS Word will utterly b0rk the formatting if you put in one space too many, for instance (and who knows what Star/Open/LibreOffice will do to it). Most other editors have been abandoned for over a decade.

So, is the best solution combining ACBL with LaTeX? Maybe. And that's what GRB did. And when the ACBL card got revised in 2022, Michael recreated it using GRB's old card as an example.

Michael knows LaTeX well, and is happy in a non-WYSIWYG editing environment. So for Michael - this works. It takes about 10 minutes to build a card from a written sample, and it takes longer to do the git dance than it does to fix and reprint them on changes - even complete changes like switching to Power doubles/1NT for takeout from standard.

Convention cards change over time as partners refine their agreements. Keeping track of what is current and when things were changed is a problem. SCRs like Github are designed explicitly for that. Determining what the difference is is a nightmare for diagrams, but since the actual source generating the images is .tex files - perfect. Hosting the pdfs in Github as well is non-standard, but provides a universal place online to point opponents (or potential partners) to.

Legal nonsense

The style file is released CC-BY-SA. Use it, tweak it to your heart's content, but if you release it, you can't stop people from changing your stuff. I would really like a copy (preferably a pull request).

The example and template are released as CC-BY. Not enforcing a Share-Alike because filled-in templates, the whole point behind doing this, should be private, and the PDF's created from the templates are yours.

I would be happy to make one for you. I am less happy to follow it through a dozen system changes a year...

How to use

  1. clone the repo, or just the template files (the sty, the template and the example). Add the style file to your texmf and reload the library.
  2. copy the template to your working .tex file.
  3. read the header on the template carefully. It will break if you do it wrong. Key reminders:
  • do not delete/comment out \newcommands. You can leave them empty.
  • do comment out (you can delete, but if you want to check them later...) unchecked checkboxes.
  • suits are \c, \d, \h, \s. You may need to escape the next character, for instance: (through 2 \c\).
  • you can use \rd and \rh for red diamond and red heart, and \bc and \bs for black club and spade.
  • Override standard formatting of text with:
    1. \redreg{} and \redbold{} for alertable/ bold alertable text
    2. \bluereg{} and \bluebold{} for announceable/ bold announceable text
    3. \regtext{} and \boldtext{} for non-alertable/ bold non-alertable text (in places where the default is alertable).
  • for card selection in the lead sections, put the number of the card led if not default. For example, \newcommand{\KJTx}{3} means you lead the T from KJTx. Multiple selections are supported, see the header.
  • \hspace{} can be used to pull or push text to fit the line underneath.
  1. Fill in the information in each textbox just as you would on the card. The comments on what means what are relatively straightforward, but it's still helpful to have a card handy to follow along. The order is "right side, top to bottom, then left side, left to right, top to bottom."
  2. Uncomment the checkboxes you want to have checked. Again, the comments are helpful, and the checkboxes are in order L->R as well as abbreviated sanely. Still handy to have a real card.
  3. Do all the LaTeX things - linting, inspection, make, preview...As will not surprise you at all, getting it to compile the first time can be a hassle; once it does, getting it right is almost mindless.

My changes

I have made several minor changes to the card because I think they're better. They still fit in the "ACBL card style" - I'm sure they will not confuse anybody.

  1. You can choose not to have the guide lines under user text. I find they make the card very busy.
  2. You can choose to have user text in serif font. I find that without the guidelines, what is "card" and what is "filled-in" can be mildly confusing if the fonts are the same. The default is "same font if guide lines, serif if no guide lines", but choose which format you want.
  3. The Name header is tweaked, allowing ACBL Numbers to be added.
  4. Suits are naturally coloured, even in "transfer sections".
  5. for 1♣ and 1♦ sections, I've inverted the "style" line and the "Resp:" line. It makes more sense to my reading.
  6. The 1NT header line is very cluttered, and if you don't play multiple 1NT ranges, wastes a lot of space. So:
  • if there's only one range, the rest of the line is converted into a text entry field for "Style", where you can put things like if you open with singletons, or shape expectations, or upgrade philosophy.
  • if there's two ranges, I've replaced "Seat/vul" with "If:" to give more space; I've changed "Same Resp Y N" into a checkbox and (small) text line.
  1. For NT overcalls, again if there is only one, it is expanded to fill the entire box so you can detail more clearly.
  2. Minor text reformatting of "Direct Cuebids" section.
  3. For leads sections, removed the "CIRCLE CARD LED (if not bold)" instruction and "Interior Seq" line, which made room for a second "Exceptions" text line.

Enjoy!

I realize that LaTeX is a bit of a jump to get on, especially if you haven't done any programming. But this really is 90% "fill in the blanks" and "remove % comment symbols", and learning how to make the silly thing. It really is almost faster for me to make a card in the template than it is to fill it out by hand. I would like to encourage anyone who thinks they can learn this thing to try it at least once.

Clone this wiki locally