Skip to main content

Example: Business cards typeset with LaTeX

So you enjoy the quality of a professional typesetting system? You got Avery labels, a working MikTeX and the ticket package installed...
You might find some assistance from a half criminal paranoid zealot system administrator, willing to guide you through a dinosaur kingdom of TeX ... but that kind of assistance might also just leave you with nothing.

It was easy to get the layout of the labels with the option zw32010, but how about page margins? I tried to set things straight with the layouts package (\usepackage{layouts}\currentpage \pagedesign), but then there was still some unwanted white space and margins...

To make things less complicated I decided to make a single card. The solution is a hack because it needs customization (with voffset and hoffset as you see n the TeX code below) but the adjustment is more straightforward, especially if you use the boxed option with ticket.

The card was converted to png with Ghostscript and I could easily print the business cards with Averys template, where I inserted the generated card-graphics.

The tex-code for the businesscard:




\ticketSize{85}{54} %in unitlength
\ticketDistance{0}{0} %in unitlength

%adjust these margins using the 'boxed' option with ticket, e.g. \usepackage[boxed]{ticket}
\advance \voffset -0.35cm
\advance \hoffset -.01cm

% Here we set top and left margins found from the Avery Word-template (page setup margins)  %

% define something

% make your default ticket. \ticketdefault is somewhat like a background
% here it is empty, because we use different tickets for the front an
% the back of our card

% now what do you like to put in your ticket
    \put( 54.25, 10){\includegraphics[width=25mm,angle=0,origin=bl]{foto.png}}
    \put( 5, 13){\small }
    \put( 5, 16){\small Email:}
    \put( 5, 11){\small Phone:}
    \put(5,41){\LARGE #1}
    \put(12,16){\small #3}
    \put(13,11){\small #4}
    \put(5,19){\small #5}

    \put( 49, 18){\includegraphics[width=30mm,angle=0,origin=bl]{websiteQR.png}}
    \put( 7, 44){\small Hellmund Consulting}
    \put( 7, 40){\small Forbindelsesvejen 116}
    \put( 7, 36){\small DK9400 Nørresundby}
    \put( 7, 32){\small Denmark}
    \put( 5, 12){\color{uni}\line(1,0){75}}
   \put(7,5){\small Phone: + 45 98 17 23 73}



\vcardfront{Gunnar Hellmund}{Consultant, statistician, PhD}{\hspace{0.2cm}}{\hspace{0.2cm}+45 98 17 23 73}{}

\vcardback{web: \\phone: +45 98 17 23 73}

DOS code for conversion using 64 bit Ghostscript:

gswin64 -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha 
-dGraphicsAlphaBits=4 -r600x600 -sOutputFile=visitkort%d.png enkelt.pdf


Waseem said…
like the card..can a plastic business cards be designed same like that.

Popular posts from this blog

Alder/korrekt århundrede udfra cpr nummer

De fleste, der arbejder med registre eller databaser, står ofte med problemstillingen, at alder er uoplyst, medens cpr-nummer er kendt. Hvordan regner man den ud? Følgende regel er gældende: Hvis syvende ciffer er 0, 1, 2 eller 3 er man født i det 20. århunderede (1900-tallet) Ligeledes, hvis syvende ciffer er 4 eller 9, og årstallet (femte og sjette ciffer) er større end eller lig 37. Endelig er man født i det 19. århundrede (1800-tallet) hvis syvende ciffer er 5, 6, 7 eller 8 og årstallet er større end eller lig 58. Nedenfor finder du eksempel i SAS kode: En lille makro, der udover fødselsdato også udregner køn samt den præcise alder givet datovariabel. Kilde: Opbygning af CPR nummeret, proc format library=work; value gender 0="Female" 1="Male" ; run; %macro agefromCPR(cpr,datevar=inddto,birthvar=birth,agevar=age); dy_temp=input(substrn(&cpr,1,2),2.); mt_temp=input(substrn(&cpr,3,2),2.); yr_temp=input(substrn(&cpr,5,2),

Comorbidity indexes in SQL

Generating Elixhauser comorbidity index from Danish National Health Register as relational database. ( ICD 10 Coding  in SAS) A lookup-table based version of Charlson comorbidity index I made in SQL. A similar approach can be applied to Elixhauser. SELECT V_CPR, MAX(EI1)+MAX(EI2)+MAX(EI3)+MAX(EI4)+MAX(EI5)+ MAX(EI6)+MAX(EI7)+MAX(EI8)+MAX(EI9)+MAX(EI10)+ MAX(EI11)+MAX(EI12)+MAX(EI13)+MAX(EI14)+MAX(EI15)+ MAX(EI16)+MAX(EI17)+MAX(EI18)+MAX(EI19)+MAX(EI20)+ MAX(EI21)+MAX(EI22)+MAX(EI23)+MAX(EI24)+MAX(EI25)+ MAX(EI26)+MAX(EI27)+MAX(EI28)+MAX(EI29)+MAX(EI30)+MAX(EI31) AS Elixhauser FROM (SELECT V_CPR, -- Congestive Heart Failure CASE WHEN DIAG LIKE 'DI099%' OR DIAG LIKE 'DI110%' OR DIAG LIKE 'DI130%' OR DIAG LIKE 'DI132%' OR DIAG LIKE 'DI255%' OR DIAG LIKE 'DI420%' OR DIAG LIKE 'DI425%' OR DIAG LIKE 'DI426%' OR DIAG LIKE 'DI427%' OR DIAG LIKE 'DI428%' OR DIAG LIKE 'DI429%' OR D

HackRF on Windows 8

This technical note is based on  an extract from thread . I have made several changes and added recommendations. I have experienced lot of latency using GnuRadio and HackRF on Pentoo Linux, so I wanted to try out GnuRadio on Windows. HackRF One is a transceiver, so besides SDR capabilities, it can also transmit signals, inkluding sweeping a given range, uniform and Gaussian signals. Pentoo Linux provides the most direct access to HackRF and toolboxes. Install Pentoo Linux on a separate drive, then you can use osmocom_siggen from a terminal to transmit signals such as near-field GSM bursts, which will only be detectable within a meter. Installation of MGWin and cmake: Download and install the following packages: - MinGW Setup (Go to the Installer directory and download setup file) - CMake (I am using CMake 3.2.2 and I installed it in C:\CMake, this path is important in the commands we must send in the MinGW shell) Download and extract the packages