├── example ├── example_180312.png └── against-humanity_180312.pdf ├── tex ├── img │ ├── None-eps-converted-to.pdf │ ├── draw-eps-converted-to.pdf │ ├── logo-eps-converted-to.pdf │ ├── pick-eps-converted-to.pdf │ ├── illuminati-eps-converted-to.pdf │ ├── None.svg │ ├── None.eps │ ├── logo.eps │ ├── logo.svg │ ├── illuminati.svg │ ├── illuminati.eps │ ├── pick.eps │ ├── pick.svg │ ├── draw.eps │ └── draw.svg ├── answers.csv ├── questions.csv └── against-humanity.tex ├── LICENSE.txt └── README.md /example/example_180312.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramabile/latex-against-humanity/HEAD/example/example_180312.png -------------------------------------------------------------------------------- /tex/img/None-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramabile/latex-against-humanity/HEAD/tex/img/None-eps-converted-to.pdf -------------------------------------------------------------------------------- /tex/img/draw-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramabile/latex-against-humanity/HEAD/tex/img/draw-eps-converted-to.pdf -------------------------------------------------------------------------------- /tex/img/logo-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramabile/latex-against-humanity/HEAD/tex/img/logo-eps-converted-to.pdf -------------------------------------------------------------------------------- /tex/img/pick-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramabile/latex-against-humanity/HEAD/tex/img/pick-eps-converted-to.pdf -------------------------------------------------------------------------------- /example/against-humanity_180312.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramabile/latex-against-humanity/HEAD/example/against-humanity_180312.pdf -------------------------------------------------------------------------------- /tex/img/illuminati-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramabile/latex-against-humanity/HEAD/tex/img/illuminati-eps-converted-to.pdf -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE 2 | Version 1, October 2013 3 | 4 | Copyright (C) 2013 Ben McGinnes 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | 1. Do not hold the author(s), creator(s), developer(s) or 16 | distributor(s) liable for anything that happens or goes wrong 17 | with your use of the work. 18 | -------------------------------------------------------------------------------- /tex/answers.csv: -------------------------------------------------------------------------------- 1 | QA,Picture,Text 2 | 1,None,Diazepam. 3 | 1,None,The tardigrade droog. 4 | 1,None,A flaming claymore. 5 | 1,None,Cats: the infamous and the treacherous 6 | 1,None,Pretending to be high to impress your friend pharmacist. 7 | 1,None,The piercing sniggers. 8 | 1,None,Asshole house mates. 9 | 1,None,The Spanish Inquisition. 10 | 1,None,The indie rock. 11 | 1,None,The same old small-town faces. 12 | 1,None,``To pass'' (cit.) 13 | 1,None,A Japanese movie with reverse censorship. 14 | 1,None,Dungeon World. 15 | 1,None,The diet of fasting. 16 | 1,None,The aesthetic of unnecessary violence. 17 | 1,None,The maieutics of necessary violence. 18 | 1,None,An ingrown nail. 19 | 1,None,Noisy lasers in the space. 20 | 1,None,Explosions in the space. 21 | 1,None,To make it up before taralli and a glass of wine. 22 | 1,None,Rigor mortis. 23 | 1,None,THE PSYCHOHISTORY! 24 | 1,None,Unappropriate online advs. 25 | 1,None,The Pastafarianism. 26 | 1,None,Bertrand Russel's Teapot. 27 | 1,None,Fuck-a-lot. 28 | 1,None,Obsessive-compulsive. disorder 29 | 1,None,A court of midgets and dancers. 30 | 1,None,Important job positions. 31 | 1,None,This crappy game. 32 | 1,None,The feet driving-license. 33 | 1,None,Hide-and-seek. 34 | 1,None,Sci-fi settings with cathodic tubes. 35 | 1,None,Touching the ribs due to famine. 36 | 1,None,Breathing sulfur and being silicon. 37 | 1,None,Procrastinating tomorrow the act of procrastinating the day after tomorrow to the day after. 38 | 1,None,When a head blows up like a watermelon in horror movies. 39 | 1,None,A weight-lifter clitoris. 40 | 1,None,Cheating. 41 | 1,None,An Alexandrine tongue-twister. 42 | 1,None,Vodka in your baby's bottle. 43 | 1,None,The embarassment after a burp. 44 | 1,None,When children used to fall asleep with the Epic of Gilgameš. 45 | 1,None,Jumping on the unroll intestines like a trampoline. 46 | 1,None,A deplorable behavior. 47 | 1,None,The lost savings of the memory card. 48 | 1,None,Zombie fetus eating their mothers from inside. 49 | 1,None,Irritating whistling mics. 50 | 1,None,A jammed disc. 51 | 1,None,Kraut at breakfast. 52 | 1,None,Approaching midlife and still playing this stupid games. 53 | 1,None,Little voices in my head. 54 | 1,None,Glory be to Mephistopheles. 55 | 1,None,Healing necrosis with larvae. 56 | -------------------------------------------------------------------------------- /tex/img/None.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 63 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /tex/img/None.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Creator: cairo 1.14.6 (http://cairographics.org) 3 | %%CreationDate: Fri Feb 23 14:26:52 2018 4 | %%Pages: 1 5 | %%DocumentData: Clean7Bit 6 | %%LanguageLevel: 2 7 | %%BoundingBox: 0 -1 48 34 8 | %%EndComments 9 | %%BeginProlog 10 | save 11 | 50 dict begin 12 | /q { gsave } bind def 13 | /Q { grestore } bind def 14 | /cm { 6 array astore concat } bind def 15 | /w { setlinewidth } bind def 16 | /J { setlinecap } bind def 17 | /j { setlinejoin } bind def 18 | /M { setmiterlimit } bind def 19 | /d { setdash } bind def 20 | /m { moveto } bind def 21 | /l { lineto } bind def 22 | /c { curveto } bind def 23 | /h { closepath } bind def 24 | /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 25 | 0 exch rlineto 0 rlineto closepath } bind def 26 | /S { stroke } bind def 27 | /f { fill } bind def 28 | /f* { eofill } bind def 29 | /n { newpath } bind def 30 | /W { clip } bind def 31 | /W* { eoclip } bind def 32 | /BT { } bind def 33 | /ET { } bind def 34 | /pdfmark where { pop globaldict /?pdfmark /exec load put } 35 | { globaldict begin /?pdfmark /pop load def /pdfmark 36 | /cleartomark load def end } ifelse 37 | /BDC { mark 3 1 roll /BDC pdfmark } bind def 38 | /EMC { mark /EMC pdfmark } bind def 39 | /cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 40 | /Tj { show currentpoint cairo_store_point } bind def 41 | /TJ { 42 | { 43 | dup 44 | type /stringtype eq 45 | { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 46 | } forall 47 | currentpoint cairo_store_point 48 | } bind def 49 | /cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 50 | cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 51 | /Tf { pop /cairo_font exch def /cairo_font_matrix where 52 | { pop cairo_selectfont } if } bind def 53 | /Td { matrix translate cairo_font_matrix matrix concatmatrix dup 54 | /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 55 | /cairo_font where { pop cairo_selectfont } if } bind def 56 | /Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 57 | cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 58 | /g { setgray } bind def 59 | /rg { setrgbcolor } bind def 60 | /d1 { setcachedevice } bind def 61 | %%EndProlog 62 | %%BeginSetup 63 | %%EndSetup 64 | %%Page: 1 1 65 | %%BeginPageSetup 66 | %%PageBoundingBox: 0 -1 48 34 67 | %%EndPageSetup 68 | q 0 -1 48 35 rectclip q 69 | 0 g 70 | 0 33.582 47.242 -33.582 re f 71 | Q Q 72 | showpage 73 | %%Trailer 74 | end restore 75 | %%EOF 76 | -------------------------------------------------------------------------------- /tex/questions.csv: -------------------------------------------------------------------------------- 1 | QA,Picture,Text 2 | 0,None,To regret \underscores? \\ Never ever. 3 | 0,None,Yelling \underscores during a show on air. 4 | 0,None,\underscores: to be continued. 5 | 0,pick,A recent discovery has demonstrated that \underscores helps \underscores. 6 | 0,None,\underscores: fake news or half truth? 7 | 0,pick,1. \underscores \\ 2. \underscores \\ 3. PROFIT! 8 | 0,None,\underscores is not my cup of tea. 9 | 0,None,\underscores is an ugly thing. 10 | 0,pick,God does not play \underscores with \underscores. 11 | 0,pick,Stop to \underscores: it hurts \underscores. 12 | 0,None,\underscores is likely to have never existed. 13 | 0,None,The secret of my success? \underscores! 14 | 0,None,The new frontiers of Science: \underscores. 15 | 0,None,\underscores is an awful invention but I can reconsider it as a knick knack. 16 | 0,None,More \underscores for the many! 17 | 0,None,Nomine Patris et Filii et \underscores. 18 | 0,pick,One \underscores two \underscores is clickbait. 19 | 0,pick,\underscores + \underscores = SEGMENTATION FAULT. 20 | 0,None,There's \underscores a slip 'twixt the cup and the lip. 21 | 0,None,No one expects \underscores. 22 | 0,None,\underscores is dead! Long live them. 23 | 0,None,WHO THE FUCK WROTE THIS CARD? \underscores. 24 | 0,None,\underscores are made to be broken. 25 | 0,None,When I die I do not want \underscores. 26 | 0,pick,We recall \underscores to forget \underscores. 27 | 0,None,My \underscores crashed and I dunno what to do. 28 | 0,pick,I am not \underscores but \underscores. 29 | 0,pick,Everyone is \underscores with others' \underscores. 30 | 0,None,Walls are talking: \underscores written everywhere. 31 | 0,None,My friends are only good at \underscores. 32 | 0,None,\underscores had a very memorable moment. 33 | 0,None,Only the Gods know how much I love \underscores the shithead. 34 | 0,None,\underscores IS A TRAP! 35 | 0,None,Running out of \underscores and still playing the game. 36 | 0,None,After \underscores I can rest in peace. 37 | 0,pick,Input flexibility helps \underscores but output flexibility ruins \underscores. 38 | 0,None,\underscores stole my virginity. 39 | 0,None,\underscores \(>\) /dev/null 40 | 0,None,\underscores as a pretext to hide real problems. 41 | 0,pick,Make a \underscores and give a \underscores. 42 | 0,pick,My physician told me I can't \underscores otherwise I risk \underscores. 43 | 0,None,\underscores is a typical example you didn't get a good fuck. 44 | 0,None,Launching an online channel to play \underscores. 45 | 0,None,\underscores as playing instrument. 46 | 0,None,\underscores is like a drug: you run it once and you stop it never. 47 | 0,None,A Gallehault indeed \underscores and love exploded. 48 | 0,None,A useless black card that it'd be better if you were \underscores. 49 | 0,None,\underscores: ERROR 404 NOT FOUND. 50 | 0,pick,Plenty of \underscores yet without \underscores. 51 | 0,None,\underscores is disgusting. 52 | 0,None,You are too much qualified to \underscores. 53 | 0,pick,You can't understand \underscores without \underscores. 54 | 0,pick,Voting \underscores albeit \underscores. 55 | 0,draw,Social advertising. 56 | -------------------------------------------------------------------------------- /tex/img/logo.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Creator: cairo 1.14.6 (http://cairographics.org) 3 | %%CreationDate: Fri Feb 23 14:27:20 2018 4 | %%Pages: 1 5 | %%DocumentData: Clean7Bit 6 | %%LanguageLevel: 2 7 | %%BoundingBox: 0 -1 20 14 8 | %%EndComments 9 | %%BeginProlog 10 | save 11 | 50 dict begin 12 | /q { gsave } bind def 13 | /Q { grestore } bind def 14 | /cm { 6 array astore concat } bind def 15 | /w { setlinewidth } bind def 16 | /J { setlinecap } bind def 17 | /j { setlinejoin } bind def 18 | /M { setmiterlimit } bind def 19 | /d { setdash } bind def 20 | /m { moveto } bind def 21 | /l { lineto } bind def 22 | /c { curveto } bind def 23 | /h { closepath } bind def 24 | /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 25 | 0 exch rlineto 0 rlineto closepath } bind def 26 | /S { stroke } bind def 27 | /f { fill } bind def 28 | /f* { eofill } bind def 29 | /n { newpath } bind def 30 | /W { clip } bind def 31 | /W* { eoclip } bind def 32 | /BT { } bind def 33 | /ET { } bind def 34 | /pdfmark where { pop globaldict /?pdfmark /exec load put } 35 | { globaldict begin /?pdfmark /pop load def /pdfmark 36 | /cleartomark load def end } ifelse 37 | /BDC { mark 3 1 roll /BDC pdfmark } bind def 38 | /EMC { mark /EMC pdfmark } bind def 39 | /cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 40 | /Tj { show currentpoint cairo_store_point } bind def 41 | /TJ { 42 | { 43 | dup 44 | type /stringtype eq 45 | { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 46 | } forall 47 | currentpoint cairo_store_point 48 | } bind def 49 | /cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 50 | cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 51 | /Tf { pop /cairo_font exch def /cairo_font_matrix where 52 | { pop cairo_selectfont } if } bind def 53 | /Td { matrix translate cairo_font_matrix matrix concatmatrix dup 54 | /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 55 | /cairo_font where { pop cairo_selectfont } if } bind def 56 | /Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 57 | cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 58 | /g { setgray } bind def 59 | /rg { setrgbcolor } bind def 60 | /d1 { setcachedevice } bind def 61 | %%EndProlog 62 | %%BeginSetup 63 | %%EndSetup 64 | %%Page: 1 1 65 | %%BeginPageSetup 66 | %%PageBoundingBox: 0 -1 20 14 67 | %%EndPageSetup 68 | q 0 -1 20 15 rectclip q 69 | 0 g 70 | 12.293 4.469 m 3.016 1.633 l 0.18 10.91 l 9.457 13.746 l f 71 | 0.137255 0.121569 0.12549 rg 72 | 2.922 1.453 m 0 11.004 l 9.551 13.926 l 12.473 4.375 l h 73 | 0.359 10.817 m 3.109 1.813 l 12.113 4.563 l 9.359 13.567 l f 74 | 0.345098 0.352941 0.360784 rg 75 | 4.965 12.332 9.703 -9.703 re f 76 | 0.137255 0.121569 0.12549 rg 77 | 14.809 2.489 m 4.824 2.489 l 4.824 12.473 l 14.809 12.473 l h 78 | 5.109 2.774 m 14.523 2.774 l 14.523 12.192 l 5.109 12.192 l h 79 | 5.109 2.774 m f 80 | 1 g 81 | 16.461 0.176 m 7.184 3.016 l 10.02 12.289 l 19.297 9.453 l f 82 | 0.137255 0.121569 0.12549 rg 83 | 16.555 0 m 7.004 2.918 l 9.922 12.469 l 19.477 9.551 l h 84 | 7.363 3.11 m 16.367 0.356 l 19.117 9.36 l 10.113 12.114 l f 85 | Q Q 86 | showpage 87 | %%Trailer 88 | end restore 89 | %%EOF 90 | -------------------------------------------------------------------------------- /tex/against-humanity.tex: -------------------------------------------------------------------------------- 1 | %%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | \documentclass{article} 3 | \usepackage[paperheight=30cm,paperwidth=45cm,margin=0pt]{geometry} %page layout 4 | \usepackage[freepin,boxed]{ticket} %card interface 5 | \usepackage{graphicx} %handle pictures 6 | \graphicspath{{img/}} %prepend folder for pictures 7 | \usepackage{datatool} %loop utilities 8 | \usepackage[utf8]{inputenc} %richer encoding 9 | \usepackage{ifthen} %if-then clauses 10 | \usepackage{xcolor} %color commands 11 | \usepackage{tikz} %absolute positioning 12 | 13 | %%%% COMMAND DEFINITIONS %%%% 14 | 15 | %%% CONST %%% 16 | %% font %% 17 | \renewcommand{\familydefault}{\sfdefault} 18 | %% black color (hacking purpose) %% 19 | \newcommand\blackname{black} %%% switch here black color 20 | %% long line %% 21 | % COMMENT: hack to print continuous underline. 22 | % TeX is smart enough not to print colored-as-background characters. 23 | \newcommand\underscores{% 24 | \underline{\color{\blackname}% underline following text 25 | \_\_\_\_\_\_\_\_\leavevmode\xleaders\hbox{\_}\hfill\kern0pt\ % grazie ilario 26 | }% 27 | \ } %the space here ensures next character is not underlined 28 | 29 | %%% CARD GENERIC CLASS %%% 30 | \newcommand{\card}[3]{% 31 | \ifthenelse{#1 = 0}{\Question{#2}{#3}}{\Answer{#2}}% 32 | } 33 | \newcommand{\carddefault}{% 34 | \put(12, 3){\tiny Cards Against Humanity}% 35 | \put( 4, 1){\logo}% 36 | } 37 | 38 | \newcommand{\cardtext}[1]{% 39 | \put(4,38){\parbox[t]{0.10\textwidth}{\sffamily \bfseries \flushleft #1}} 40 | } 41 | 42 | %%% CARD SPECIFIC TYPE %%% 43 | %% QUESTION %% 44 | % background % 45 | \newcommand{\Questiondefault}{% 46 | \renewcommand{\ticketdefault}{\color{white}% 47 | \put(0,0){\begin{tikzpicture} 48 | \fill [\blackname] (0mm,0mm) rectangle (5cm,5cm); 49 | \end{tikzpicture}} 50 | \carddefault 51 | } 52 | } 53 | % content % 54 | \newcommand{\Question}[2]{\Questiondefault 55 | \ticket{ 56 | \cardtext{#1} 57 | \put(26,5){\includegraphics{#2}} 58 | } 59 | } 60 | 61 | %% ANSWER %% 62 | % background % 63 | \newcommand{\Answerdefault}{ 64 | \renewcommand{\ticketdefault}{% 65 | \carddefault% 66 | } 67 | } 68 | % content % 69 | \newcommand{\Answer}[1]{\Answerdefault 70 | \ticket{ 71 | \cardtext{#1} 72 | } 73 | } 74 | 75 | %%% PICTURES %%% 76 | \newcommand{\logo}{\includegraphics{logo}} 77 | \newcommand{\draw}{\includegraphics{draw}} 78 | \newcommand{\pick}{\includegraphics{pick}} 79 | 80 | %%% TICKET SETUP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 81 | \ticketNumbers{9}{6} 82 | \unitlength=1mm 83 | \ticketSize{50}{50} 84 | \ticketDistance{0}{0} 85 | \hoffset=-1cm 86 | \voffset=-1.35cm 87 | 88 | %%% END PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 89 | 90 | %%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 91 | 92 | \begin{document} 93 | 94 | \newgeometry{margin=1cm,footskip=0pt} 95 | 96 | %\DTLsetseparator{;} %uncomment it to use semicolon as separator 97 | \DTLloaddb{Questions}{questions.csv} 98 | \DTLforeach{Questions}{\Flag=QA,\Pic=Picture,\Text=Text}{% 99 | \card{\Flag}{\Text}{\Pic}% 100 | } 101 | 102 | \pagebreak %ensures break to separate Questions from Answers (design choice) 103 | 104 | \DTLloaddb{Answers}{answers.csv} 105 | \DTLforeach{Answers}{\Flag=QA,\Pic=Picture,\Text=Text}{% 106 | \card{\Flag}{\Text}{\Pic}% 107 | } 108 | 109 | \end{document} 110 | 111 | %%% END DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 112 | -------------------------------------------------------------------------------- /tex/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 63 | 68 | 73 | 78 | 83 | 88 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /tex/img/illuminati.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 63 | 68 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /tex/img/illuminati.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Creator: cairo 1.14.6 (http://cairographics.org) 3 | %%CreationDate: Fri Feb 23 14:27:37 2018 4 | %%Pages: 1 5 | %%DocumentData: Clean7Bit 6 | %%LanguageLevel: 2 7 | %%BoundingBox: 0 -1 48 34 8 | %%EndComments 9 | %%BeginProlog 10 | save 11 | 50 dict begin 12 | /q { gsave } bind def 13 | /Q { grestore } bind def 14 | /cm { 6 array astore concat } bind def 15 | /w { setlinewidth } bind def 16 | /J { setlinecap } bind def 17 | /j { setlinejoin } bind def 18 | /M { setmiterlimit } bind def 19 | /d { setdash } bind def 20 | /m { moveto } bind def 21 | /l { lineto } bind def 22 | /c { curveto } bind def 23 | /h { closepath } bind def 24 | /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 25 | 0 exch rlineto 0 rlineto closepath } bind def 26 | /S { stroke } bind def 27 | /f { fill } bind def 28 | /f* { eofill } bind def 29 | /n { newpath } bind def 30 | /W { clip } bind def 31 | /W* { eoclip } bind def 32 | /BT { } bind def 33 | /ET { } bind def 34 | /pdfmark where { pop globaldict /?pdfmark /exec load put } 35 | { globaldict begin /?pdfmark /pop load def /pdfmark 36 | /cleartomark load def end } ifelse 37 | /BDC { mark 3 1 roll /BDC pdfmark } bind def 38 | /EMC { mark /EMC pdfmark } bind def 39 | /cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 40 | /Tj { show currentpoint cairo_store_point } bind def 41 | /TJ { 42 | { 43 | dup 44 | type /stringtype eq 45 | { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 46 | } forall 47 | currentpoint cairo_store_point 48 | } bind def 49 | /cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 50 | cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 51 | /Tf { pop /cairo_font exch def /cairo_font_matrix where 52 | { pop cairo_selectfont } if } bind def 53 | /Td { matrix translate cairo_font_matrix matrix concatmatrix dup 54 | /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 55 | /cairo_font where { pop cairo_selectfont } if } bind def 56 | /Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 57 | cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 58 | /g { setgray } bind def 59 | /rg { setrgbcolor } bind def 60 | /d1 { setcachedevice } bind def 61 | %%EndProlog 62 | %%BeginSetup 63 | %%EndSetup 64 | %%Page: 1 1 65 | %%BeginPageSetup 66 | %%PageBoundingBox: 0 -1 48 34 67 | %%EndPageSetup 68 | q 0 -1 48 35 rectclip q 69 | 0 g 70 | 0 33.582 47.242 -33.582 re f 71 | 1 g 72 | 16.262 3.075 m 16.309 3.457 23.555 30.493 23.613 30.512 c 23.656 30.52 73 | 28.066 26.133 33.414 20.762 c 38.766 15.387 43.289 10.848 43.465 10.668 74 | c 43.789 10.348 l 30.02 6.657 l 22.445 4.625 16.254 3.016 16.262 3.075 c 75 | h 76 | 30.246 12.504 m 31.602 13.266 32.812 14.485 33.766 16.039 c 34.273 16.868 77 | l 33.262 17.414 l 32.02 18.086 30.531 18.551 29.289 18.657 c 28.473 18.727 78 | 28.172 18.688 26.887 18.348 c 25.656 18.02 25.301 17.879 24.719 17.485 79 | c 23.676 16.782 22.609 15.633 21.879 14.438 c 21.227 13.371 l 22.145 12.868 80 | l 25.039 11.278 27.844 11.153 30.246 12.504 c h 81 | 27.941 12.008 m 27.246 11.965 26.285 12.286 25.754 12.743 c 24.258 14.016 82 | 24.219 16.145 25.664 17.496 c 26.258 18.051 27.492 18.364 28.359 18.18 83 | c 30.434 17.739 31.477 15.407 30.422 13.575 c 29.922 12.711 28.902 12.071 84 | 27.941 12.008 c h 85 | 29.555 13.086 m 31.348 14.707 30.281 17.723 27.859 17.868 c 25.742 17.993 86 | 24.262 15.594 25.34 13.778 c 26.246 12.246 28.258 11.918 29.555 13.086 87 | c h 88 | 27.574 13.411 m 26.824 13.528 26.285 14.008 26.09 14.735 c 25.844 15.661 89 | 26.355 16.508 27.32 16.766 c 27.793 16.891 27.809 16.887 27.68 16.633 c 90 | 27.477 16.239 27.672 15.657 28.047 15.52 c 28.219 15.457 28.469 15.434 91 | 28.602 15.473 c 28.734 15.508 28.938 15.649 29.055 15.789 c 29.262 16.036 92 | 29.27 16.032 29.387 15.594 c 29.68 14.489 28.645 13.243 27.574 13.411 c 93 | h 94 | 27.574 13.411 m f 95 | Q Q 96 | showpage 97 | %%Trailer 98 | end restore 99 | %%EOF 100 | -------------------------------------------------------------------------------- /tex/img/pick.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Creator: cairo 1.14.6 (http://cairographics.org) 3 | %%CreationDate: Fri Feb 23 14:26:34 2018 4 | %%Pages: 1 5 | %%DocumentData: Clean7Bit 6 | %%LanguageLevel: 2 7 | %%BoundingBox: 0 -1 48 34 8 | %%EndComments 9 | %%BeginProlog 10 | save 11 | 50 dict begin 12 | /q { gsave } bind def 13 | /Q { grestore } bind def 14 | /cm { 6 array astore concat } bind def 15 | /w { setlinewidth } bind def 16 | /J { setlinecap } bind def 17 | /j { setlinejoin } bind def 18 | /M { setmiterlimit } bind def 19 | /d { setdash } bind def 20 | /m { moveto } bind def 21 | /l { lineto } bind def 22 | /c { curveto } bind def 23 | /h { closepath } bind def 24 | /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 25 | 0 exch rlineto 0 rlineto closepath } bind def 26 | /S { stroke } bind def 27 | /f { fill } bind def 28 | /f* { eofill } bind def 29 | /n { newpath } bind def 30 | /W { clip } bind def 31 | /W* { eoclip } bind def 32 | /BT { } bind def 33 | /ET { } bind def 34 | /pdfmark where { pop globaldict /?pdfmark /exec load put } 35 | { globaldict begin /?pdfmark /pop load def /pdfmark 36 | /cleartomark load def end } ifelse 37 | /BDC { mark 3 1 roll /BDC pdfmark } bind def 38 | /EMC { mark /EMC pdfmark } bind def 39 | /cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 40 | /Tj { show currentpoint cairo_store_point } bind def 41 | /TJ { 42 | { 43 | dup 44 | type /stringtype eq 45 | { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 46 | } forall 47 | currentpoint cairo_store_point 48 | } bind def 49 | /cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 50 | cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 51 | /Tf { pop /cairo_font exch def /cairo_font_matrix where 52 | { pop cairo_selectfont } if } bind def 53 | /Td { matrix translate cairo_font_matrix matrix concatmatrix dup 54 | /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 55 | /cairo_font where { pop cairo_selectfont } if } bind def 56 | /Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 57 | cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 58 | /g { setgray } bind def 59 | /rg { setrgbcolor } bind def 60 | /d1 { setcachedevice } bind def 61 | %%EndProlog 62 | %%BeginSetup 63 | %%EndSetup 64 | %%Page: 1 1 65 | %%BeginPageSetup 66 | %%PageBoundingBox: 0 -1 48 34 67 | %%EndPageSetup 68 | q 0 -1 48 35 rectclip q 69 | 0 g 70 | 0 33.582 47.242 -33.582 re f 71 | 1 g 72 | 39.898 0 m 43.953 0 47.242 3.286 47.242 7.34 c 47.242 11.395 43.953 14.68 73 | 39.898 14.68 c 35.844 14.68 32.559 11.395 32.559 7.34 c 32.559 3.286 35.844 74 | 0 39.898 0 c f 75 | 0.137255 0.121569 0.12549 rg 76 | 36.988 9.942 m 37.125 10.379 37.328 10.754 37.594 11.078 c 37.867 11.403 77 | 38.207 11.657 38.613 11.84 c 39.02 12.016 39.492 12.11 40.023 12.11 c 40.426 78 | 12.11 40.812 12.047 41.18 11.922 c 41.547 11.797 41.867 11.61 42.145 11.379 79 | c 42.426 11.141 42.645 10.852 42.809 10.504 c 42.973 10.161 43.055 9.77 80 | 43.055 9.34 c 43.055 8.895 42.984 8.512 42.84 8.192 c 42.699 7.871 42.508 81 | 7.59 42.273 7.34 c 42.035 7.09 41.766 6.864 41.469 6.661 c 41.172 6.461 82 | 40.871 6.262 40.566 6.063 c 40.262 5.864 39.969 5.649 39.68 5.422 c 39.395 83 | 5.196 39.141 4.93 38.926 4.629 c 43.105 4.629 l 43.105 3.09 l 36.609 3.09 84 | l 36.609 3.598 36.684 4.047 36.832 4.426 c 36.98 4.805 37.176 5.141 37.43 85 | 5.442 c 37.684 5.743 37.98 6.02 38.324 6.27 c 38.664 6.524 39.023 6.778 86 | 39.402 7.043 c 39.598 7.176 39.805 7.313 40.023 7.45 c 40.242 7.59 40.441 87 | 7.743 40.625 7.914 c 40.805 8.086 40.957 8.27 41.082 8.481 c 41.199 8.692 88 | 41.258 8.934 41.258 9.203 c 41.258 9.633 41.137 9.969 40.887 10.211 c 40.641 89 | 10.45 40.32 10.567 39.934 10.567 c 39.672 10.567 39.453 10.508 39.27 10.383 90 | c 39.09 10.262 38.945 10.102 38.836 9.903 c 38.723 9.707 38.648 9.489 38.602 91 | 9.246 c 38.555 9.008 38.531 8.766 38.531 8.532 c 36.809 8.532 l 36.797 92 | 9.039 36.855 9.508 36.988 9.942 c f 93 | 1 g 94 | 8.789 7.321 m 8.973 7.321 9.148 7.332 9.316 7.36 c 9.484 7.387 9.637 7.442 95 | 9.766 7.516 c 9.895 7.594 9.996 7.707 10.074 7.848 c 10.152 7.993 10.191 96 | 8.176 10.191 8.407 c 10.191 8.637 10.152 8.825 10.074 8.965 c 9.996 9.11 97 | 9.895 9.219 9.766 9.297 c 9.637 9.375 9.484 9.426 9.316 9.453 c 9.148 9.481 98 | 8.973 9.496 8.789 9.496 c 7.547 9.496 l 7.547 7.321 l h 99 | 9.227 10.739 m 9.68 10.739 10.066 10.672 10.387 10.539 c 10.703 10.407 100 | 10.965 10.231 11.164 10.016 c 11.363 9.797 11.512 9.551 11.602 9.27 c 11.691 101 | 8.993 11.738 8.707 11.738 8.407 c 11.738 8.118 11.691 7.828 11.602 7.551 102 | c 11.512 7.266 11.363 7.016 11.164 6.801 c 10.965 6.582 10.703 6.411 10.387 103 | 6.278 c 10.066 6.145 9.68 6.078 9.227 6.078 c 7.547 6.078 l 7.547 3.473 104 | l 5.949 3.473 l 5.949 10.739 l h 105 | 14.332 3.473 m 12.734 3.473 l 12.734 10.739 l 14.332 10.739 l h 106 | 20.395 8.801 m 20.301 8.95 20.18 9.086 20.039 9.2 c 19.895 9.317 19.73 107 | 9.407 19.555 9.469 c 19.375 9.536 19.184 9.567 18.988 9.567 c 18.629 9.567 108 | 18.324 9.496 18.074 9.356 c 17.824 9.219 17.617 9.032 17.465 8.801 c 17.309 109 | 8.567 17.195 8.301 17.125 8 c 17.051 7.703 17.016 7.395 17.016 7.075 c 110 | 17.016 6.77 17.051 6.473 17.125 6.184 c 17.195 5.899 17.309 5.637 17.465 111 | 5.407 c 17.617 5.176 17.824 4.993 18.074 4.852 c 18.324 4.715 18.629 4.645 112 | 18.988 4.645 c 19.477 4.645 19.859 4.793 20.137 5.09 c 20.41 5.391 20.578 113 | 5.782 20.637 6.274 c 22.184 6.274 l 22.141 5.817 22.039 5.407 21.867 5.039 114 | c 21.699 4.676 21.473 4.364 21.195 4.106 c 20.918 3.848 20.594 3.653 20.223 115 | 3.516 c 19.848 3.383 19.434 3.309 18.988 3.309 c 18.434 3.309 17.934 3.411 116 | 17.488 3.602 c 17.047 3.797 16.672 4.059 16.363 4.399 c 16.059 4.739 15.828 117 | 5.137 15.664 5.594 c 15.5 6.055 15.422 6.547 15.422 7.075 c 15.422 7.618 118 | 15.5 8.121 15.664 8.586 c 15.828 9.051 16.059 9.453 16.363 9.801 c 16.672 119 | 10.145 17.047 10.418 17.488 10.614 c 17.934 10.813 18.434 10.911 18.988 120 | 10.911 c 19.391 10.911 19.766 10.852 20.125 10.739 c 20.48 10.621 20.801 121 | 10.453 21.082 10.235 c 21.359 10.012 21.594 9.739 21.773 9.414 c 21.961 122 | 9.09 22.074 8.715 22.125 8.297 c 20.578 8.297 l 20.551 8.477 20.488 8.649 123 | 20.395 8.801 c 24.867 10.739 m 24.867 7.723 l 27.707 10.739 l 29.699 10.739 124 | l 26.859 7.868 l 29.973 3.473 l 27.969 3.473 l 25.781 6.739 l 24.867 5.813 125 | l 24.867 3.473 l 23.27 3.473 l 23.27 10.739 l f 126 | Q Q 127 | showpage 128 | %%Trailer 129 | end restore 130 | %%EOF 131 | -------------------------------------------------------------------------------- /tex/img/pick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 63 | 68 | 70 | 72 | 77 | 82 | 83 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LaTeX Against Humanity 2 | 3 |

latex cards against humanity table example

4 |

Give as a pretext
5 | your misanthropic friends
6 | to enjoy a cathartic night
7 | with your own deviltry!

8 | 9 | *LaTeX Against Humanity* is a *LaTeX* (*pdfLaTeX*-compiled) version of [**Cards Against Humanity**](https://www.cardsagainsthumanity.com/), a popular card game which has been attracting very polarized critics (either you love it or you hate it). This version provides the basics to make the ready-to-print document of your own game in three moves: download, write your own cards, compile it in one line. No crap. 10 | 11 | ## Quick Start 12 | A very short workflow for lazy people like you. 13 | The procedure is based on command-line interface and tested for GNU/Linux platform. Ask your favourite geeky friend if you don't get the fuck about what I am talking about before you proceed. 14 | * Download the archive with the button *Clone or download* or clone the git 15 | ``` 16 | git clone https://github.com/ramabile/latex-against-humanity 17 | ``` 18 | * Create your own cards in *questions.csv* and *answers.csv* in the same folder (see **Deck**); 19 | * Compile the document with the following command: 20 | ``` 21 | pdflatex against-humanity.tex 22 | ``` 23 | 24 | ## Rationale 25 | 26 | There exist different online versions of Cards Against Humanity. However, the most popular (according to the search engine) versions are falsely claimed to be editable, whereas actually it is a pain in the ass to modify them. The choice of LaTeX was natural to me since I use it on every day basis and - most importantly - automatically takes care of the layout ([WYSIWYG](https://en.wikipedia.org/wiki/WYSIWYG#Related_acronyms) philosophy). 27 | You can find several attempts on the web. I found the Italian LaTeX version by [ilario](https://github.com/ilario) most fitting my needs, yet some design choice led me to make a new tex document. 28 | I expressely thank ilario since I was inspired by his works to put my version on github. 29 | 30 | ## Design 31 | 32 | The main design choice is to separate the LaTeX code from the cards itself. This decision improves readability and maintainability. The intention is that even a LaTeX total newcomer can understand how to make its own version of the game. 33 | The deck of cards is written in a comma-separated value (*csv*) file that is fed to the main tex file. 34 | 35 | ### Deck (*csv*) 36 | The deck itself is written in a *csv* file. You can automate the creation of your deck with your favourite spreadsheet program (I suggest *LibreOffice Calc*), but even a plain text editor is fine. 37 | The one-line header of your deck file sets the field keyword where you draw your options. Your file must start with *QA,Picture,TEXT* as first line. 38 | * *QA*: a 0/1 question/answer switch. If 0, the card is a question (*"black"*) card. If it is 1, the card is an answer (*"white"*) card. Any other value raises an error. 39 | * *Picture*: picture filename to be included in the card. If you don't want to include a picture, write *None* in the Picture field. Pictures are allowed only for black cards. White cards ignore the third field. 40 | * *Text*: any simple text *but* the special character separator (see further). The text is output to your card and will be printed. If you want to insert blank spaces (*e.g.* for black cards), write *\underscores* in the Text field. 41 | By design, questions and answers are given separately. Save the file *questions.csv* and *answer.csv* in the same directory of the tex file. 42 | 43 | ### Main (*tex*) 44 | You are not intended to modify the main tex file. In principle, you can blindly use it. For advanced users, I explain here its structure. 45 | * The layout of the cards is based on the 46 | [*ticket*](https://ctan.org/pkg/ticket) package. A floating box is used for the text inside the card. The logo *Cards Against Humanity* is added at the footer of each card. The background of the cards is changed to either black or white if the card is a question or an answer, respectively. The question cards take an additional argument as picture ("Picture") according to the name in the csv file. These pictures (even the "None" picture) should have the same background color as the question card. 47 | The layout is encoded as a newcommand as if it were a "function" that gets the QA switch, the text, and the picture of the card (in this respective order), and returns the card itself. 48 | * Each record of the csv file is fed to the card function to generate each card. The loop is done via the [*datatool*](https://ctan.org/pkg/datatool) package and runs until the end of the csv file. To compile the tex file, it is detrimental that the very first line of the csv file matches the field keyword in the text file, and there are *exactly* two separators per record. 49 | 50 | ### Advanced/Miscellanea 51 | * By default, the comma-separated value files are unsurprisingly separated by commas. The default behaviour is somehow annoying since one'd want to add commas in their cards. 52 | To edit this behaviour, you need to change your separating commas to a different character (_e.g._ the much-criticized/maligned/berated semicolons **";"**) in each of your csv file (don't forget the headers! *e.g.* if you like semicolons: *QA;Picture;Text*) and then add `\DTLsetseparator{;}` to your LaTeX code before `\DTLloaddb`. Spreadsheet programs can help you to add different separators between cells (LibreOffice asks which one when you save a spreadsheet in a csv file). 53 | * Dimensions can be customize according to the number of cards you want per page and their size. Note that horizontal and vertical distances from the borders, as well as textwidth of text box inside the card, should be set manually if any of the page sizes are changed. An automatic tuning is To Be Implemented. 54 | 55 | ## Closing remarks 56 | 57 | ### Improvements 58 | * Picture background transparency. If picture is *None*, do not print a picture at all. 59 | * Automatically choose either *draw* or *pick* according to the number of blank spaces in the black cards. The solution allows for third argument as optional pictures in the card. The only limit is your imagination. 60 | * *\hoffset* and *\voffset* distances from the border of tickets set automatically. 61 | * *\parbox* width of ticket text set automatically. 62 | * Automatic update examples (*e.g.* run pdflatex to update the pdf) when new commit is pushed. 63 | 64 | ### Author 65 | * **Roberto Amabile** \[[ramabile](https://github.com/ramabile/)\] - *Main-levolent contributor*. 66 | 67 | ### Acknowledgments 68 | * [Cards Against Humanity](https://www.cardsagainsthumanity.com/) 69 | * **Ilario Gelmetti** \[[ilario](https://github.com/ilario)\] for the [inspiration](https://github.com/ilario/Cards-Against-Humanity-ITA) and part of the underscore solution in the *tex* file. 70 | * **Johannes P. Dürholt** \[[jduerholt](https://github.com/jduerholt)\] for the inspiration of using [*ticket*](https://ctan.org/pkg/ticket) and [*datatool*](https://ctan.org/pkg/datatool) LaTeX packages. 71 | * **Donald Kuhn**, TeX, its community. 72 | * **Leslie Lamport**, LaTeX, its community. 73 | * GNU/Linux and the FLOSS community in its broadest sense. 74 | * Creative Commons and the free art community in its broadest sense. 75 | * The other authors of packages and programs I use. 76 | * **Billie Thompson** \[[PurpleBooth](https://github.com/PurpleBooth)\] and other contributors for [the template of this README.md](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2#file-readme-template-md). 77 | * **Michael Mroczek** \[[michaelmroczek](https://unsplash.com/@michaelmroczek)\] for the [photo of the table](https://unsplash.com/photos/xVKEZ9wVIYM?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText). 78 | * What the fuck. 79 | * My long-running misanthropic friends. 80 | * The maieutics. 81 | * The scientific materialism. 82 | * Bernard Mandeville is dead. [Long life to zombie Mandeville](https://en.wikipedia.org/wiki/The_Fable_of_the_Bees). 83 | * The auto-hetero-directed troll inside me, getting out of my hands. 84 | 85 | ### Licensing 86 | This work is licensed under [WTFNMFPL-1.0](http://www.adversary.org/wp/2013/10/14/do-what-the-fuck-you-want-but-its-not-my-fault/). Full text of the licence can be found also [here](https://github.com/ramabile/latex-against-humanity/blob/master/LICENSE.txt). If you are illiterate [there is a summary with colorful symbols](https://tldrlegal.com/license/do-what-the-fuck-you-want-to-but-it%27s-not-my-fault-public-license-v1-(wtfnmfpl-1.0)). 87 | Logo of Cards Against Humanity and its related concepts are [Creative Commons BY-NC-SA 2.0 license](https://creativecommons.org/licenses/by-nc-sa/2.0/). That means you can use, remix, and share the game for free, but you can't sell it without their permission. Please do not steal their name or they will smash you. 88 | -------------------------------------------------------------------------------- /tex/img/draw.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Creator: cairo 1.14.6 (http://cairographics.org) 3 | %%CreationDate: Fri Feb 23 14:27:49 2018 4 | %%Pages: 1 5 | %%DocumentData: Clean7Bit 6 | %%LanguageLevel: 2 7 | %%BoundingBox: 0 -1 48 34 8 | %%EndComments 9 | %%BeginProlog 10 | save 11 | 50 dict begin 12 | /q { gsave } bind def 13 | /Q { grestore } bind def 14 | /cm { 6 array astore concat } bind def 15 | /w { setlinewidth } bind def 16 | /J { setlinecap } bind def 17 | /j { setlinejoin } bind def 18 | /M { setmiterlimit } bind def 19 | /d { setdash } bind def 20 | /m { moveto } bind def 21 | /l { lineto } bind def 22 | /c { curveto } bind def 23 | /h { closepath } bind def 24 | /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 25 | 0 exch rlineto 0 rlineto closepath } bind def 26 | /S { stroke } bind def 27 | /f { fill } bind def 28 | /f* { eofill } bind def 29 | /n { newpath } bind def 30 | /W { clip } bind def 31 | /W* { eoclip } bind def 32 | /BT { } bind def 33 | /ET { } bind def 34 | /pdfmark where { pop globaldict /?pdfmark /exec load put } 35 | { globaldict begin /?pdfmark /pop load def /pdfmark 36 | /cleartomark load def end } ifelse 37 | /BDC { mark 3 1 roll /BDC pdfmark } bind def 38 | /EMC { mark /EMC pdfmark } bind def 39 | /cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 40 | /Tj { show currentpoint cairo_store_point } bind def 41 | /TJ { 42 | { 43 | dup 44 | type /stringtype eq 45 | { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 46 | } forall 47 | currentpoint cairo_store_point 48 | } bind def 49 | /cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 50 | cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 51 | /Tf { pop /cairo_font exch def /cairo_font_matrix where 52 | { pop cairo_selectfont } if } bind def 53 | /Td { matrix translate cairo_font_matrix matrix concatmatrix dup 54 | /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 55 | /cairo_font where { pop cairo_selectfont } if } bind def 56 | /Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 57 | cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 58 | /g { setgray } bind def 59 | /rg { setrgbcolor } bind def 60 | /d1 { setcachedevice } bind def 61 | %%EndProlog 62 | %%BeginSetup 63 | %%EndSetup 64 | %%Page: 1 1 65 | %%BeginPageSetup 66 | %%PageBoundingBox: 0 -1 48 34 67 | %%EndPageSetup 68 | q 0 -1 48 35 rectclip q 69 | 0 g 70 | 0 33.582 47.242 -33.582 re f 71 | 1 g 72 | 39.898 0 m 43.953 0 47.242 3.286 47.242 7.34 c 47.242 11.395 43.953 14.68 73 | 39.898 14.68 c 35.844 14.68 32.559 11.395 32.559 7.34 c 32.559 3.286 35.844 74 | 0 39.898 0 c f 75 | 8.789 7.321 m 8.973 7.321 9.148 7.332 9.316 7.36 c 9.484 7.387 9.637 7.442 76 | 9.766 7.516 c 9.895 7.594 9.996 7.707 10.074 7.848 c 10.152 7.993 10.191 77 | 8.176 10.191 8.407 c 10.191 8.637 10.152 8.825 10.074 8.965 c 9.996 9.11 78 | 9.895 9.219 9.766 9.297 c 9.637 9.375 9.484 9.426 9.316 9.453 c 9.148 9.481 79 | 8.973 9.496 8.789 9.496 c 7.547 9.496 l 7.547 7.321 l h 80 | 9.227 10.739 m 9.68 10.739 10.066 10.672 10.387 10.539 c 10.703 10.407 81 | 10.965 10.231 11.164 10.016 c 11.363 9.797 11.512 9.551 11.602 9.27 c 11.691 82 | 8.993 11.738 8.707 11.738 8.407 c 11.738 8.118 11.691 7.828 11.602 7.551 83 | c 11.512 7.266 11.363 7.016 11.164 6.801 c 10.965 6.582 10.703 6.411 10.387 84 | 6.278 c 10.066 6.145 9.68 6.078 9.227 6.078 c 7.547 6.078 l 7.547 3.473 85 | l 5.949 3.473 l 5.949 10.739 l h 86 | 14.332 3.473 m 12.734 3.473 l 12.734 10.739 l 14.332 10.739 l h 87 | 20.395 8.801 m 20.301 8.95 20.18 9.086 20.039 9.2 c 19.895 9.317 19.73 88 | 9.407 19.555 9.469 c 19.375 9.536 19.184 9.567 18.988 9.567 c 18.629 9.567 89 | 18.324 9.496 18.074 9.356 c 17.824 9.219 17.617 9.032 17.465 8.801 c 17.309 90 | 8.567 17.195 8.301 17.125 8 c 17.051 7.703 17.016 7.395 17.016 7.075 c 91 | 17.016 6.77 17.051 6.473 17.125 6.184 c 17.195 5.899 17.309 5.637 17.465 92 | 5.407 c 17.617 5.176 17.824 4.993 18.074 4.852 c 18.324 4.715 18.629 4.645 93 | 18.988 4.645 c 19.477 4.645 19.859 4.793 20.137 5.09 c 20.41 5.391 20.578 94 | 5.782 20.637 6.274 c 22.184 6.274 l 22.141 5.817 22.039 5.407 21.867 5.039 95 | c 21.699 4.676 21.473 4.364 21.195 4.106 c 20.918 3.848 20.594 3.653 20.223 96 | 3.516 c 19.848 3.383 19.434 3.309 18.988 3.309 c 18.434 3.309 17.934 3.411 97 | 17.488 3.602 c 17.047 3.797 16.672 4.059 16.363 4.399 c 16.059 4.739 15.828 98 | 5.137 15.664 5.594 c 15.5 6.055 15.422 6.547 15.422 7.075 c 15.422 7.618 99 | 15.5 8.121 15.664 8.586 c 15.828 9.051 16.059 9.453 16.363 9.801 c 16.672 100 | 10.145 17.047 10.418 17.488 10.614 c 17.934 10.813 18.434 10.911 18.988 101 | 10.911 c 19.391 10.911 19.766 10.852 20.125 10.739 c 20.48 10.621 20.801 102 | 10.453 21.082 10.235 c 21.359 10.012 21.594 9.739 21.773 9.414 c 21.961 103 | 9.09 22.074 8.715 22.125 8.297 c 20.578 8.297 l 20.551 8.477 20.488 8.649 104 | 20.395 8.801 c 24.867 10.739 m 24.867 7.723 l 27.707 10.739 l 29.699 10.739 105 | l 26.859 7.868 l 29.973 3.473 l 27.969 3.473 l 25.781 6.739 l 24.867 5.813 106 | l 24.867 3.473 l 23.27 3.473 l 23.27 10.739 l f 107 | 0.137255 0.121569 0.12549 rg 108 | 39.789 8.246 m 40.023 8.262 40.242 8.317 40.449 8.399 c 40.652 8.489 40.82 109 | 8.61 40.953 8.774 c 41.082 8.938 41.148 9.157 41.148 9.426 c 41.148 9.836 110 | 41.012 10.149 40.742 10.368 c 40.469 10.586 40.156 10.696 39.801 10.696 111 | c 39.312 10.696 38.941 10.532 38.691 10.211 c 38.441 9.891 38.324 9.481 112 | 38.332 8.993 c 36.492 8.993 l 36.512 9.481 36.602 9.934 36.758 10.332 c 113 | 36.918 10.739 37.141 11.082 37.426 11.375 c 37.715 11.664 38.055 11.891 114 | 38.457 12.047 c 38.852 12.207 39.297 12.286 39.789 12.286 c 40.172 12.286 115 | 40.551 12.231 40.93 12.118 c 41.309 12.004 41.656 11.832 41.961 11.606 116 | c 42.266 11.379 42.512 11.102 42.699 10.778 c 42.891 10.45 42.984 10.075 117 | 42.984 9.645 c 42.984 9.184 42.875 8.774 42.652 8.422 c 42.43 8.067 42.098 118 | 7.828 41.652 7.7 c 41.652 7.672 l 42.18 7.559 42.594 7.301 42.891 6.911 119 | c 43.188 6.52 43.34 6.055 43.34 5.512 c 43.34 5.012 43.242 4.563 43.051 120 | 4.172 c 42.852 3.782 42.594 3.457 42.266 3.196 c 41.938 2.934 41.562 2.731 121 | 41.137 2.598 c 40.711 2.461 40.266 2.391 39.801 2.391 c 39.266 2.391 38.777 122 | 2.469 38.34 2.621 c 37.898 2.778 37.523 3 37.215 3.297 c 36.906 3.59 36.668 123 | 3.95 36.5 4.379 c 36.332 4.809 36.254 5.293 36.262 5.852 c 38.102 5.852 124 | l 38.109 5.598 38.148 5.352 38.223 5.121 c 38.297 4.891 38.398 4.688 38.535 125 | 4.52 c 38.672 4.352 38.844 4.223 39.047 4.118 c 39.25 4.02 39.492 3.973 126 | 39.773 3.973 c 40.211 3.973 40.578 4.102 40.875 4.371 c 41.176 4.641 41.324 127 | 5.004 41.324 5.469 c 41.324 5.832 41.258 6.11 41.113 6.297 c 40.973 6.489 128 | 40.797 6.625 40.578 6.711 c 40.359 6.801 40.121 6.852 39.863 6.864 c 39.602 129 | 6.875 39.355 6.887 39.121 6.887 c 39.121 8.246 l 39.332 8.227 39.555 8.227 130 | 39.789 8.246 c f 131 | 1 g 132 | 39.898 18.899 m 43.953 18.899 47.242 22.184 47.242 26.243 c 47.242 30.293 133 | 43.953 33.582 39.898 33.582 c 35.844 33.582 32.559 30.293 32.559 26.243 134 | c 32.559 22.184 35.844 18.899 39.898 18.899 c f 135 | 0.137255 0.121569 0.12549 rg 136 | 36.988 28.844 m 37.125 29.278 37.328 29.657 37.594 29.977 c 37.867 30.305 137 | 38.207 30.555 38.613 30.739 c 39.02 30.918 39.492 31.008 40.023 31.008 138 | c 40.426 31.008 40.812 30.95 41.18 30.825 c 41.547 30.696 41.867 30.512 139 | 42.145 30.278 c 42.426 30.039 42.645 29.75 42.809 29.407 c 42.973 29.059 140 | 43.055 28.672 43.055 28.243 c 43.055 27.793 42.984 27.411 42.84 27.09 c 141 | 42.699 26.774 42.508 26.489 42.273 26.239 c 42.035 25.989 41.766 25.766 142 | 41.469 25.563 c 41.172 25.364 40.871 25.161 40.566 24.961 c 40.262 24.766 143 | 39.969 24.551 39.68 24.325 c 39.395 24.094 39.141 23.828 38.926 23.532 144 | c 43.105 23.532 l 43.105 21.989 l 36.609 21.989 l 36.609 22.5 36.684 22.95 145 | 36.832 23.325 c 36.98 23.703 37.176 24.043 37.43 24.344 c 37.684 24.641 146 | 37.98 24.918 38.324 25.172 c 38.664 25.422 39.023 25.68 39.402 25.946 c 147 | 39.598 26.075 39.805 26.211 40.023 26.352 c 40.242 26.493 40.441 26.645 148 | 40.625 26.813 c 40.805 26.985 40.957 27.172 41.082 27.383 c 41.199 27.594 149 | 41.258 27.832 41.258 28.102 c 41.258 28.532 41.137 28.868 40.887 29.11 150 | c 40.641 29.348 40.32 29.469 39.934 29.469 c 39.672 29.469 39.453 29.407 151 | 39.27 29.286 c 39.09 29.161 38.945 29.004 38.836 28.805 c 38.723 28.61 152 | 38.648 28.387 38.602 28.149 c 38.555 27.907 38.531 27.668 38.531 27.434 153 | c 36.809 27.434 l 36.797 27.938 36.855 28.411 36.988 28.844 c f 154 | 1 g 155 | 3.004 23.684 m 3.234 23.684 3.457 23.719 3.672 23.793 c 3.891 23.871 4.082 156 | 23.996 4.25 24.164 c 4.418 24.336 4.551 24.559 4.652 24.836 c 4.754 25.114 157 | 4.805 25.453 4.805 25.848 c 4.805 26.211 4.77 26.539 4.699 26.836 c 4.629 158 | 27.129 4.512 27.379 4.352 27.586 c 4.188 27.797 3.977 27.957 3.707 28.071 159 | c 3.441 28.18 3.109 28.235 2.723 28.235 c 1.59 28.235 l 1.59 23.684 l h 160 | 3.113 29.571 m 3.582 29.571 4.016 29.496 4.414 29.348 c 4.816 29.203 5.164 161 | 28.977 5.457 28.68 c 5.75 28.383 5.98 28.012 6.145 27.567 c 6.312 27.121 162 | 6.395 26.602 6.395 26 c 6.395 25.473 6.324 24.989 6.191 24.543 c 6.055 163 | 24.098 5.852 23.715 5.578 23.391 c 5.305 23.067 4.965 22.813 4.559 22.625 164 | c 4.148 22.442 3.668 22.348 3.113 22.348 c 0 22.348 l 0 29.571 l h 165 | 10.621 26.301 m 10.984 26.301 11.258 26.383 11.438 26.547 c 11.621 26.707 166 | 11.715 26.973 11.715 27.336 c 11.715 27.684 11.621 27.942 11.438 28.098 167 | c 11.258 28.258 10.984 28.336 10.621 28.336 c 8.883 28.336 l 8.883 26.301 168 | l h 169 | 11.188 29.571 m 11.512 29.571 11.805 29.52 12.062 29.414 c 12.32 29.309 170 | 12.547 29.168 12.73 28.985 c 12.914 28.801 13.059 28.59 13.152 28.352 c 171 | 13.254 28.114 13.301 27.856 13.301 27.578 c 13.301 27.153 13.211 26.789 172 | 13.031 26.473 c 12.855 26.164 12.562 25.93 12.156 25.766 c 12.156 25.746 173 | l 12.355 25.696 12.516 25.614 12.645 25.496 c 12.773 25.387 12.875 25.254 174 | 12.957 25.106 c 13.039 24.953 13.098 24.789 13.137 24.606 c 13.172 24.422 175 | 13.195 24.243 13.211 24.059 c 13.219 23.946 13.227 23.809 13.23 23.653 176 | c 13.234 23.496 13.25 23.34 13.266 23.18 c 13.281 23.016 13.312 22.864 13.348 177 | 22.719 c 13.387 22.575 13.438 22.453 13.516 22.348 c 11.926 22.348 l 11.84 178 | 22.578 11.781 22.852 11.766 23.168 c 11.742 23.485 11.715 23.789 11.672 179 | 24.078 c 11.617 24.457 11.504 24.731 11.328 24.911 c 11.152 25.082 10.867 180 | 25.172 10.469 25.172 c 8.883 25.172 l 8.883 22.348 l 7.293 22.348 l 7.293 181 | 29.571 l h 182 | 18.895 25.141 m 17.984 27.789 l 17.965 27.789 l 17.023 25.141 l h 183 | 18.805 29.571 m 21.504 22.348 l 19.855 22.348 l 19.309 23.957 l 16.609 184 | 23.957 l 16.043 22.348 l 14.441 22.348 l 17.176 29.571 l h 185 | 26.984 22.348 m 25.762 27.266 l 25.742 27.266 l 24.539 22.348 l 22.93 22.348 186 | l 21.02 29.571 l 22.605 29.571 l 23.75 24.657 l 23.77 24.657 l 25.023 29.571 187 | l 26.512 29.571 l 27.742 24.594 l 27.766 24.594 l 28.945 29.571 l 30.508 188 | 29.571 l 28.562 22.348 l f 189 | Q Q 190 | showpage 191 | %%Trailer 192 | end restore 193 | %%EOF 194 | -------------------------------------------------------------------------------- /tex/img/draw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 63 | 68 | 70 | 75 | 80 | 85 | 86 | 88 | 93 | 98 | 103 | 104 | 105 | 106 | --------------------------------------------------------------------------------