[{"data":1,"prerenderedAt":3836},["ShallowReactive",2],{"navigation_docs":3,"-tables-and-graphics-pgf-tikz":351,"-tables-and-graphics-pgf-tikz-surround":3831},[4,31,45,83,109,147,197,215,253,291,329],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting Started","i-lucide-play","\u002Fgetting-started","01.getting-started",[10,14,18,22,26],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","01.getting-started\u002F01.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","01.getting-started\u002F02.installation",{"title":19,"path":20,"stem":21},"Installing Extra Packages","\u002Fgetting-started\u002Finstalling-extra-packages","01.getting-started\u002F03.installing-extra-packages",{"title":23,"path":24,"stem":25},"Basics","\u002Fgetting-started\u002Fbasics","01.getting-started\u002F04.basics",{"title":27,"path":28,"stem":29},"How to Get Help","\u002Fgetting-started\u002Fhow-to-get-help","01.getting-started\u002F05.how-to-get-help",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"AI Integration","i-lucide-bot","\u002Fai-integration","02.ai-integration",[37,41],{"title":38,"path":39,"stem":40},"Model Context Protocol (MCP)","\u002Fai-integration\u002Fmcp","02.ai-integration\u002F01.mcp",{"title":42,"path":43,"stem":44},"Agent Skills","\u002Fai-integration\u002Fskills","02.ai-integration\u002F02.skills",{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":30},"Document Fundamentals","i-lucide-file-text","\u002Fdocument-fundamentals","03.document-fundamentals",[51,55,59,63,67,71,75,79],{"title":52,"path":53,"stem":54},"Document Structure","\u002Fdocument-fundamentals\u002Fdocument-structure","03.document-fundamentals\u002F01.document-structure",{"title":56,"path":57,"stem":58},"Text Formatting","\u002Fdocument-fundamentals\u002Ftext-formatting","03.document-fundamentals\u002F02.text-formatting",{"title":60,"path":61,"stem":62},"Paragraph Formatting","\u002Fdocument-fundamentals\u002Fparagraph-formatting","03.document-fundamentals\u002F03.paragraph-formatting",{"title":64,"path":65,"stem":66},"Fonts","\u002Fdocument-fundamentals\u002Ffonts","03.document-fundamentals\u002F04.fonts",{"title":68,"path":69,"stem":70},"Colors","\u002Fdocument-fundamentals\u002Fcolors","03.document-fundamentals\u002F05.colors",{"title":72,"path":73,"stem":74},"List Structures","\u002Fdocument-fundamentals\u002Flist-structures","03.document-fundamentals\u002F06.list-structures",{"title":76,"path":77,"stem":78},"Special Characters","\u002Fdocument-fundamentals\u002Fspecial-characters","03.document-fundamentals\u002F07.special-characters",{"title":80,"path":81,"stem":82},"Internationalization","\u002Fdocument-fundamentals\u002Finternationalization","03.document-fundamentals\u002F08.internationalization",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":30},"Page Design","i-lucide-layout","\u002Fpage-design","04.page-design",[89,93,97,101,105],{"title":90,"path":91,"stem":92},"Page Layout","\u002Fpage-design\u002Fpage-layout","04.page-design\u002F01.page-layout",{"title":94,"path":95,"stem":96},"Page Headers and Footers","\u002Fpage-design\u002Fcustomizing-page-headers-and-footers","04.page-design\u002F02.customizing-page-headers-and-footers",{"title":98,"path":99,"stem":100},"Title Creation","\u002Fpage-design\u002Ftitle-creation","04.page-design\u002F03.title-creation",{"title":102,"path":103,"stem":104},"Footnotes and Margin Notes","\u002Fpage-design\u002Ffootnotes-and-margin-notes","04.page-design\u002F04.footnotes-and-margin-notes",{"title":106,"path":107,"stem":108},"Rotations","\u002Fpage-design\u002Frotations","04.page-design\u002F05.rotations",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":30},"Tables and Graphics","i-lucide-table","\u002Ftables-and-graphics","05.tables-and-graphics",[115,119,123,127,131,135,139,143],{"title":116,"path":117,"stem":118},"Tables","\u002Ftables-and-graphics\u002Ftables","05.tables-and-graphics\u002F01.tables",{"title":120,"path":121,"stem":122},"Floats, Figures and Captions","\u002Ftables-and-graphics\u002Ffloats-figures-and-captions","05.tables-and-graphics\u002F02.floats-figures-and-captions",{"title":124,"path":125,"stem":126},"Importing Graphics","\u002Ftables-and-graphics\u002Fimporting-graphics","05.tables-and-graphics\u002F03.importing-graphics",{"title":128,"path":129,"stem":130},"Introducing Procedural Graphics","\u002Ftables-and-graphics\u002Fintroducing-procedural-graphics","05.tables-and-graphics\u002F04.introducing-procedural-graphics",{"title":132,"path":133,"stem":134},"PGF\u002FTikZ","\u002Ftables-and-graphics\u002Fpgf-tikz","05.tables-and-graphics\u002F05.pgf-tikz",{"title":136,"path":137,"stem":138},"PSTricks","\u002Ftables-and-graphics\u002Fpstricks","05.tables-and-graphics\u002F06.pstricks",{"title":140,"path":141,"stem":142},"MetaPost","\u002Ftables-and-graphics\u002Fmetapost","05.tables-and-graphics\u002F07.metapost",{"title":144,"path":145,"stem":146},"Picture","\u002Ftables-and-graphics\u002Fpicture","05.tables-and-graphics\u002F08.picture",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":30},"Technical Writing","i-lucide-flask-conical","\u002Ftechnical-writing","06.technical-writing",[153,157,161,165,169,173,177,181,185,189,193],{"title":154,"path":155,"stem":156},"Mathematics","\u002Ftechnical-writing\u002Fmathematics","06.technical-writing\u002F01.mathematics",{"title":158,"path":159,"stem":160},"Advanced Mathematics","\u002Ftechnical-writing\u002Fadvanced-mathematics","06.technical-writing\u002F02.advanced-mathematics",{"title":162,"path":163,"stem":164},"Theorems","\u002Ftechnical-writing\u002Ftheorems","06.technical-writing\u002F03.theorems",{"title":166,"path":167,"stem":168},"Algorithms","\u002Ftechnical-writing\u002Falgorithms","06.technical-writing\u002F04.algorithms",{"title":170,"path":171,"stem":172},"Source Code Listings","\u002Ftechnical-writing\u002Fsource-code-listings","06.technical-writing\u002F05.source-code-listings",{"title":174,"path":175,"stem":176},"Chemical Graphics","\u002Ftechnical-writing\u002Fchemical-graphics","06.technical-writing\u002F06.chemical-graphics",{"title":178,"path":179,"stem":180},"Linguistics","\u002Ftechnical-writing\u002Flinguistics","06.technical-writing\u002F07.linguistics",{"title":182,"path":183,"stem":184},"Bibliography Management","\u002Ftechnical-writing\u002Fbibliography-management","06.technical-writing\u002F08.bibliography-management",{"title":186,"path":187,"stem":188},"More Bibliographies","\u002Ftechnical-writing\u002Fmore-bibliographies","06.technical-writing\u002F09.more-bibliographies",{"title":190,"path":191,"stem":192},"Indexing","\u002Ftechnical-writing\u002Findices","06.technical-writing\u002F10.indices",{"title":194,"path":195,"stem":196},"Glossary","\u002Ftechnical-writing\u002Fglossary","06.technical-writing\u002F11.glossary",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":30},"Cross-References and Links","i-lucide-link","\u002Fcross-references","07.cross-references",[203,207,211],{"title":204,"path":205,"stem":206},"Labels and Cross Referencing","\u002Fcross-references\u002Flabels-and-cross-referencing","07.cross-references\u002F01.labels-and-cross-referencing",{"title":208,"path":209,"stem":210},"Hyperlinks","\u002Fcross-references\u002Fhyperlinks","07.cross-references\u002F02.hyperlinks",{"title":212,"path":213,"stem":214},"Initials","\u002Fcross-references\u002Finitials","07.cross-references\u002F03.initials",{"title":216,"icon":217,"path":218,"stem":219,"children":220,"page":30},"Specialized Documents","i-lucide-file-badge","\u002Fspecialized-documents","08.specialized-documents",[221,225,229,233,237,241,245,249],{"title":222,"path":223,"stem":224},"Scientific Reports","\u002Fspecialized-documents\u002Fscientific-reports","08.specialized-documents\u002F01.scientific-reports",{"title":226,"path":227,"stem":228},"Letters","\u002Fspecialized-documents\u002Fletters","08.specialized-documents\u002F02.letters",{"title":230,"path":231,"stem":232},"Presentations","\u002Fspecialized-documents\u002Fpresentations","08.specialized-documents\u002F03.presentations",{"title":234,"path":235,"stem":236},"Teacher's Corner","\u002Fspecialized-documents\u002Fteachers-corner","08.specialized-documents\u002F04.teachers-corner",{"title":238,"path":239,"stem":240},"Curriculum Vitae","\u002Fspecialized-documents\u002Fcurriculum-vitae","08.specialized-documents\u002F05.curriculum-vitae",{"title":242,"path":243,"stem":244},"Academic Journals","\u002Fspecialized-documents\u002Facademic-journals","08.specialized-documents\u002F06.academic-journals",{"title":246,"path":247,"stem":248},"Xy-pic","\u002Fspecialized-documents\u002Fxy-pic","08.specialized-documents\u002F07.xy-pic",{"title":250,"path":251,"stem":252},"Creating 3D Graphics","\u002Fspecialized-documents\u002Fcreating-3d-graphics","08.specialized-documents\u002F08.creating-3d-graphics",{"title":254,"icon":255,"path":256,"stem":257,"children":258,"page":30},"Programming LaTeX","i-lucide-code","\u002Fprogramming","09.programming",[259,263,267,271,275,279,283,287],{"title":260,"path":261,"stem":262},"Macros","\u002Fprogramming\u002Fmacros","09.programming\u002F01.macros",{"title":264,"path":265,"stem":266},"Plain TeX","\u002Fprogramming\u002Fplain-tex","09.programming\u002F02.plain-tex",{"title":268,"path":269,"stem":270},"Creating Packages","\u002Fprogramming\u002Fcreating-packages","09.programming\u002F03.creating-packages",{"title":272,"path":273,"stem":274},"Creating Package Documentation","\u002Fprogramming\u002Fcreating-package-documentation","09.programming\u002F04.creating-package-documentation",{"title":276,"path":277,"stem":278},"Themes","\u002Fprogramming\u002Fthemes","09.programming\u002F05.themes",{"title":280,"path":281,"stem":282},"Modular Documents","\u002Fprogramming\u002Fmodular-documents","09.programming\u002F06.modular-documents",{"title":284,"path":285,"stem":286},"Collaborative Writing of LaTeX Documents","\u002Fprogramming\u002Fcollaborative-writing","09.programming\u002F07.collaborative-writing",{"title":288,"path":289,"stem":290},"Export To Other Formats","\u002Fprogramming\u002Fexport-to-other-formats","09.programming\u002F08.export-to-other-formats",{"title":292,"icon":293,"path":294,"stem":295,"children":296,"page":30},"Reference and Help","i-lucide-book-open","\u002Freference","10.reference",[297,301,305,309,313,317,321,325],{"title":298,"path":299,"stem":300},"FAQ","\u002Freference\u002Ffaq","10.reference\u002F01.faq",{"title":302,"path":303,"stem":304},"Tips and Tricks","\u002Freference\u002Ftips-and-tricks","10.reference\u002F02.tips-and-tricks",{"title":306,"path":307,"stem":308},"Errors and Warnings","\u002Freference\u002Ferrors-and-warnings","10.reference\u002F03.errors-and-warnings",{"title":310,"path":311,"stem":312},"Lengths","\u002Freference\u002Flengths","10.reference\u002F04.lengths",{"title":314,"path":315,"stem":316},"Counters","\u002Freference\u002Fcounters","10.reference\u002F05.counters",{"title":318,"path":319,"stem":320},"Boxes","\u002Freference\u002Fboxes","10.reference\u002F06.boxes",{"title":322,"path":323,"stem":324},"Rules and Struts","\u002Freference\u002Frules-and-struts","10.reference\u002F07.rules-and-struts",{"title":326,"path":327,"stem":328},"Command Glossary","\u002Freference\u002Fcommand-glossary","10.reference\u002F08.command-glossary",{"title":330,"icon":331,"path":332,"stem":333,"children":334,"page":30},"Appendices","i-lucide-bookmark","\u002Fappendices","11.appendices",[335,339,343,347],{"title":336,"path":337,"stem":338},"Package Reference","\u002Fappendices\u002Fpackage-reference","11.appendices\u002F01.package-reference",{"title":340,"path":341,"stem":342},"Sample LaTeX Documents","\u002Fappendices\u002Fsample-latex-documents","11.appendices\u002F02.sample-latex-documents",{"title":344,"path":345,"stem":346},"Links","\u002Fappendices\u002Flinks","11.appendices\u002F03.links",{"title":348,"path":349,"stem":350},"Authors","\u002Fappendices\u002Fauthors","11.appendices\u002F04.authors",{"id":352,"title":132,"body":353,"description":3825,"extension":3826,"links":3827,"meta":3828,"navigation":2701,"path":133,"seo":3829,"stem":134,"__hash__":3830},"docs\u002F05.tables-and-graphics\u002F05.pgf-tikz.md",{"type":354,"value":355,"toc":3784},"minimark",[356,365,388,405,418,423,429,446,449,458,461,470,473,713,717,720,731,740,747,756,777,780,789,792,801,805,808,858,861,872,877,896,899,920,924,927,936,939,944,968,1018,1046,1050,1072,1076,1089,1092,1125,1128,1131,1135,1170,1174,1192,1196,1231,1241,1245,1248,1252,1257,1266,1275,1284,1289,1298,1303,1312,1315,1324,1328,1337,1352,1373,1393,1396,1400,1407,1416,1428,1463,1474,1494,1497,1512,1537,1562,1566,1569,1578,1581,1601,1604,1733,1743,1750,1770,1777,1781,1784,1787,1795,1825,1828,1857,1866,1881,1884,2068,2071,2074,2104,2128,2135,2150,2196,2202,2205,2220,2234,2254,2257,2276,2279,2304,2307,2337,2347,2353,2356,2386,2390,2393,2416,2420,2424,2427,2461,2464,2491,2495,2498,2549,2553,2559,2574,2578,2581,2624,2627,2649,2653,2656,2664,2667,2756,2760,2767,2854,2858,2861,2940,2943,2990,2994,3000,3007,3037,3044,3099,3106,3164,3168,3171,3221,3224,3257,3261,3276,3285,3295,3298,3344,3347,3433,3437,3440,3449,3452,3454,3470,3473,3503,3507,3511,3553,3557,3649,3653,3698,3702,3762,3766,3780],[357,358,359,360,364],"p",{},"One way to draw graphics directly with TeX commands is PGF\u002FTikZ. Ti",[361,362,363],"em",{},"k","Z can produce portable graphics in both PDF and PostScript formats using either plain (pdf)TEX, (pdf)Latex or ConTEXt. It comes with very good documentation and an extensive collection of examples.",[357,366,367,368,370,371,373,374,377,378,380,381,384,385,387],{},"PGF (\"portable graphics format\") is the basic layer, providing a set of basic commands for producing graphics, and Ti",[361,369,363],{},"Z (\"Ti",[361,372,363],{},"Z ist ",[361,375,376],{},"kein"," Zeichenprogramm\" or \"Ti",[361,379,363],{},"Z is ",[361,382,383],{},"not"," a Drawing program\") is the frontend layer with a special syntax, making the use of PGF easier. Ti",[361,386,363],{},"Z commands are prevalently similar to Metafont, the option mechanism is similar to PsTricks syntax.",[357,389,390,391,394,395,397,398,401,402,404],{},"While the previous systems (picture, epic, pstricks or metapost) focus on the ",[361,392,393],{},"how"," to draw, Ti",[361,396,363],{},"Z focuses more on the ",[361,399,400],{},"what"," to draw. One could say that Ti",[361,403,363],{},"Z is to picture as LaTeX is to TeX. It's recommended to use it if your LaTeX distribution includes it.",[357,406,407,408,410,411],{},"Other packages building on top of Ti",[361,409,363],{},"Z (e.g., for drawing electrical circuits) can be found at ",[412,413,417],"a",{"href":414,"rel":415},"https:\u002F\u002Fwww.ctan.org\u002Ftopic\u002Fpgf-tikz",[416],"nofollow","CTAN",[419,420,422],"h2",{"id":421},"loading-package-libraries-tikzpicture-environment","Loading package, libraries - tikzpicture environment",[357,424,425,426,428],{},"Using Ti",[361,427,363],{},"Z in a LaTeX document requires the tikz package which can be loaded by adding following command in preamble of latex document:",[430,431,436],"pre",{"className":432,"code":433,"language":434,"meta":435,"style":435},"language-latex shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\\usepackage{tikz}                    % in preamble\n","latex","",[437,438,439],"code",{"__ignoreMap":435},[440,441,444],"span",{"class":442,"line":443},"line",1,[440,445,433],{},[357,447,448],{},"This will provide basic functionalities, and also load the pgf package automatically. For special features special libraries must be included. It requires following in the preamble part of the code.",[430,450,452],{"className":432,"code":451,"language":434,"meta":435,"style":435},"\\usetikzlibrary{⟨list of libraries separated by commas⟩}   % general syntax, in preamble\n",[437,453,454],{"__ignoreMap":435},[440,455,456],{"class":442,"line":443},[440,457,451],{},[357,459,460],{},"For example",[430,462,464],{"className":432,"code":463,"language":434,"meta":435,"style":435},"\\usetikzlibrary{arrow,pattern, snakes}               % in preamble\n",[437,465,466],{"__ignoreMap":435},[440,467,468],{"class":442,"line":443},[440,469,463],{},[357,471,472],{},"A list of common libraries is following:",[474,475,476,489],"table",{},[477,478,479],"thead",{},[480,481,482,486],"tr",{},[483,484,485],"th",{},"Library Name",[483,487,488],{},"Description",[490,491,492,503,513,523,533,543,553,563,573,583,593,603,613,623,633,643,653,663,673,683,693,703],"tbody",{},[480,493,494,500],{},[495,496,497],"td",{},[437,498,499],{},"\\usetikzlibrary{arrows.meta}",[495,501,502],{},"Arrow library that provides different types of arrow tips",[480,504,505,510],{},[495,506,507],{},[437,508,509],{},"\\usetikzlibrary{automata}",[495,511,512],{},"Automata Drawing Library that is used for drawing the finite state automata and Turing Machines",[480,514,515,520],{},[495,516,517],{},[437,518,519],{},"\\usetikzlibrary{backgrounds}",[495,521,522],{},"Background Library that \"defines background for pictures\"",[480,524,525,530],{},[495,526,527],{},[437,528,529],{},"\\usetikzlibrary{calc}",[495,531,532],{},"Library to make complex coordinate calculations",[480,534,535,540],{},[495,536,537],{},[437,538,539],{},"\\usetikzlibrary{calendar}",[495,541,542],{},"This library is used to display calendars",[480,544,545,550],{},[495,546,547],{},[437,548,549],{},"\\usetikzlibrary{chains}",[495,551,552],{},"Chain library to align nodes or chains",[480,554,555,560],{},[495,556,557],{},[437,558,559],{},"\\usetikzlibrary{decorations}",[495,561,562],{},"Decorations libraries to decorate paths",[480,564,565,570],{},[495,566,567],{},[437,568,569],{},"\\usetikzlibrary{er}",[495,571,572],{},"Entity Relationship Diagram Library",[480,574,575,580],{},[495,576,577],{},[437,578,579],{},"\\usetikzlibrary{intersections}",[495,581,582],{},"to calculate intersections of paths",[480,584,585,590],{},[495,586,587],{},[437,588,589],{},"\\usetikzlibrary{matrix}",[495,591,592],{},"Matrix Library that places each item as a node in same way as in a matrix",[480,594,595,600],{},[495,596,597],{},[437,598,599],{},"\\usetikzlibrary{fadings}",[495,601,602],{},"Allows for fading shapes in specified patterns",[480,604,605,610],{},[495,606,607],{},[437,608,609],{},"\\usetikzlibrary{folding}",[495,611,612],{},"Paper folding library",[480,614,615,620],{},[495,616,617],{},[437,618,619],{},"\\usetikzlibrary{patterns}",[495,621,622],{},"It provides different patterns for filling in area",[480,624,625,630],{},[495,626,627],{},[437,628,629],{},"\\usetikzlibrary{petrinet}",[495,631,632],{},"It is used to draw Petri Nets, as used for mathematical modelling",[480,634,635,640],{},[495,636,637],{},[437,638,639],{},"\\usetikzlibrary{shapes.geometric}",[495,641,642],{},"It can help in drawing different types of shapes e.g., a polygon of n sides",[480,644,645,650],{},[495,646,647],{},[437,648,649],{},"\\usetikzlibrary{shapes.misc}",[495,651,652],{},"Miscellaneous shapes",[480,654,655,660],{},[495,656,657],{},[437,658,659],{},"\\usetikzlibrary{shadings}",[495,661,662],{},"Allows for a number of shading macros and patterns to be applied to any shape",[480,664,665,670],{},[495,666,667],{},[437,668,669],{},"\\usetikzlibrary{shadows}",[495,671,672],{},"Defines styles that help by adding (partly)transparent shadows to paths and\u002For nodes",[480,674,675,680],{},[495,676,677],{},[437,678,679],{},"\\usetikzlibrary{snakes}",[495,681,682],{},"It helps in drawing curves like- snake, spring, expanding wave, etc",[480,684,685,690],{},[495,686,687],{},[437,688,689],{},"\\usetikzlibrary{spy}",[495,691,692],{},"Allows for magnifying of chosen segments of previously defined patterns and shapes",[480,694,695,700],{},[495,696,697],{},[437,698,699],{},"\\usetikzlibrary{trees}",[495,701,702],{},"Each point on the tree is defined as a node, with children, and each child can have its own children",[480,704,705,710],{},[495,706,707],{},[437,708,709],{},"\\usetikzlibrary{mindmap}",[495,711,712],{},"Mind map library to show parent-child type relation in a more creative way",[419,714,716],{"id":715},"tikz-environment","Tikz environment",[357,718,719],{},"The figures are drawn in the main body part the Tex document. There are two ways to use it:",[721,722,723],"ol",{},[724,725,726,730],"li",{},[727,728,729],"strong",{},"Inline Mode",": Which should be used when you want to draw inline with text.",[430,732,734],{"className":432,"code":733,"language":434,"meta":435,"style":435},"\\tikz[⟨options⟩]{⟨tikz commands⟩}\n",[437,735,736],{"__ignoreMap":435},[440,737,738],{"class":442,"line":443},[440,739,733],{},[357,741,742,743,746],{},"One special option for this case is ",[437,744,745],{},"baseline = \u003Cdimension>",". Without that option the lower end of the picture is put on the baseline of the surrounding text. Using this option, you can specify that the picture should be raised or lowered such that the height ⟨dimension⟩ is on the baseline.",[721,748,750],{"start":749},2,[724,751,752,755],{},[727,753,754],{},"Tikzpicture environment",": The drawing commands have to be enclosed in an \"tikzpicture\" environment",[430,757,759],{"className":432,"code":758,"language":434,"meta":435,"style":435},"\\begin{tikzpicture}[⟨options⟩] \n  ⟨tikz commands⟩\n\\end{tikzpicture}\n",[437,760,761,766,771],{"__ignoreMap":435},[440,762,763],{"class":442,"line":443},[440,764,765],{},"\\begin{tikzpicture}[⟨options⟩] \n",[440,767,768],{"class":442,"line":749},[440,769,770],{},"  ⟨tikz commands⟩\n",[440,772,774],{"class":442,"line":773},3,[440,775,776],{},"\\end{tikzpicture}\n",[357,778,779],{},"The entire figure can be scaled using the",[430,781,783],{"className":432,"code":782,"language":434,"meta":435,"style":435},"scale=⟨factor⟩\n",[437,784,785],{"__ignoreMap":435},[440,786,787],{"class":442,"line":443},[440,788,782],{},[357,790,791],{},"or different for height and width, e.g:",[430,793,795],{"className":432,"code":794,"language":434,"meta":435,"style":435},"xscale=2.5, yscale=0.5\n",[437,796,797],{"__ignoreMap":435},[440,798,799],{"class":442,"line":443},[440,800,794],{},[419,802,804],{"id":803},"specifying-coordinates","Specifying coordinates",[357,806,807],{},"Coordinates are specified in round brackets in an arbitrary TEX dimension either using Cartesian coordinates (comma separated), e.g. 1cm in the x direction and 2pt in the y direction",[474,809,810,823],{},[477,811,812],{},[480,813,814,817,820],{},[483,815,816],{},"Coordinate type",[483,818,819],{},"Syntax",[483,821,822],{},"Example",[490,824,825,836,847],{},[480,826,827,830,833],{},[495,828,829],{},"Cartesian",[495,831,832],{},"(x,y)",[495,834,835],{},"(1cm,2pt)",[480,837,838,841,844],{},[495,839,840],{},"Polar",[495,842,843],{},"(theta:radius)",[495,845,846],{},"(30:1cm)",[480,848,849,852,855],{},[495,850,851],{},"Relative to last position",[495,853,854],{},"++(x,y)",[495,856,857],{},"++(2cm,2cm)",[357,859,860],{},"In the first row of table the Cartesian coordinates (comma separated) are shown. In the second row the polar coordinates (colon separated), e.g. 1cm in 30 degree direction.",[357,862,863,864,867,868,871],{},"Relative coordinates to the previous given point are given by adding one or two plus signs in front of the coordinate. With \"",[437,865,866],{},"++","\" the last point of the path becomes the current position, with \"",[437,869,870],{},"+","\" the previous point stays the current path position. Example: 2 standard units to the right of the last point used:",[357,873,874],{},[727,875,876],{},"Note:",[721,878,879,890,893],{},[724,880,881,882,885,886,889],{},"Without specifying a unit ",[437,883,884],{},"(1,2)",", the standard one is cm ",[437,887,888],{},"(1cm,2cm)",".",[724,891,892],{},"The positive x and y directions refer to right and up on a diagram respectively.",[724,894,895],{},"The angle are measured from x axis and positive for a counter-clockwise direction. This means 0 degrees pointing directly right and 90 degree point up.",[357,897,898],{},"The coordinates can be associated with a name, e.g. A= (2,3), in many ways as stated following:",[721,900,901,907,914],{},[724,902,903,904],{},"When we know exact coordinates values for a point, then following command can be used. ",[437,905,906],{},"\\coordinate (A) at (2,3);",[724,908,909,910,913],{},"When a point is specified with respect to some other point one should use the path command. ",[437,911,912],{},"\\path (A) ++(45:2) coordinate (B);",". The command says- start from coordinate A, move along 45 degree direction for 2cm, and this final location coordinate should be assigned to B.",[724,915,916,917],{},"To define the coordinates and place a text as well use the node command. ",[437,918,919],{},"\\node (A) at (90:0) {Coordinate Name}",[419,921,923],{"id":922},"syntax-for-paths","Syntax for paths",[357,925,926],{},"A path is a series of straight and curved line segments (in a simplified explanation). The instruction has to end with a semicolon.",[430,928,930],{"className":432,"code":929,"language":434,"meta":435,"style":435},"\\path[\u003Coptions>]⟨specification⟩;\n",[437,931,932],{"__ignoreMap":435},[440,933,934],{"class":442,"line":443},[440,935,929],{},[357,937,938],{},"One instruction can spread over several lines, or several instructions can be put on one line.",[940,941,943],"h3",{"id":942},"path-actions","Path actions",[357,945,946,947,950,951,950,954,950,957,950,960,963,964,967],{},"Options for path actions are e.g: \"",[437,948,949],{},"draw","\", \"",[437,952,953],{},"fill",[437,955,956],{},"pattern",[437,958,959],{},"shade",[437,961,962],{},"clip","\" , \"",[437,965,966],{},"use as bounding box","\". These may be used as following",[430,969,971],{"className":432,"code":970,"language":434,"meta":435,"style":435},"\\path[draw]             % Draw the line\u002Fcurve \n\\path[fill]             % Fill the area under the curve\n\\path[fill,draw]        % Fill as well as draw the lines (borders)\n\\path[pattern]          % \n\\path[shade]            % a variation on filling that changes colors smoothly from one to another\n\\path[shade,draw]       % shade as well as draw \n\\path[clip]             % all subsequent drawings up to the end of the current scope are clipped against the current path and the size of subsequent paths will not be important for the picture size \n\\path[use as bounding box]\n",[437,972,973,978,983,988,994,1000,1006,1012],{"__ignoreMap":435},[440,974,975],{"class":442,"line":443},[440,976,977],{},"\\path[draw]             % Draw the line\u002Fcurve \n",[440,979,980],{"class":442,"line":749},[440,981,982],{},"\\path[fill]             % Fill the area under the curve\n",[440,984,985],{"class":442,"line":773},[440,986,987],{},"\\path[fill,draw]        % Fill as well as draw the lines (borders)\n",[440,989,991],{"class":442,"line":990},4,[440,992,993],{},"\\path[pattern]          % \n",[440,995,997],{"class":442,"line":996},5,[440,998,999],{},"\\path[shade]            % a variation on filling that changes colors smoothly from one to another\n",[440,1001,1003],{"class":442,"line":1002},6,[440,1004,1005],{},"\\path[shade,draw]       % shade as well as draw \n",[440,1007,1009],{"class":442,"line":1008},7,[440,1010,1011],{},"\\path[clip]             % all subsequent drawings up to the end of the current scope are clipped against the current path and the size of subsequent paths will not be important for the picture size \n",[440,1013,1015],{"class":442,"line":1014},8,[440,1016,1017],{},"\\path[use as bounding box]\n",[357,1019,1020,1021,950,1024,950,1027,950,1030,950,1033,950,1036,950,1039,950,1042,1045],{},"Above command can also be written equivalently as \"",[437,1022,1023],{},"\\draw",[437,1025,1026],{},"\\fill",[437,1028,1029],{},"\\filldraw",[437,1031,1032],{},"\\pattern",[437,1034,1035],{},"\\shade",[437,1037,1038],{},"\\shadedraw",[437,1040,1041],{},"\\clip",[437,1043,1044],{},"\\useasboundingbox","\" . These commands are explained in details in subsequent section.",[940,1047,1049],{"id":1048},"geometric-path-actions","Geometric path actions",[357,1051,1052,1053,950,1056,950,1059,950,1062,950,1065,950,1068,1071],{},"Geometric path options: \"",[437,1054,1055],{},"rotate=\u003Cangle in degree>",[437,1057,1058],{},"xshift=\u003Clength>",[437,1060,1061],{},"yshift=\u003Clength>",[437,1063,1064],{},"scale=\u003Cfactor>",[437,1066,1067],{},"xscale=\u003Cfactor>",[437,1069,1070],{},"yscale=\u003Cfactor>","\".",[940,1073,1075],{"id":1074},"color-and-opacity","Color and opacity",[357,1077,1078,1079,1082,1083,1085,1086,1088],{},"The most common way is to specify just the color name or \"",[437,1080,1081],{},"color=\u003Ccolor name>","\". In this case it will color the boarders\u002Farea according to the command (",[437,1084,1023],{},", ",[437,1087,1026],{},") used.",[357,1090,1091],{},"There can be different elements in a drawing so it may require specifying them separately for which one may use:",[1093,1094,1095,1104,1112,1120],"ul",{},[724,1096,1097,1098,950,1101,1097],{},"\"",[437,1099,1100],{},"draw=\u003Cline color>",[437,1102,1103],{},"draw opacity=\u003Cfactor>",[724,1105,1097,1106,950,1109,1097],{},[437,1107,1108],{},"fill=\u003Cfill color>",[437,1110,1111],{},"fill opacity=\u003Cfactor>",[724,1113,1097,1114,950,1117,1097],{},[437,1115,1116],{},"text=\u003Ctext color>",[437,1118,1119],{},"text opacity=\u003Cfactor>",[724,1121,1097,1122,1097],{},[437,1123,1124],{},"pattern color=\u003Ccolor>",[357,1126,1127],{},"Predefined colors: red, green, blue, cyan, magenta, yellow, black, gray, darkgray, lightgray, brown, lime, olive, orange, pink, purple, teal, violet and white.",[357,1129,1130],{},"The opacity factor values can be in range of 0 (=fully transparent) to 1 (=fully opaque).",[940,1132,1134],{"id":1133},"line-width","Line width",[357,1136,1137,1138,1141,1142,1145,1146,1149,1150,1153,1154,1157,1158,1161,1162,1165,1166,1169],{},"Line width options: \"",[437,1139,1140],{},"line width=\u003Cdimension>","\", and abbreviations \"",[437,1143,1144],{},"ultra thin","\" for 0.1pt, \"",[437,1147,1148],{},"very thin","\" for 0.2pt, \"",[437,1151,1152],{},"thin","\" for 0.4pt (the default width), \"",[437,1155,1156],{},"semithick","\" for 0.6pt, \"",[437,1159,1160],{},"thick","\" for 0.8pt, \"",[437,1163,1164],{},"very thick","\" for 1.2pt, \"",[437,1167,1168],{},"ultra thick","\" for 1.6pt.",[940,1171,1173],{"id":1172},"line-end","Line end",[357,1175,1176,1177,950,1180,950,1183,950,1186,950,1189,1071],{},"Line end, line join options: \"",[437,1178,1179],{},"line cap=\u003Ctype: round, rect, or butt>",[437,1181,1182],{},"arrows=\u003Cstart arrow kind>-\u003Cend arrow kind>",[437,1184,1185],{},"rounded corners",[437,1187,1188],{},"rounded corners=\u003Csize>",[437,1190,1191],{},"line join=\u003Ctype: round, bevel, or miter>",[940,1193,1195],{"id":1194},"line-pattern","Line pattern",[357,1197,1198,1199,1202,1203,1206,1207,950,1210,950,1213,950,1216,950,1219,950,1222,950,1225,950,1228,1071],{},"Line pattern options: \"",[437,1200,1201],{},"dash pattern=\u003Cdash pattern>","\" (e.g. \"",[437,1204,1205],{},"dash pattern=on 2pt off 3pt on 4pt off 4pt","\"), \"",[437,1208,1209],{},"dash phase=⟨dash phase⟩",[437,1211,1212],{},"solid",[437,1214,1215],{},"dashed",[437,1217,1218],{},"dotted",[437,1220,1221],{},"dashdotted",[437,1223,1224],{},"densely dotted",[437,1226,1227],{},"loosely dotted",[437,1229,1230],{},"double",[357,1232,1233,1234,950,1236,950,1239,1097],{},"Options for filling paths are e.g. \"",[437,1235,1108],{},[437,1237,1238],{},"pattern=\u003Cname>",[437,1240,1124],{},[419,1242,1244],{"id":1243},"the-draw-command","The \\draw command",[357,1246,1247],{},"The draw command can be used in several ways with different options. A few examples are provided as follows.",[940,1249,1251],{"id":1250},"drawing-straight-lines","Drawing straight lines",[721,1253,1254],{},[724,1255,1256],{},"Straight lines are given by coordinates separated by a double minus.",[430,1258,1260],{"className":432,"code":1259,"language":434,"meta":435,"style":435},"\\draw (1,0) -- (0,0) -- (0,1);\n",[437,1261,1262],{"__ignoreMap":435},[440,1263,1264],{"class":442,"line":443},[440,1265,1259],{},[721,1267,1268],{"start":749},[724,1269,1270,1271,1274],{},"A connected path can be closed using the \"",[437,1272,1273],{},"--cycle","\" option, which connects the last and first coordinate by a straight line.",[430,1276,1278],{"className":432,"code":1277,"language":434,"meta":435,"style":435},"\\draw (1,0) -- (0,0) -- (0,1) -- cycle;\n",[437,1279,1280],{"__ignoreMap":435},[440,1281,1282],{"class":442,"line":443},[440,1283,1277],{},[721,1285,1286],{"start":773},[724,1287,1288],{},"A further move-to operation in an existing path starts a new part of the path, which is not connected to the previous part of the path. Here: Move to (0,0) straight line to (2,0), move to (0,1) straight line to (2,1).",[430,1290,1292],{"className":432,"code":1291,"language":434,"meta":435,"style":435},"\\draw (0,0) -- (2,0) (0,1) -- (2,1);\n",[437,1293,1294],{"__ignoreMap":435},[440,1295,1296],{"class":442,"line":443},[440,1297,1291],{},[721,1299,1300],{"start":990},[724,1301,1302],{},"Two points can be connected by straight lines that are only horizontal and vertical. For a connection that is first horizontal and then vertical, use",[430,1304,1306],{"className":432,"code":1305,"language":434,"meta":435,"style":435},"\\draw (0,0) -| (1,1);\n",[437,1307,1308],{"__ignoreMap":435},[440,1309,1310],{"class":442,"line":443},[440,1311,1305],{},[357,1313,1314],{},"or first vertical then horizontal, use",[430,1316,1318],{"className":432,"code":1317,"language":434,"meta":435,"style":435},"\\draw (0,0) |- (1,1);\n",[437,1319,1320],{"__ignoreMap":435},[440,1321,1322],{"class":442,"line":443},[440,1323,1317],{},[940,1325,1327],{"id":1326},"drawing-curved-paths","Drawing curved paths",[721,1329,1330],{},[724,1331,1332,1333,1336],{},"Bezier curve can be drawn using the \"",[437,1334,1335],{},"..controls() ..()","\" command, with one or two control points.",[430,1338,1340],{"className":432,"code":1339,"language":434,"meta":435,"style":435},"\\draw (0,0) .. controls (1,1) .. (4,0)\n      (5,0) .. controls (6,0) and (6,1) .. (5,2);\n",[437,1341,1342,1347],{"__ignoreMap":435},[440,1343,1344],{"class":442,"line":443},[440,1345,1346],{},"\\draw (0,0) .. controls (1,1) .. (4,0)\n",[440,1348,1349],{"class":442,"line":749},[440,1350,1351],{},"      (5,0) .. controls (6,0) and (6,1) .. (5,2);\n",[721,1353,1354],{"start":749},[724,1355,1356,1357,1360,1361,1364,1365,1368,1369,1372],{},"User-defined paths can be created using the \"",[437,1358,1359],{},"to","\" operation. Without an option it corresponds to a straight line, exactly like the double minus command. Using the \"",[437,1362,1363],{},"out","\" and \"",[437,1366,1367],{},"in","\" option a curved path can be created. E.g. \"",[437,1370,1371],{},"[out=135,in=45]","\" causes the path to leave at an angle of 135 degree at the first coordinate and arrive at an angle of 45 degree at the second coordinate.",[430,1374,1376],{"className":432,"code":1375,"language":434,"meta":435,"style":435},"\\draw (0,0) to (3,2);\n\\draw (0,0) to[out=90,in=180] (3,2);\n\\draw (0,0) to[bend right] (3,2);\n",[437,1377,1378,1383,1388],{"__ignoreMap":435},[440,1379,1380],{"class":442,"line":443},[440,1381,1382],{},"\\draw (0,0) to (3,2);\n",[440,1384,1385],{"class":442,"line":749},[440,1386,1387],{},"\\draw (0,0) to[out=90,in=180] (3,2);\n",[440,1389,1390],{"class":442,"line":773},[440,1391,1392],{},"\\draw (0,0) to[bend right] (3,2);\n",[357,1394,1395],{},"(The syntax for a bend to the right may seem a little counter-intuitive. Think of it as an instruction to veer to the right at the beginning of the path and then smoothly curve to the end point, not as saying that the path curves to the right throughout its length.)",[940,1397,1399],{"id":1398},"draw-special-curves","Draw special curves:",[721,1401,1402],{},[724,1403,1404],{},[727,1405,1406],{},"Rectangle",[430,1408,1410],{"className":432,"code":1409,"language":434,"meta":435,"style":435},"\\draw (0,0) rectangle (2,3);\n",[437,1411,1412],{"__ignoreMap":435},[440,1413,1414],{"class":442,"line":443},[440,1415,1409],{},[721,1417,1418],{"start":749},[724,1419,1420,1423,1424,1427],{},[727,1421,1422],{},"Circle & Ellipses",": The command \"",[437,1425,1426],{},"circle","\" can be used to draw both circle and ellipses. For circle only radius is required, while for ellipse length of major axis and minor axis is required.",[430,1429,1431],{"className":432,"code":1430,"language":434,"meta":435,"style":435},"\\draw (0,0) circle [radius=1.5];\n\\draw (0,0) circle (2cm); % old syntax with round brackets instead of square brackets\n\\draw (0,0) circle [x radius=1.5cm, y radius=10mm];\n\\draw (0,0) circle (1.2cm and 8mm); % old syntax\n\\draw (0,0) circle [x radius=1cm, y radius=5mm, rotate=30];\n\\draw[rotate=30] (0,0) ellipse (20pt and 10pt);  % old syntax\n",[437,1432,1433,1438,1443,1448,1453,1458],{"__ignoreMap":435},[440,1434,1435],{"class":442,"line":443},[440,1436,1437],{},"\\draw (0,0) circle [radius=1.5];\n",[440,1439,1440],{"class":442,"line":749},[440,1441,1442],{},"\\draw (0,0) circle (2cm); % old syntax with round brackets instead of square brackets\n",[440,1444,1445],{"class":442,"line":773},[440,1446,1447],{},"\\draw (0,0) circle [x radius=1.5cm, y radius=10mm];\n",[440,1449,1450],{"class":442,"line":990},[440,1451,1452],{},"\\draw (0,0) circle (1.2cm and 8mm); % old syntax\n",[440,1454,1455],{"class":442,"line":996},[440,1456,1457],{},"\\draw (0,0) circle [x radius=1cm, y radius=5mm, rotate=30];\n",[440,1459,1460],{"class":442,"line":1002},[440,1461,1462],{},"\\draw[rotate=30] (0,0) ellipse (20pt and 10pt);  % old syntax\n",[721,1464,1465],{"start":773},[724,1466,1467,1423,1470,1473],{},[727,1468,1469],{},"Arcs",[437,1471,1472],{},"arc","\" creates a part of a circle or an ellipse.",[430,1475,1477],{"className":432,"code":1476,"language":434,"meta":435,"style":435},"\\draw (0,0) arc (0:270:8mm);\n\\draw (0,0) arc (0:315:1.75cm and 1cm);\n\\filldraw[fill=cyan, draw=blue] (0,0) -- (12mm,0mm) arc (0:30:12mm) -- (0,0);\n",[437,1478,1479,1484,1489],{"__ignoreMap":435},[440,1480,1481],{"class":442,"line":443},[440,1482,1483],{},"\\draw (0,0) arc (0:270:8mm);\n",[440,1485,1486],{"class":442,"line":749},[440,1487,1488],{},"\\draw (0,0) arc (0:315:1.75cm and 1cm);\n",[440,1490,1491],{"class":442,"line":773},[440,1492,1493],{},"\\filldraw[fill=cyan, draw=blue] (0,0) -- (12mm,0mm) arc (0:30:12mm) -- (0,0);\n",[357,1495,1496],{},"Or in an alternative syntax:",[430,1498,1500],{"className":432,"code":1499,"language":434,"meta":435,"style":435},"\\draw (0,0)  arc[radius = 8mm, start angle= 0, end angle= 270];\n\\draw (0,0)  arc[x radius = 1.75cm, y radius = 1cm, start angle= 0, end angle= 315];\n",[437,1501,1502,1507],{"__ignoreMap":435},[440,1503,1504],{"class":442,"line":443},[440,1505,1506],{},"\\draw (0,0)  arc[radius = 8mm, start angle= 0, end angle= 270];\n",[440,1508,1509],{"class":442,"line":749},[440,1510,1511],{},"\\draw (0,0)  arc[x radius = 1.75cm, y radius = 1cm, start angle= 0, end angle= 315];\n",[721,1513,1514],{"start":990},[724,1515,1516,1519,1520,950,1523,950,1526,950,1529,1532,1533,1536],{},[727,1517,1518],{},"Helplines, Parabola, Sine and Cosine curve",": There are many more predefined commands for special paths, like \"",[437,1521,1522],{},"grid",[437,1524,1525],{},"parabola",[437,1527,1528],{},"sin",[437,1530,1531],{},"cos","\" (sine or cosine curve in the interval ",[440,1534,1535],{},"0,π\u002F2","). The option \"help lines\" denotes \"fine gray\".",[430,1538,1540],{"className":432,"code":1539,"language":434,"meta":435,"style":435},"\\draw[help lines] (0,0) grid (2,3);\n\\draw[step=0.5, gray, very thin] (-1.4,-1.4) grid (1.4,1.4);\n\\draw (0,0) parabola (1,1.5) parabola[bend at end] (2,0);\n\\draw (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0) sin (5,1);\n",[437,1541,1542,1547,1552,1557],{"__ignoreMap":435},[440,1543,1544],{"class":442,"line":443},[440,1545,1546],{},"\\draw[help lines] (0,0) grid (2,3);\n",[440,1548,1549],{"class":442,"line":749},[440,1550,1551],{},"\\draw[step=0.5, gray, very thin] (-1.4,-1.4) grid (1.4,1.4);\n",[440,1553,1554],{"class":442,"line":773},[440,1555,1556],{},"\\draw (0,0) parabola (1,1.5) parabola[bend at end] (2,0);\n",[440,1558,1559],{"class":442,"line":990},[440,1560,1561],{},"\\draw (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0) sin (5,1);\n",[940,1563,1565],{"id":1564},"changing-line-appearance-using-options","Changing line appearance using Options",[357,1567,1568],{},"The line has many attributes which can be altered according requirement. For example in following example we chose the line color as red, line pattern as dashed, and the line width as very thick.",[430,1570,1572],{"className":432,"code":1571,"language":434,"meta":435,"style":435},"\\draw[red, dashed, very thick, rotate=30] (1,0) -- (0,0) -- (0,1);\n",[437,1573,1574],{"__ignoreMap":435},[440,1575,1576],{"class":442,"line":443},[440,1577,1571],{},[357,1579,1580],{},"Examples for changing the arrow tips",[430,1582,1584],{"className":432,"code":1583,"language":434,"meta":435,"style":435},"\\draw [->] (0,0) -- (30:20pt); \n\\draw [\u003C->] (1,0) arc (180:30:10pt); \n\\draw [\u003C->] (2,0) -- ++(0.5,10pt) -- ++(0.5,-10pt) -- ++(0.5,10pt);\n",[437,1585,1586,1591,1596],{"__ignoreMap":435},[440,1587,1588],{"class":442,"line":443},[440,1589,1590],{},"\\draw [->] (0,0) -- (30:20pt); \n",[440,1592,1593],{"class":442,"line":749},[440,1594,1595],{},"\\draw [\u003C->] (1,0) arc (180:30:10pt); \n",[440,1597,1598],{"class":442,"line":773},[440,1599,1600],{},"\\draw [\u003C->] (2,0) -- ++(0.5,10pt) -- ++(0.5,-10pt) -- ++(0.5,10pt);\n",[357,1602,1603],{},"List of options for changing the line appearance:",[474,1605,1606,1621],{},[477,1607,1608],{},[480,1609,1610,1612,1615,1618],{},[483,1611,488],{},[483,1613,1614],{},"Option passed",[483,1616,1617],{},"Acceptable Value",[483,1619,1620],{},"Remark",[490,1622,1623,1637,1650,1663,1676,1691,1720],{},[480,1624,1625,1628,1631,1634],{},[495,1626,1627],{},"Changing width of line",[495,1629,1630],{},"line width=1mm",[495,1632,1633],{},"any",[495,1635,1636],{},"The values can be provided in pt, mm, cm, in, etc",[480,1638,1639,1642,1645,1648],{},[495,1640,1641],{},"line width=thick",[495,1643,1644],{},"ultra thin, very thin, thin, semi thick, thick, very thick, ultra thick",[495,1646,1647],{},"These values correspond to (0.1pt, 0.2pt, 0.4pt, 0.6pt, 0.8pt, 1.2pt, 1.6pt)",[495,1649],{},[480,1651,1652,1655,1658,1661],{},[495,1653,1654],{},"Changing the line end shape",[495,1656,1657],{},"line cap = round",[495,1659,1660],{},"round, rect, butt",[495,1662],{},[480,1664,1665,1668,1670,1673],{},[495,1666,1667],{},"Changing the line pattern",[495,1669,1212],{},[495,1671,1672],{},"solid, dashed, dotted, dash dotted, densely dotted, loosely dotted, double",[495,1674,1675],{},"Predefined line patterns",[480,1677,1678,1684,1687,1689],{},[495,1679,1680,1681],{},"dash pattern=",[437,1682,1683],{},"on 2pt off 3pt on 4pt off 4pt",[495,1685,1686],{},"Customized line pattern",[495,1688],{},[495,1690],{},[480,1692,1693,1696,1699,1718],{},[495,1694,1695],{},"Arrow type",[495,1697,1698],{},"arrow= \u003C->",[495,1700,1701,1085,1704,1085,1707,1085,1710,1085,1713,1085,1715],{},[437,1702,1703],{},">",[437,1705,1706],{},"\u003C",[437,1708,1709],{},">>",[437,1711,1712],{},"\u003C\u003C",[437,1714,434],{},[437,1716,1717],{},"stealth",[495,1719],{},[480,1721,1722,1725,1728,1731],{},[495,1723,1724],{},"Joining lines",[495,1726,1727],{},"line join= miter",[495,1729,1730],{},"round, bevel, miter",[495,1732],{},[357,1734,1735,1738,1739,1742],{},[727,1736,1737],{},"Example:"," ",[437,1740,1741],{},"\\draw[very thick, line cap=round, arrow=latex-latex, line join=round]"," (0,0)--(3,2);",[357,1744,1745,1746,1749],{},"For rectangles a special syntax exists. Use a move-to operation to one corner and after \"",[437,1747,1748],{},"rectangle","\" the coordinates of the diagonal corner. The last one becomes the new current point.",[430,1751,1753],{"className":432,"code":1752,"language":434,"meta":435,"style":435},"\\draw (0,0) rectangle (1,1);\n\\shade[top color=yellow, bottom color=black] (0,0) rectangle (2,-1);\n\\filldraw[fill=green!20!white, draw=green!40!black] (0,0) rectangle (2,1);\n",[437,1754,1755,1760,1765],{"__ignoreMap":435},[440,1756,1757],{"class":442,"line":443},[440,1758,1759],{},"\\draw (0,0) rectangle (1,1);\n",[440,1761,1762],{"class":442,"line":749},[440,1763,1764],{},"\\shade[top color=yellow, bottom color=black] (0,0) rectangle (2,-1);\n",[440,1766,1767],{"class":442,"line":773},[440,1768,1769],{},"\\filldraw[fill=green!20!white, draw=green!40!black] (0,0) rectangle (2,1);\n",[357,1771,1772,1773,1776],{},"The fill color \"",[437,1774,1775],{},"green!20!white","\" means 20% green and 80% white mixed together.",[419,1778,1780],{"id":1779},"the-node-command","The \\node command",[357,1782,1783],{},"A node is used to place some text at given coordinate. Nodes are not part of the path itself, they are added to the picture after the path has been drawn.",[357,1785,1786],{},"The node can be placed inside rectangle or circle or other simple shapes. A node can be placed in several ways:",[721,1788,1789],{},[724,1790,1791,1792],{},"Using the \\node command. The syntax of the command is ",[437,1793,1794],{},"\\node[options] (Name) at (coordinates) {Text};",[430,1796,1798],{"className":432,"code":1797,"language":434,"meta":435,"style":435},"%% syntax\n%% \\node[options] (Name of node) at (coordinates) {Text to appear};\n% Example for usage\n\\node[red,rectangle] at (0,0) {Some text}; % To place some text only\n\\node (A) at (0,0) {}; % To define a new coordinate\n",[437,1799,1800,1805,1810,1815,1820],{"__ignoreMap":435},[440,1801,1802],{"class":442,"line":443},[440,1803,1804],{},"%% syntax\n",[440,1806,1807],{"class":442,"line":749},[440,1808,1809],{},"%% \\node[options] (Name of node) at (coordinates) {Text to appear};\n",[440,1811,1812],{"class":442,"line":773},[440,1813,1814],{},"% Example for usage\n",[440,1816,1817],{"class":442,"line":990},[440,1818,1819],{},"\\node[red,rectangle] at (0,0) {Some text}; % To place some text only\n",[440,1821,1822],{"class":442,"line":996},[440,1823,1824],{},"\\node (A) at (0,0) {}; % To define a new coordinate\n",[357,1826,1827],{},"The name of node should be given in parenthesis. An example is given following, where two nodes are drawn and first is within the circle and second is in the rectangle.",[430,1829,1831],{"className":432,"code":1830,"language":434,"meta":435,"style":435},"\\begin{tikzpicture}\n    \\node (A) at (0,0) [thick,blue, circle,fill=blue!50] {Encoder};   % node A\n    \\node (B) at (3,0) [thick,blue,rectangle,fill=green!80!black] {Decoder}; % node B\n    \\draw[->,ultra thick] (A)--(B); % line joining node A and B\n\\end{tikzpicture}\n",[437,1832,1833,1838,1843,1848,1853],{"__ignoreMap":435},[440,1834,1835],{"class":442,"line":443},[440,1836,1837],{},"\\begin{tikzpicture}\n",[440,1839,1840],{"class":442,"line":749},[440,1841,1842],{},"    \\node (A) at (0,0) [thick,blue, circle,fill=blue!50] {Encoder};   % node A\n",[440,1844,1845],{"class":442,"line":773},[440,1846,1847],{},"    \\node (B) at (3,0) [thick,blue,rectangle,fill=green!80!black] {Decoder}; % node B\n",[440,1849,1850],{"class":442,"line":990},[440,1851,1852],{},"    \\draw[->,ultra thick] (A)--(B); % line joining node A and B\n",[440,1854,1855],{"class":442,"line":996},[440,1856,776],{},[721,1858,1859],{"start":749},[724,1860,1861,1862,1865],{},"Using the keyword ",[361,1863,1864],{},"node"," with other command viz. \\draw and \\path command.",[430,1867,1869],{"className":432,"code":1868,"language":434,"meta":435,"style":435},"\\draw (0,0) node{a} -- (1,1) node {b};\n\\path (0,0) node{a} -- (1,1) node {b};\n",[437,1870,1871,1876],{"__ignoreMap":435},[440,1872,1873],{"class":442,"line":443},[440,1874,1875],{},"\\draw (0,0) node{a} -- (1,1) node {b};\n",[440,1877,1878],{"class":442,"line":749},[440,1879,1880],{},"\\path (0,0) node{a} -- (1,1) node {b};\n",[357,1882,1883],{},"Different options are available, some of which are described in below table:",[474,1885,1886,1899],{},[477,1887,1888],{},[480,1889,1890,1892,1894,1897],{},[483,1891,488],{},[483,1893,1614],{},[483,1895,1896],{},"Admissible values",[483,1898,1620],{},[490,1900,1901,1915,1929,1943,1956,1969,1982,1994,2007,2019,2031,2043,2056],{},[480,1902,1903,1906,1909,1912],{},[495,1904,1905],{},"Position of text along a path",[495,1907,1908],{},"pos=.5",[495,1910,1911],{},"> 0",[495,1913,1914],{},"The text will be place along path at beginning (=0), in middle (=.5) and at end(=1). (default=1)",[480,1916,1917,1920,1923,1926],{},[495,1918,1919],{},"Alignment of text",[495,1921,1922],{},"align=left",[495,1924,1925],{},"left, right, center",[495,1927,1928],{},"The text\u002Fparagraph is aligned accordingly (default=center).",[480,1930,1931,1934,1937,1940],{},[495,1932,1933],{},"Place the text wrt a given point",[495,1935,1936],{},"anchor=top",[495,1938,1939],{},"left, right, top, bottom, top left, top right, bottom left, bottom right",[495,1941,1942],{},"Assuming the point as origin there are 4 directions (x,-x, y, -y) for which left,right,top,bottom corresponds",[480,1944,1945,1948,1951,1954],{},[495,1946,1947],{},"anchor=north",[495,1949,1950],{},"east,west, north, south, north east, north west, south east, south west",[495,1952,1953],{},"Same as above but now direction are specified with north, east, west, south",[495,1955],{},[480,1957,1958,1961,1964,1967],{},[495,1959,1960],{},"Text enclose in shape",[495,1962,1963],{},"rectangle, circle",[495,1965,1966],{},"Associated parameter should be passed along with option",[495,1968],{},[480,1970,1971,1974,1977,1979],{},[495,1972,1973],{},"Distance between the enclosed shape and the text",[495,1975,1976],{},"Inner sep =.5",[495,1978],{},[495,1980,1981],{},"Distance of the enclosing shape from the point",[480,1983,1984,1987,1989,1992],{},[495,1985,1986],{},"Outer sep =.8",[495,1988],{},[495,1990,1991],{},"Minimum size of the shape irrespective of the text length",[495,1993],{},[480,1995,1996,1999,2002,2005],{},[495,1997,1998],{},"minimum width = 2cm",[495,2000,2001],{},"any value>0",[495,2003,2004],{},"The width of the shape will be at least 2cm even for a single letter",[495,2006],{},[480,2008,2009,2012,2014,2017],{},[495,2010,2011],{},"minimum height = 2cm",[495,2013,2001],{},[495,2015,2016],{},"Minimum height of the node containing shape",[495,2018],{},[480,2020,2021,2024,2026,2029],{},[495,2022,2023],{},"minimum size = 2cm",[495,2025,2001],{},[495,2027,2028],{},"Minimum height as well as width of the shape",[495,2030],{},[480,2032,2033,2036,2039,2041],{},[495,2034,2035],{},"shape aspect = 1",[495,2037,2038],{},"The shape enclosing text will change its dimension maintaining this aspect ratio",[495,2040],{},[495,2042],{},[480,2044,2045,2048,2051,2054],{},[495,2046,2047],{},"coloring text, color shape, etc.",[495,2049,2050],{},"fill= red, draw=green",[495,2052,2053],{},"This is usual as described in earlier color and opacity options",[495,2055],{},[480,2057,2058,2061,2064,2066],{},[495,2059,2060],{},"Aligning the text along the curve",[495,2062,2063],{},"sloped",[495,2065],{},[495,2067],{},[357,2069,2070],{},"A few examples are given below to explain the options:",[357,2072,2073],{},"Writing text along a given path using the node command is shown as a simple example:",[430,2075,2077],{"className":432,"code":2076,"language":434,"meta":435,"style":435},"\\draw[dotted]\n    (0,0) node {1st node}\n -- (1,1) node {2nd node}\n -- (0,2) node {3rd node}\n -- cycle;\n",[437,2078,2079,2084,2089,2094,2099],{"__ignoreMap":435},[440,2080,2081],{"class":442,"line":443},[440,2082,2083],{},"\\draw[dotted]\n",[440,2085,2086],{"class":442,"line":749},[440,2087,2088],{},"    (0,0) node {1st node}\n",[440,2090,2091],{"class":442,"line":773},[440,2092,2093],{}," -- (1,1) node {2nd node}\n",[440,2095,2096],{"class":442,"line":990},[440,2097,2098],{}," -- (0,2) node {3rd node}\n",[440,2100,2101],{"class":442,"line":996},[440,2102,2103],{}," -- cycle;\n",[430,2105,2107],{"className":432,"code":2106,"language":434,"meta":435,"style":435},"\\fill[fill=yellow]\n    (0,0) node {1st node}\n -- (1,1) node[circle,inner sep=0pt,draw] {2nd node}\n -- (0,2) node[fill=red!20,draw,double,rounded corners] {3rd node};\n",[437,2108,2109,2114,2118,2123],{"__ignoreMap":435},[440,2110,2111],{"class":442,"line":443},[440,2112,2113],{},"\\fill[fill=yellow]\n",[440,2115,2116],{"class":442,"line":749},[440,2117,2088],{},[440,2119,2120],{"class":442,"line":773},[440,2121,2122],{}," -- (1,1) node[circle,inner sep=0pt,draw] {2nd node}\n",[440,2124,2125],{"class":442,"line":990},[440,2126,2127],{}," -- (0,2) node[fill=red!20,draw,double,rounded corners] {3rd node};\n",[357,2129,2130,2131,2134],{},"To place nodes on a line or a curve use the \"",[437,2132,2133],{},"pos=\u003Cfraction>","\" option, where fraction is a floating point number between 0 representing the previous coordinate and 1 representing the current coordinate.",[430,2136,2138],{"className":432,"code":2137,"language":434,"meta":435,"style":435},"\\draw (0,0) -- (3,1)\n  node[pos=0]{0} node[pos=0.5]{1\u002F2} node[pos=0.9]{9\u002F10};\n",[437,2139,2140,2145],{"__ignoreMap":435},[440,2141,2142],{"class":442,"line":443},[440,2143,2144],{},"\\draw (0,0) -- (3,1)\n",[440,2146,2147],{"class":442,"line":749},[440,2148,2149],{},"  node[pos=0]{0} node[pos=0.5]{1\u002F2} node[pos=0.9]{9\u002F10};\n",[357,2151,2152,2153,2156,2157,950,2160,2156,2163,950,2166,2156,2169,950,2172,2156,2175,950,2178,2156,2181,950,2184,2156,2187,950,2190,2156,2193,1071],{},"There exist some abbreviations: \"",[437,2154,2155],{},"at start","\" for \"",[437,2158,2159],{},"pos=0",[437,2161,2162],{},"very near start",[437,2164,2165],{},"pos=0.125",[437,2167,2168],{},"near start",[437,2170,2171],{},"pos=0.25",[437,2173,2174],{},"midway",[437,2176,2177],{},"pos=0.5",[437,2179,2180],{},"near end",[437,2182,2183],{},"pos=0.75",[437,2185,2186],{},"very near end",[437,2188,2189],{},"pos=0.875",[437,2191,2192],{},"at end",[437,2194,2195],{},"pos=1",[357,2197,2198,2199,2201],{},"The \"",[437,2200,2063],{},"\" option causes the node to be rotated to become a tangent to the curve.",[357,2203,2204],{},"Since nodes are often the only path operation on paths, there are special commands for creating paths containing only a node, the first with text output, the second without:",[430,2206,2208],{"className":432,"code":2207,"language":434,"meta":435,"style":435},"\\node[\u003Coptions>](\u003Cname>) at (\u003Ccoordinate>){\u003Ctext>};\n\\coordinate[\u003Coptions>](\u003Cname>) at (\u003Ccoordinate>);\n",[437,2209,2210,2215],{"__ignoreMap":435},[440,2211,2212],{"class":442,"line":443},[440,2213,2214],{},"\\node[\u003Coptions>](\u003Cname>) at (\u003Ccoordinate>){\u003Ctext>};\n",[440,2216,2217],{"class":442,"line":749},[440,2218,2219],{},"\\coordinate[\u003Coptions>](\u003Cname>) at (\u003Ccoordinate>);\n",[357,2221,2222,2223,2226,2227,2230,2231,1071],{},"One can connect nodes using the nodes' labels as coordinates. Having \"",[437,2224,2225],{},"\\path(0,0) node(x) {} (3,1) node(y) {};","\" defined, the node at (0,0) got the name \"",[437,2228,2229],{},"(x)","\" and the one at (3,1) got the name \"",[437,2232,2233],{},"(y)",[430,2235,2237],{"className":432,"code":2236,"language":434,"meta":435,"style":435},"\\path (0,0) node(x) {} \n      (3,1) node(y) {};\n\\draw (x) -- (y);\n",[437,2238,2239,2244,2249],{"__ignoreMap":435},[440,2240,2241],{"class":442,"line":443},[440,2242,2243],{},"\\path (0,0) node(x) {} \n",[440,2245,2246],{"class":442,"line":749},[440,2247,2248],{},"      (3,1) node(y) {};\n",[440,2250,2251],{"class":442,"line":773},[440,2252,2253],{},"\\draw (x) -- (y);\n",[357,2255,2256],{},"Equivalent to",[430,2258,2260],{"className":432,"code":2259,"language":434,"meta":435,"style":435},"\\coordinate (x) at (0,0); \n\\coordinate (y) at (3,1);\n\\draw (x) -- (y);\n",[437,2261,2262,2267,2272],{"__ignoreMap":435},[440,2263,2264],{"class":442,"line":443},[440,2265,2266],{},"\\coordinate (x) at (0,0); \n",[440,2268,2269],{"class":442,"line":749},[440,2270,2271],{},"\\coordinate (y) at (3,1);\n",[440,2273,2274],{"class":442,"line":773},[440,2275,2253],{},[357,2277,2278],{},"Multiline text can be included inside a node. A new line is indicated by double backslash \"\\\", but additionally you have to specify the alignment using the node option \"align=\". Here an example:",[430,2280,2282],{"className":432,"code":2281,"language":434,"meta":435,"style":435},"\\filldraw \n(0,0) circle (2pt) node[align=left,   below] {test 1\\\\is aligned left} --\n(4,0) circle (2pt) node[align=center, below] {test 2\\\\is centered}     -- \n(8,0) circle (2pt) node[align=right,  below] {test 3\\\\is right aligned};\n",[437,2283,2284,2289,2294,2299],{"__ignoreMap":435},[440,2285,2286],{"class":442,"line":443},[440,2287,2288],{},"\\filldraw \n",[440,2290,2291],{"class":442,"line":749},[440,2292,2293],{},"(0,0) circle (2pt) node[align=left,   below] {test 1\\\\is aligned left} --\n",[440,2295,2296],{"class":442,"line":773},[440,2297,2298],{},"(4,0) circle (2pt) node[align=center, below] {test 2\\\\is centered}     -- \n",[440,2300,2301],{"class":442,"line":990},[440,2302,2303],{},"(8,0) circle (2pt) node[align=right,  below] {test 3\\\\is right aligned};\n",[357,2305,2306],{},"Path construction operations try to be clever, such that the path starts at the border of the node's shape and not from the node's center.",[430,2308,2310],{"className":432,"code":2309,"language":434,"meta":435,"style":435},"\\path (0,0) node(x) {Hello World!}\n(3,1) node[circle,draw](y) {$\\int_1^2 x \\mathrm d x$};\n\\draw[->,blue] (x) -- (y);\n\\draw[->,red] (x) -| node[near start,below] {label} (y);\n\\draw[->,orange] (x) .. controls +(up:1cm) and +(left:1cm) .. node[above,sloped] {label} (y);\n",[437,2311,2312,2317,2322,2327,2332],{"__ignoreMap":435},[440,2313,2314],{"class":442,"line":443},[440,2315,2316],{},"\\path (0,0) node(x) {Hello World!}\n",[440,2318,2319],{"class":442,"line":749},[440,2320,2321],{},"(3,1) node[circle,draw](y) {$\\int_1^2 x \\mathrm d x$};\n",[440,2323,2324],{"class":442,"line":773},[440,2325,2326],{},"\\draw[->,blue] (x) -- (y);\n",[440,2328,2329],{"class":442,"line":990},[440,2330,2331],{},"\\draw[->,red] (x) -| node[near start,below] {label} (y);\n",[440,2333,2334],{"class":442,"line":996},[440,2335,2336],{},"\\draw[->,orange] (x) .. controls +(up:1cm) and +(left:1cm) .. node[above,sloped] {label} (y);\n",[357,2338,2339,2340,2343,2344,1071],{},"Once the node x has been defined, you can use anchors as defined above relative to (x) as \"",[437,2341,2342],{},"(x.\u003Canchor>)","\", like \"",[437,2345,2346],{},"(x.north)",[357,2348,2349,2352],{},[727,2350,2351],{},"Placing circles along the drawn curve",":",[357,2354,2355],{},"In this case a curve is drawn and over that curve some circles are placed at specified positions. This trick makes use of \"foreach command\" whose details can be found in the special command section.",[430,2357,2359],{"className":432,"code":2358,"language":434,"meta":435,"style":435},"\\draw[very thick] (0.5,0.5) .. controls (2,1).. (2.5,2.5)\n    node foreach \\p in {0,0.25,...,1} [circle,fill=red,pos=\\p,inner sep=0pt,minimum size=1.5mm]{};  \n\\node[left] at (.5,.30){A};\n\\node[right] at (2.5,2.5){B} ;  \n\\path[ultra thick,latex-latex] (2,0) --(0,0)--(0,1.5);\n",[437,2360,2361,2366,2371,2376,2381],{"__ignoreMap":435},[440,2362,2363],{"class":442,"line":443},[440,2364,2365],{},"\\draw[very thick] (0.5,0.5) .. controls (2,1).. (2.5,2.5)\n",[440,2367,2368],{"class":442,"line":749},[440,2369,2370],{},"    node foreach \\p in {0,0.25,...,1} [circle,fill=red,pos=\\p,inner sep=0pt,minimum size=1.5mm]{};  \n",[440,2372,2373],{"class":442,"line":773},[440,2374,2375],{},"\\node[left] at (.5,.30){A};\n",[440,2377,2378],{"class":442,"line":990},[440,2379,2380],{},"\\node[right] at (2.5,2.5){B} ;  \n",[440,2382,2383],{"class":442,"line":996},[440,2384,2385],{},"\\path[ultra thick,latex-latex] (2,0) --(0,0)--(0,1.5);\n",[419,2387,2389],{"id":2388},"the-clip-command","The \\clip command",[357,2391,2392],{},"The clip command is used to remove the portion outside the given shape (e.g. rectangle or circle).",[430,2394,2396],{"className":432,"code":2395,"language":434,"meta":435,"style":435},"\\begin{tikzpicture}\n    \\clip (1,1)  circle (2);\n    \\draw[red,fill] (0,0) rectangle (3,3);      \n\\end{tikzpicture}\n",[437,2397,2398,2402,2407,2412],{"__ignoreMap":435},[440,2399,2400],{"class":442,"line":443},[440,2401,1837],{},[440,2403,2404],{"class":442,"line":749},[440,2405,2406],{},"    \\clip (1,1)  circle (2);\n",[440,2408,2409],{"class":442,"line":773},[440,2410,2411],{},"    \\draw[red,fill] (0,0) rectangle (3,3);      \n",[440,2413,2414],{"class":442,"line":990},[440,2415,776],{},[419,2417,2419],{"id":2418},"special-commands","Special commands",[940,2421,2423],{"id":2422},"tikzstyle","Tikzstyle",[357,2425,2426],{},"It is a very useful command when you need to set several different shapes with same parameters (i.e., width, color, etc). Therefore you can define one or more style in the beginning, as shown below and then you may use it later anywhere in the Tikz code.",[430,2428,2430],{"className":432,"code":2429,"language":434,"meta":435,"style":435},"\\begin{tikzpicture}[\nmycircle\u002F.style={circle, draw=green!60, fill=green!5, ultra thick, minimum size=7mm},\nmyline\u002F.style={dotted, blue!60,->},\n]\n\\draw[myline] (0,0)node[mycircle]{$\\pi$} to[out=45,in=135]  (5,1) node[mycircle]{3.414...};\n\\end{tikzpicture}\n",[437,2431,2432,2437,2442,2447,2452,2457],{"__ignoreMap":435},[440,2433,2434],{"class":442,"line":443},[440,2435,2436],{},"\\begin{tikzpicture}[\n",[440,2438,2439],{"class":442,"line":749},[440,2440,2441],{},"mycircle\u002F.style={circle, draw=green!60, fill=green!5, ultra thick, minimum size=7mm},\n",[440,2443,2444],{"class":442,"line":773},[440,2445,2446],{},"myline\u002F.style={dotted, blue!60,->},\n",[440,2448,2449],{"class":442,"line":990},[440,2450,2451],{},"]\n",[440,2453,2454],{"class":442,"line":996},[440,2455,2456],{},"\\draw[myline] (0,0)node[mycircle]{$\\pi$} to[out=45,in=135]  (5,1) node[mycircle]{3.414...};\n",[440,2458,2459],{"class":442,"line":1002},[440,2460,776],{},[357,2462,2463],{},"Above syntax allows you to define at the beginning of the picture. Alternatively the tikzstyle command can also be used to define it as follows.",[430,2465,2467],{"className":432,"code":2466,"language":434,"meta":435,"style":435},"\\begin{tikzpicture}\n\\tikzset{mycircle\u002F.style={circle, draw=green!60, fill=green!5, ultra thick, minimum size=7mm} }\n\\tikzset{myline\u002F.style={dotted, blue!60,->} }\n\\draw[myline] (0,0)node[mycircle]{$\\pi$} to[out=45,in=135]  (5,1) node[mycircle]{3.414...};\n\\end{tikzpicture}\n",[437,2468,2469,2473,2478,2483,2487],{"__ignoreMap":435},[440,2470,2471],{"class":442,"line":443},[440,2472,1837],{},[440,2474,2475],{"class":442,"line":749},[440,2476,2477],{},"\\tikzset{mycircle\u002F.style={circle, draw=green!60, fill=green!5, ultra thick, minimum size=7mm} }\n",[440,2479,2480],{"class":442,"line":773},[440,2481,2482],{},"\\tikzset{myline\u002F.style={dotted, blue!60,->} }\n",[440,2484,2485],{"class":442,"line":990},[440,2486,2456],{},[440,2488,2489],{"class":442,"line":996},[440,2490,776],{},[940,2492,2494],{"id":2493},"scope","Scope",[357,2496,2497],{},"You may want to apply some changes to only a certain part of the code then it can be done use the scope command.",[430,2499,2501],{"className":432,"code":2500,"language":434,"meta":435,"style":435},"\\begin{tikzpicture}[\nmycircle\u002F.style={circle, draw=green!60, fill=green!5, ultra thick, minimum size=7mm},\nmyline\u002F.style={dotted, blue!60,->},\n]\n\\draw[myline] (0,0)node[mycircle]{$\\pi$} to[out=45,in=135]  (5,1) node[mycircle]{3.414...};\n% following drawing in the scope is shifted along y by 2cm\n\\begin{scope}[yshift=2cm]\n    \\draw[myline] (0,0)node[mycircle]{$\\pi$} to[out=45,in=135]  (5,1) node[mycircle]{3.414...};\n\\end{scope}\n\\end{tikzpicture}\n",[437,2502,2503,2507,2511,2515,2519,2523,2528,2533,2538,2544],{"__ignoreMap":435},[440,2504,2505],{"class":442,"line":443},[440,2506,2436],{},[440,2508,2509],{"class":442,"line":749},[440,2510,2441],{},[440,2512,2513],{"class":442,"line":773},[440,2514,2446],{},[440,2516,2517],{"class":442,"line":990},[440,2518,2451],{},[440,2520,2521],{"class":442,"line":996},[440,2522,2456],{},[440,2524,2525],{"class":442,"line":1002},[440,2526,2527],{},"% following drawing in the scope is shifted along y by 2cm\n",[440,2529,2530],{"class":442,"line":1008},[440,2531,2532],{},"\\begin{scope}[yshift=2cm]\n",[440,2534,2535],{"class":442,"line":1014},[440,2536,2537],{},"    \\draw[myline] (0,0)node[mycircle]{$\\pi$} to[out=45,in=135]  (5,1) node[mycircle]{3.414...};\n",[440,2539,2541],{"class":442,"line":2540},9,[440,2542,2543],{},"\\end{scope}\n",[440,2545,2547],{"class":442,"line":2546},10,[440,2548,776],{},[940,2550,2552],{"id":2551},"foreach-command","Foreach command",[357,2554,2555,2556,1071],{},"This command is analogous to loops used in programming. It can be realized by \"",[437,2557,2558],{},"\\foreach ⟨variable⟩ in {⟨list of values⟩} ⟨commands⟩",[430,2560,2562],{"className":432,"code":2561,"language":434,"meta":435,"style":435},"\\foreach \\x in {0,...,9} \n  \\draw (\\x,0) circle (0.4);\n",[437,2563,2564,2569],{"__ignoreMap":435},[440,2565,2566],{"class":442,"line":443},[440,2567,2568],{},"\\foreach \\x in {0,...,9} \n",[440,2570,2571],{"class":442,"line":749},[440,2572,2573],{},"  \\draw (\\x,0) circle (0.4);\n",[940,2575,2577],{"id":2576},"animation-in-beamer-style","Animation in Beamer style",[357,2579,2580],{},"To achieve the animation in the beamer in simplest form, we can print the N number of frames with the object being shifted in N-steps. An example is given following:",[430,2582,2584],{"className":432,"code":2583,"language":434,"meta":435,"style":435},"\\begin{frame}\n\\newcount\\p\n\\animatevalue\u003C3-10>{\\p}{0}{100}\n\\begin{tikzpicture}\n    \\path(0,0)rectangle(0.75\\paperwidth,-0.75\\paperheight);\n    \\path[draw](0,0)..controls +(30:2) and +(40:2)..+(4,-1) node [pos=\\p\u002F100,sloped,above]{a};\n\\end{tikzpicture}\n\\end{frame}\n",[437,2585,2586,2591,2596,2601,2605,2610,2615,2619],{"__ignoreMap":435},[440,2587,2588],{"class":442,"line":443},[440,2589,2590],{},"\\begin{frame}\n",[440,2592,2593],{"class":442,"line":749},[440,2594,2595],{},"\\newcount\\p\n",[440,2597,2598],{"class":442,"line":773},[440,2599,2600],{},"\\animatevalue\u003C3-10>{\\p}{0}{100}\n",[440,2602,2603],{"class":442,"line":990},[440,2604,1837],{},[440,2606,2607],{"class":442,"line":996},[440,2608,2609],{},"    \\path(0,0)rectangle(0.75\\paperwidth,-0.75\\paperheight);\n",[440,2611,2612],{"class":442,"line":1002},[440,2613,2614],{},"    \\path[draw](0,0)..controls +(30:2) and +(40:2)..+(4,-1) node [pos=\\p\u002F100,sloped,above]{a};\n",[440,2616,2617],{"class":442,"line":1008},[440,2618,776],{},[440,2620,2621],{"class":442,"line":1014},[440,2622,2623],{},"\\end{frame}\n",[357,2625,2626],{},"There are three important steps, as described below:",[721,2628,2629,2636,2643],{},[724,2630,2631,2632,2635],{},"Define a new variable: In above example we used ",[437,2633,2634],{},"\\p"," as the variable which store the count.",[724,2637,2638,2639,2642],{},"Define the range the variable can take. We use the command ",[437,2640,2641],{},"\\animatevalue\u003C3-10>{\\p}{0}{100}"," which says- For the range of 0-100, create 10 values.",[724,2644,2645,2646],{},"Use the variable for object position, which is done using ",[437,2647,2648],{},"\\path[draw](0,0)..controls +(30:2) and +(40:2)..+(4,-1) node [pos=\\p\u002F100,sloped,above]{a};",[940,2650,2652],{"id":2651},"pgf-layers","PGF layers",[357,2654,2655],{},"There are two ways to place the curves in the background:",[721,2657,2658,2661],{},[724,2659,2660],{},"First way is to write the command in the sequential order, i.e. first draw the curves at background (for which coordinates are already available), then draw the curves which comes on top of that, and so on.",[724,2662,2663],{},"Second way is to use PGF layers. This is particularly useful, when the background curves coordinates are not already available. They are defined with respect to the upper layer curves.",[357,2665,2666],{},"PGF layers provides following commands:",[430,2668,2670],{"className":432,"code":2669,"language":434,"meta":435,"style":435},"% Define two layers (names could be changed)\n\\pgfdeclarelayer{background}\n\\pgfdeclarelayer{foreground}\n%% Define there order of layer, here background is the bottom most and foreground is the topmost layer\n\\pgfsetlayers{background,main,foreground}\n\n%% Whatever you draw here is drawn in the main layer\n\\draw (1,0) circle (2);\n\n\\begin{pgfonlayer}{foreground}  %% draw the curves that should be placed in foreground\u002Ftop layer\n\\draw (0,0) arc (0:120:1);\n\\end{pgfonlayer}\n\n\\begin{pgfonlayer}{background}  %% draw the curves that should be placed in background\u002Fbottm layer\n\\draw (0,0) rectangle(2,2);\n\\end{pgfonlayer}\n",[437,2671,2672,2677,2682,2687,2692,2697,2703,2708,2713,2717,2722,2728,2734,2739,2745,2751],{"__ignoreMap":435},[440,2673,2674],{"class":442,"line":443},[440,2675,2676],{},"% Define two layers (names could be changed)\n",[440,2678,2679],{"class":442,"line":749},[440,2680,2681],{},"\\pgfdeclarelayer{background}\n",[440,2683,2684],{"class":442,"line":773},[440,2685,2686],{},"\\pgfdeclarelayer{foreground}\n",[440,2688,2689],{"class":442,"line":990},[440,2690,2691],{},"%% Define there order of layer, here background is the bottom most and foreground is the topmost layer\n",[440,2693,2694],{"class":442,"line":996},[440,2695,2696],{},"\\pgfsetlayers{background,main,foreground}\n",[440,2698,2699],{"class":442,"line":1002},[440,2700,2702],{"emptyLinePlaceholder":2701},true,"\n",[440,2704,2705],{"class":442,"line":1008},[440,2706,2707],{},"%% Whatever you draw here is drawn in the main layer\n",[440,2709,2710],{"class":442,"line":1014},[440,2711,2712],{},"\\draw (1,0) circle (2);\n",[440,2714,2715],{"class":442,"line":2540},[440,2716,2702],{"emptyLinePlaceholder":2701},[440,2718,2719],{"class":442,"line":2546},[440,2720,2721],{},"\\begin{pgfonlayer}{foreground}  %% draw the curves that should be placed in foreground\u002Ftop layer\n",[440,2723,2725],{"class":442,"line":2724},11,[440,2726,2727],{},"\\draw (0,0) arc (0:120:1);\n",[440,2729,2731],{"class":442,"line":2730},12,[440,2732,2733],{},"\\end{pgfonlayer}\n",[440,2735,2737],{"class":442,"line":2736},13,[440,2738,2702],{"emptyLinePlaceholder":2701},[440,2740,2742],{"class":442,"line":2741},14,[440,2743,2744],{},"\\begin{pgfonlayer}{background}  %% draw the curves that should be placed in background\u002Fbottm layer\n",[440,2746,2748],{"class":442,"line":2747},15,[440,2749,2750],{},"\\draw (0,0) rectangle(2,2);\n",[440,2752,2754],{"class":442,"line":2753},16,[440,2755,2733],{},[940,2757,2759],{"id":2758},"pattern-library","Pattern library",[357,2761,2762,2763,2766],{},"This library can provide total 11 types of patterns which can be used to fill the given area. Its color can be chose with the help of keyword ",[437,2764,2765],{},"pattern color",". These patterns are listed as below:",[430,2768,2770],{"className":432,"code":2769,"language":434,"meta":435,"style":435},"\\usetikzlibrary{patterns}   %% in the beginning of tex file\n\n\\begin{document}\n\\begin{tikzpicture}\n\\draw[pattern=dots, pattern color=blue] (0,0) rectangle ++(1,1);\n\\draw[pattern=grid, pattern color=blue] (0,1) rectangle ++(1,1);\n\\draw[pattern=crosshatch, pattern color=blue] (0,2) rectangle ++(1,1);\n\\draw[pattern=crosshatch dots, pattern color=blue] (0,3) rectangle ++(1,1);\n\\draw[pattern=fivepointed stars, pattern color=blue] (0,4) rectangle ++(1,1);\n\\draw[pattern=sixpointed stars, pattern color=blue] (0,5) rectangle ++(1,1);\n\n\\draw[pattern=vertical lines, pattern color=blue] (0,6) rectangle ++(1,1);\n\\draw[pattern=horizontal lines, pattern color=blue] (0,7) rectangle ++(1,1);\n\\draw[pattern=north east lines, pattern color=blue] (0,8) rectangle ++(1,1);\n\\draw[pattern=north west lines, pattern color=blue] (0,9) rectangle ++(1,1);\n\\end{tikzpicture}\n\\end{document}\n",[437,2771,2772,2777,2781,2786,2790,2795,2800,2805,2810,2815,2820,2824,2829,2834,2839,2844,2848],{"__ignoreMap":435},[440,2773,2774],{"class":442,"line":443},[440,2775,2776],{},"\\usetikzlibrary{patterns}   %% in the beginning of tex file\n",[440,2778,2779],{"class":442,"line":749},[440,2780,2702],{"emptyLinePlaceholder":2701},[440,2782,2783],{"class":442,"line":773},[440,2784,2785],{},"\\begin{document}\n",[440,2787,2788],{"class":442,"line":990},[440,2789,1837],{},[440,2791,2792],{"class":442,"line":996},[440,2793,2794],{},"\\draw[pattern=dots, pattern color=blue] (0,0) rectangle ++(1,1);\n",[440,2796,2797],{"class":442,"line":1002},[440,2798,2799],{},"\\draw[pattern=grid, pattern color=blue] (0,1) rectangle ++(1,1);\n",[440,2801,2802],{"class":442,"line":1008},[440,2803,2804],{},"\\draw[pattern=crosshatch, pattern color=blue] (0,2) rectangle ++(1,1);\n",[440,2806,2807],{"class":442,"line":1014},[440,2808,2809],{},"\\draw[pattern=crosshatch dots, pattern color=blue] (0,3) rectangle ++(1,1);\n",[440,2811,2812],{"class":442,"line":2540},[440,2813,2814],{},"\\draw[pattern=fivepointed stars, pattern color=blue] (0,4) rectangle ++(1,1);\n",[440,2816,2817],{"class":442,"line":2546},[440,2818,2819],{},"\\draw[pattern=sixpointed stars, pattern color=blue] (0,5) rectangle ++(1,1);\n",[440,2821,2822],{"class":442,"line":2724},[440,2823,2702],{"emptyLinePlaceholder":2701},[440,2825,2826],{"class":442,"line":2730},[440,2827,2828],{},"\\draw[pattern=vertical lines, pattern color=blue] (0,6) rectangle ++(1,1);\n",[440,2830,2831],{"class":442,"line":2736},[440,2832,2833],{},"\\draw[pattern=horizontal lines, pattern color=blue] (0,7) rectangle ++(1,1);\n",[440,2835,2836],{"class":442,"line":2741},[440,2837,2838],{},"\\draw[pattern=north east lines, pattern color=blue] (0,8) rectangle ++(1,1);\n",[440,2840,2841],{"class":442,"line":2747},[440,2842,2843],{},"\\draw[pattern=north west lines, pattern color=blue] (0,9) rectangle ++(1,1);\n",[440,2845,2846],{"class":442,"line":2753},[440,2847,776],{},[440,2849,2851],{"class":442,"line":2850},17,[440,2852,2853],{},"\\end{document}\n",[940,2855,2857],{"id":2856},"snake-library","Snake library",[357,2859,2860],{},"This library changes the path structure from a straight line to the following:",[430,2862,2864],{"className":432,"code":2863,"language":434,"meta":435,"style":435},"\\usetikzlibrary{snakes}\n\\begin{tikzpicture}[thick]\n\\draw[snake=bumps] (0,0) -- (3,0);                          % Semicircle\u002Fbumps along the line.\n\\draw[snake=zigzag] (0,1)-- (3,1);                          % a zig-zag pattern   \n\\draw[snake=saw] (0,2) -- (3,2);                            % saw type line  \n\\draw[snake=brace] (0,3)-- (3,3);                           % a brace between two points\n\\draw[snake=coil,segment length=4pt] (0,4)-- (3,4);         % like a coil\n\\draw[snake=coil,segment aspect=0] (0,5) -- (3,5);          % like a sinusoidal wave\n\\draw[snake=snake] (0,6) -- (3,6);                          % sinusoidal wave (similar to coil)\n\\draw[snake=expanding waves,segment angle=7] (0,7)-- (3,7); % like a expaning wavefront\n\\draw[snake=border,segment angle=-45] (0,8) -- (3,8);   % slanted lines along the path\n\\draw[snake=triangles] (0,9) -- (3,9);                  % Triangles along the path\n\\draw[snake=ticks] (0,10) -- (3,10);                    % vertical ticks along the path\n\\draw[snake=crosses] (0,11) -- (3,11);                  % crosses along the path  \n\\end{tikzpicture}\n",[437,2865,2866,2871,2876,2881,2886,2891,2896,2901,2906,2911,2916,2921,2926,2931,2936],{"__ignoreMap":435},[440,2867,2868],{"class":442,"line":443},[440,2869,2870],{},"\\usetikzlibrary{snakes}\n",[440,2872,2873],{"class":442,"line":749},[440,2874,2875],{},"\\begin{tikzpicture}[thick]\n",[440,2877,2878],{"class":442,"line":773},[440,2879,2880],{},"\\draw[snake=bumps] (0,0) -- (3,0);                          % Semicircle\u002Fbumps along the line.\n",[440,2882,2883],{"class":442,"line":990},[440,2884,2885],{},"\\draw[snake=zigzag] (0,1)-- (3,1);                          % a zig-zag pattern   \n",[440,2887,2888],{"class":442,"line":996},[440,2889,2890],{},"\\draw[snake=saw] (0,2) -- (3,2);                            % saw type line  \n",[440,2892,2893],{"class":442,"line":1002},[440,2894,2895],{},"\\draw[snake=brace] (0,3)-- (3,3);                           % a brace between two points\n",[440,2897,2898],{"class":442,"line":1008},[440,2899,2900],{},"\\draw[snake=coil,segment length=4pt] (0,4)-- (3,4);         % like a coil\n",[440,2902,2903],{"class":442,"line":1014},[440,2904,2905],{},"\\draw[snake=coil,segment aspect=0] (0,5) -- (3,5);          % like a sinusoidal wave\n",[440,2907,2908],{"class":442,"line":2540},[440,2909,2910],{},"\\draw[snake=snake] (0,6) -- (3,6);                          % sinusoidal wave (similar to coil)\n",[440,2912,2913],{"class":442,"line":2546},[440,2914,2915],{},"\\draw[snake=expanding waves,segment angle=7] (0,7)-- (3,7); % like a expaning wavefront\n",[440,2917,2918],{"class":442,"line":2724},[440,2919,2920],{},"\\draw[snake=border,segment angle=-45] (0,8) -- (3,8);   % slanted lines along the path\n",[440,2922,2923],{"class":442,"line":2730},[440,2924,2925],{},"\\draw[snake=triangles] (0,9) -- (3,9);                  % Triangles along the path\n",[440,2927,2928],{"class":442,"line":2736},[440,2929,2930],{},"\\draw[snake=ticks] (0,10) -- (3,10);                    % vertical ticks along the path\n",[440,2932,2933],{"class":442,"line":2741},[440,2934,2935],{},"\\draw[snake=crosses] (0,11) -- (3,11);                  % crosses along the path  \n",[440,2937,2938],{"class":442,"line":2747},[440,2939,776],{},[357,2941,2942],{},"Some parameters that influence the nature of curves are:",[1093,2944,2945,2950,2955,2960,2965,2970,2975,2980,2985],{},[724,2946,2947],{},[437,2948,2949],{},"segment amplitude=.4mm",[724,2951,2952],{},[437,2953,2954],{},"segment length=2mm",[724,2956,2957],{},[437,2958,2959],{},"segment object length=.5mm",[724,2961,2962],{},[437,2963,2964],{},"segment angle=20",[724,2966,2967],{},[437,2968,2969],{},"segment aspect=0",[724,2971,2972],{},[437,2973,2974],{},"raise snake=.2mm",[724,2976,2977],{},[437,2978,2979],{},"mirror snake",[724,2981,2982],{},[437,2983,2984],{},"line before snake=1mm, line after snake=1mm, line around snake=1mm",[724,2986,2987],{},[437,2988,2989],{},"gap before snakes=1mm, gap after snakes=1mm, gap around snake=1mm",[940,2991,2993],{"id":2992},"calc-package","Calc package",[357,2995,2996,2997,2999],{},"The calc package can be included using the command ",[437,2998,529],{},". This package can be used to perform simple calculations with coordinates.",[1093,3001,3002],{},[724,3003,3004],{},[727,3005,3006],{},"Coordinate algebra:",[430,3008,3010],{"className":432,"code":3009,"language":434,"meta":435,"style":435},"\\coordinate (A) at (2,3);\n\\coordinate (B) at (1.5,2.5);\n\\coordinate (B) at ($(A) + (B)$)\n\\coordinate (B) at ($(A) - (B)$)\n\\coordinate (B) at ($(A) + 2*(A)$)\n",[437,3011,3012,3017,3022,3027,3032],{"__ignoreMap":435},[440,3013,3014],{"class":442,"line":443},[440,3015,3016],{},"\\coordinate (A) at (2,3);\n",[440,3018,3019],{"class":442,"line":749},[440,3020,3021],{},"\\coordinate (B) at (1.5,2.5);\n",[440,3023,3024],{"class":442,"line":773},[440,3025,3026],{},"\\coordinate (B) at ($(A) + (B)$)\n",[440,3028,3029],{"class":442,"line":990},[440,3030,3031],{},"\\coordinate (B) at ($(A) - (B)$)\n",[440,3033,3034],{"class":442,"line":996},[440,3035,3036],{},"\\coordinate (B) at ($(A) + 2*(A)$)\n",[1093,3038,3039],{},[724,3040,3041],{},[727,3042,3043],{},"Finding midpoints:",[430,3045,3047],{"className":432,"code":3046,"language":434,"meta":435,"style":435},"\\coordinate (A) at (0,0);\n\\coordinate (B) at (90:3);\n\\coordinate (C) at (0:4);\n\\coordinate (Ap) at ($(B)!0.5!(C)$);\n\\coordinate (Bp) at ($(A)!0.5!(C)$);\n\\coordinate (Cp) at ($(A)!0.5!(B)$);\n\\draw (A)--(B)--(C)--cycle\n      (A)--(Ap) \n      (B)--(Bp) \n      (C)--(Cp);\n",[437,3048,3049,3054,3059,3064,3069,3074,3079,3084,3089,3094],{"__ignoreMap":435},[440,3050,3051],{"class":442,"line":443},[440,3052,3053],{},"\\coordinate (A) at (0,0);\n",[440,3055,3056],{"class":442,"line":749},[440,3057,3058],{},"\\coordinate (B) at (90:3);\n",[440,3060,3061],{"class":442,"line":773},[440,3062,3063],{},"\\coordinate (C) at (0:4);\n",[440,3065,3066],{"class":442,"line":990},[440,3067,3068],{},"\\coordinate (Ap) at ($(B)!0.5!(C)$);\n",[440,3070,3071],{"class":442,"line":996},[440,3072,3073],{},"\\coordinate (Bp) at ($(A)!0.5!(C)$);\n",[440,3075,3076],{"class":442,"line":1002},[440,3077,3078],{},"\\coordinate (Cp) at ($(A)!0.5!(B)$);\n",[440,3080,3081],{"class":442,"line":1008},[440,3082,3083],{},"\\draw (A)--(B)--(C)--cycle\n",[440,3085,3086],{"class":442,"line":1014},[440,3087,3088],{},"      (A)--(Ap) \n",[440,3090,3091],{"class":442,"line":2540},[440,3092,3093],{},"      (B)--(Bp) \n",[440,3095,3096],{"class":442,"line":2546},[440,3097,3098],{},"      (C)--(Cp);\n",[357,3100,3101,3102,3105],{},"A special function ",[437,3103,3104],{},"veclen"," is provided by the package which can be used to calculate the distance between the points:",[430,3107,3109],{"className":432,"code":3108,"language":434,"meta":435,"style":435},"\\usetikzlibrary {calc}\n\\begin{tikzpicture}\n  \\draw [help lines] (0,0) grid (3,3);\n  \\coordinate (a) at (rnd,rnd);\n  \\coordinate (b) at (3-rnd,3-rnd);\n  \\draw (a) -- (b);\n  \\node (c) at (1,2) {x};\n  \\draw let \\p1 = ($ (a)!(c)!(b) - (c) $),\n            \\n1 = {veclen(\\x1,\\y1)}\n        in circle [at=(c), radius=\\n1];\n\\end{tikzpicture}\n",[437,3110,3111,3116,3120,3125,3130,3135,3140,3145,3150,3155,3160],{"__ignoreMap":435},[440,3112,3113],{"class":442,"line":443},[440,3114,3115],{},"\\usetikzlibrary {calc}\n",[440,3117,3118],{"class":442,"line":749},[440,3119,1837],{},[440,3121,3122],{"class":442,"line":773},[440,3123,3124],{},"  \\draw [help lines] (0,0) grid (3,3);\n",[440,3126,3127],{"class":442,"line":990},[440,3128,3129],{},"  \\coordinate (a) at (rnd,rnd);\n",[440,3131,3132],{"class":442,"line":996},[440,3133,3134],{},"  \\coordinate (b) at (3-rnd,3-rnd);\n",[440,3136,3137],{"class":442,"line":1002},[440,3138,3139],{},"  \\draw (a) -- (b);\n",[440,3141,3142],{"class":442,"line":1008},[440,3143,3144],{},"  \\node (c) at (1,2) {x};\n",[440,3146,3147],{"class":442,"line":1014},[440,3148,3149],{},"  \\draw let \\p1 = ($ (a)!(c)!(b) - (c) $),\n",[440,3151,3152],{"class":442,"line":2540},[440,3153,3154],{},"            \\n1 = {veclen(\\x1,\\y1)}\n",[440,3156,3157],{"class":442,"line":2546},[440,3158,3159],{},"        in circle [at=(c), radius=\\n1];\n",[440,3161,3162],{"class":442,"line":2724},[440,3163,776],{},[940,3165,3167],{"id":3166},"intersection-library","Intersection library",[357,3169,3170],{},"This library is used to find the intersection of any two curves:",[430,3172,3174],{"className":432,"code":3173,"language":434,"meta":435,"style":435},"\\usepackage{tikz}\n\\usetikzlibrary{intersections}\n\n\\begin{document}\n\\begin{tikzpicture}\n\\draw[name path=line,smooth] (0,5)--(1.5,5);\n\\draw[name path=curve,smooth] (1.5,6) to[out=270,in=90] (0,3);\n\\draw[name intersections={of=line and curve}] (intersection-1) circle[radius=0.1];\n\\end{tikzpicture}\n\\end{document}\n",[437,3175,3176,3181,3186,3190,3194,3198,3203,3208,3213,3217],{"__ignoreMap":435},[440,3177,3178],{"class":442,"line":443},[440,3179,3180],{},"\\usepackage{tikz}\n",[440,3182,3183],{"class":442,"line":749},[440,3184,3185],{},"\\usetikzlibrary{intersections}\n",[440,3187,3188],{"class":442,"line":773},[440,3189,2702],{"emptyLinePlaceholder":2701},[440,3191,3192],{"class":442,"line":990},[440,3193,2785],{},[440,3195,3196],{"class":442,"line":996},[440,3197,1837],{},[440,3199,3200],{"class":442,"line":1002},[440,3201,3202],{},"\\draw[name path=line,smooth] (0,5)--(1.5,5);\n",[440,3204,3205],{"class":442,"line":1008},[440,3206,3207],{},"\\draw[name path=curve,smooth] (1.5,6) to[out=270,in=90] (0,3);\n",[440,3209,3210],{"class":442,"line":1014},[440,3211,3212],{},"\\draw[name intersections={of=line and curve}] (intersection-1) circle[radius=0.1];\n",[440,3214,3215],{"class":442,"line":2540},[440,3216,776],{},[440,3218,3219],{"class":442,"line":2546},[440,3220,2853],{},[357,3222,3223],{},"Applying intersection with many curves:",[430,3225,3227],{"className":432,"code":3226,"language":434,"meta":435,"style":435},"\\begin{tikzpicture}\n\\draw[name path=grid] [xstep=3,ystep=2] (0,0) grid (9,8);\n\\draw[->, name path=line] (2,1) -- (7,7);\n\\draw[name intersections={of=grid and line, sort by=line, name=i, total=\\t}]\n\\foreach \\s in {1,...,\\t}{(i-\\s) node {\\s} };\n\\end{tikzpicture}\n",[437,3228,3229,3233,3238,3243,3248,3253],{"__ignoreMap":435},[440,3230,3231],{"class":442,"line":443},[440,3232,1837],{},[440,3234,3235],{"class":442,"line":749},[440,3236,3237],{},"\\draw[name path=grid] [xstep=3,ystep=2] (0,0) grid (9,8);\n",[440,3239,3240],{"class":442,"line":773},[440,3241,3242],{},"\\draw[->, name path=line] (2,1) -- (7,7);\n",[440,3244,3245],{"class":442,"line":990},[440,3246,3247],{},"\\draw[name intersections={of=grid and line, sort by=line, name=i, total=\\t}]\n",[440,3249,3250],{"class":442,"line":996},[440,3251,3252],{},"\\foreach \\s in {1,...,\\t}{(i-\\s) node {\\s} };\n",[440,3254,3255],{"class":442,"line":1002},[440,3256,776],{},[940,3258,3260],{"id":3259},"pgf-maths","PGF Maths",[357,3262,3263,3264,3267,3268,3271,3272,3275],{},"A number of mathematical operations can be performed using PGF's math engine (already available once ",[437,3265,3266],{},"tikz"," is loaded), which provides a core command ",[437,3269,3270],{},"\\pgfmathparse"," and returns the result in ",[437,3273,3274],{},"\\pgfmathresult",". A few examples are:",[430,3277,3279],{"className":432,"code":3278,"language":434,"meta":435,"style":435},"\\pgfmathparse{add(75,6)} \\pgfmathresult\n",[437,3280,3281],{"__ignoreMap":435},[440,3282,3283],{"class":442,"line":443},[440,3284,3278],{},[357,3286,3287,3288,3291,3292,889],{},"In above example we have used the function ",[437,3289,3290],{},"add(x,y)",". A substitute for above command is ",[437,3293,3294],{},"\\pgfmathadd{x}{y}",[357,3296,3297],{},"A number of function available, which are provided as following:",[1093,3299,3300,3303,3306,3309,3312,3315,3318,3321,3324,3327,3330,3333],{},[724,3301,3302],{},"add(a,b), subtract (a,b), multiply(a,b), divide(a,b), div(a,b), neg (-a), sqrt(a), pow (a^b), exp(a), ln(a), log10(a), log2(a), abs(a), mod(a,b)",[724,3304,3305],{},"round(a), floor(a), ceil(a), int(a), frac(a)",[724,3307,3308],{},"check for type: isodd(a), iseven(a), isprime(a)",[724,3310,3311],{},"Constants: e, pi",[724,3313,3314],{},"conversion: rad(x), deg(y)",[724,3316,3317],{},"Trigonometric functions: sin(x), cos(x), tan(x), sec(x), cosec(x) , cot(x),",[724,3319,3320],{},"Inverse trigonometric functions: asin(x), acos(x), atan(x)",[724,3322,3323],{},"Comparison: equal(x,y), greater(x,y), less(x,y), notequal(x,y), notgreater(x,y), notless(x,y),",[724,3325,3326],{},"Logical functions: and(x,y), or(x,y), not(x), ifthenelse(x,y,z), and logical constants as-- true, false.",[724,3328,3329],{},"Random no generator: rnd, rand, random(x,y)",[724,3331,3332],{},"Miscellaneous: Minimum\u002FMaximum from an list of elements : min(x1,x2,...,xn), max(x1,x2,...,xn), Length of a vector: veclen(x,y) Access i th element of an given array x: array({x1,x2,x3,...,xn},i)",[724,3334,3335,3336,3339,3340,3343],{},"Computing angles: ",[437,3337,3338],{},"\\pgfmathanglebetweenpoints{P}{Q}"," : Finds the angle of the line passing through the points P to Q. ",[437,3341,3342],{},"\\pgfmathanglebetweenlines{P1}{Q1}{P2}{Q2}"," : Finds the angle between the two lines, L1 and L2, where L1 passing through P1 and Q1, and second line passing through P2 and Q2.",[357,3345,3346],{},"Commands:",[474,3348,3349,3358],{},[477,3350,3351],{},[480,3352,3353,3356],{},[483,3354,3355],{},"Command",[483,3357,488],{},[490,3359,3360,3369,3379,3388,3397,3406,3415,3424],{},[480,3361,3362,3367],{},[495,3363,3364],{},[437,3365,3366],{},"\\pgfmathsetlength{name}{value}",[495,3368],{},[480,3370,3371,3376],{},[495,3372,3373],{},[437,3374,3375],{},"\\pgfmathaddtolength{name}{value}",[495,3377,3378],{},"Set the corresponding \"name\" tex register for given value",[480,3380,3381,3386],{},[495,3382,3383],{},[437,3384,3385],{},"\\pgfmathsetcount{name}{value}",[495,3387],{},[480,3389,3390,3395],{},[495,3391,3392],{},[437,3393,3394],{},"\\pgfmathaddtocount{name}{value}",[495,3396],{},[480,3398,3399,3404],{},[495,3400,3401],{},[437,3402,3403],{},"\\pgfmathsetcounter{name}{value}",[495,3405],{},[480,3407,3408,3413],{},[495,3409,3410],{},[437,3411,3412],{},"\\pgfmathaddtocounter{name}{value}",[495,3414],{},[480,3416,3417,3422],{},[495,3418,3419],{},[437,3420,3421],{},"\\pgfmathsetmacro{name}{value}",[495,3423],{},[480,3425,3426,3431],{},[495,3427,3428],{},[437,3429,3430],{},"\\pgfmathtruncatemacro{name}{value}",[495,3432],{},[419,3434,3436],{"id":3435},"pgf-plots","PGF Plots",[357,3438,3439],{},"PGF also has a math engine which enables you to plot functions:",[430,3441,3443],{"className":432,"code":3442,"language":434,"meta":435,"style":435},"\\draw [domain=xmin:xmax] plot (\\x, {function});\n",[437,3444,3445],{"__ignoreMap":435},[440,3446,3447],{"class":442,"line":443},[440,3448,3442],{},[357,3450,3451],{},"Many functions are possible, including factorial(\\x), sqrt(\\x), pow(\\x,y), exp(\\x), ln(\\x), log10(\\x), log2(\\x), abs(\\x), mod(\\x,y), round(\\x), floor(\\x), ceil(\\x), sin(\\x), cos(\\x), tan(\\x), min(\\x,y,), and max(\\x,y).",[357,3453,876],{},[721,3455,3456,3459],{},[724,3457,3458],{},"The trigonometric functions assume that x is in degrees; to express x in radians follow it with the notation \"r\", e.g., sin(\\x r).",[724,3460,3461,3462,3465,3466,3469],{},"Two useful constants are e =2.718281828, and pi = 3.141592654 can be specified directly using ",[437,3463,3464],{},"e"," and ",[437,3467,3468],{},"pi"," in the expression.",[357,3471,3472],{},"An example with two functions:",[430,3474,3476],{"className":432,"code":3475,"language":434,"meta":435,"style":435},"\\draw [help lines] (-2,0) grid (2,4); \n\\draw [->] (-2.2,0) -- (2.2,0); \n\\draw [->] (0,0) -- (0,4.2); \n\\draw [green, thick, domain=-2:2] plot (\\x, {4-\\x*\\x}); \n\\draw [domain=-2:2, samples=50] plot (\\x, {1+cos(pi*\\x r)});\n",[437,3477,3478,3483,3488,3493,3498],{"__ignoreMap":435},[440,3479,3480],{"class":442,"line":443},[440,3481,3482],{},"\\draw [help lines] (-2,0) grid (2,4); \n",[440,3484,3485],{"class":442,"line":749},[440,3486,3487],{},"\\draw [->] (-2.2,0) -- (2.2,0); \n",[440,3489,3490],{"class":442,"line":773},[440,3491,3492],{},"\\draw [->] (0,0) -- (0,4.2); \n",[440,3494,3495],{"class":442,"line":990},[440,3496,3497],{},"\\draw [green, thick, domain=-2:2] plot (\\x, {4-\\x*\\x}); \n",[440,3499,3500],{"class":442,"line":996},[440,3501,3502],{},"\\draw [domain=-2:2, samples=50] plot (\\x, {1+cos(pi*\\x r)});\n",[419,3504,3506],{"id":3505},"examples","Examples",[940,3508,3510],{"id":3509},"example-1","Example 1",[430,3512,3514],{"className":432,"code":3513,"language":434,"meta":435,"style":435},"\\documentclass{article}\n\\usepackage{tikz}\n\\begin{document}\n  \\begin{tikzpicture}\n  \\draw[thick,rounded corners=8pt] (0,0) -- (0,2) -- (1,3.25) \n   -- (2,2) -- (2,0) -- (0,2) -- (2,2) -- (0,0) -- (2,0);\n  \\end{tikzpicture}\n\\end{document}\n",[437,3515,3516,3521,3525,3529,3534,3539,3544,3549],{"__ignoreMap":435},[440,3517,3518],{"class":442,"line":443},[440,3519,3520],{},"\\documentclass{article}\n",[440,3522,3523],{"class":442,"line":749},[440,3524,3180],{},[440,3526,3527],{"class":442,"line":773},[440,3528,2785],{},[440,3530,3531],{"class":442,"line":990},[440,3532,3533],{},"  \\begin{tikzpicture}\n",[440,3535,3536],{"class":442,"line":996},[440,3537,3538],{},"  \\draw[thick,rounded corners=8pt] (0,0) -- (0,2) -- (1,3.25) \n",[440,3540,3541],{"class":442,"line":1002},[440,3542,3543],{},"   -- (2,2) -- (2,0) -- (0,2) -- (2,2) -- (0,0) -- (2,0);\n",[440,3545,3546],{"class":442,"line":1008},[440,3547,3548],{},"  \\end{tikzpicture}\n",[440,3550,3551],{"class":442,"line":1014},[440,3552,2853],{},[940,3554,3556],{"id":3555},"example-2","Example 2",[430,3558,3560],{"className":432,"code":3559,"language":434,"meta":435,"style":435},"\\documentclass{article}\n\\usepackage{tikz}\n\\begin{document}\n \\begin{tikzpicture}[scale=3]\n \\draw[step=.5cm, gray, very thin] (-1.2,-1.2) grid (1.2,1.2); \n \\filldraw[fill=green!20,draw=green!50!black] (0,0) -- (3mm,0mm) arc (0:30:3mm) -- cycle; \n \\draw[->] (-1.25,0) -- (1.25,0) coordinate (x axis);\n \\draw[->] (0,-1.25) -- (0,1.25) coordinate (y axis);\n \\draw (0,0) circle (1cm);\n \\draw[very thick,red] (30:1cm) -- node[left,fill=white] {$\\sin \\alpha$} (30:1cm |- x axis);\n \\draw[very thick,blue] (30:1cm |- x axis) -- node[below=2pt,fill=white] {$\\cos \\alpha$} (0,0);\n \\draw (0,0) -- (30:1cm);\n \\foreach \\x\u002F\\xtext in {-1, -0.5\u002F-\\frac{1}{2}, 1} \n   \\draw (\\x cm,1pt) -- (\\x cm,-1pt) node[anchor=north,fill=white] {$\\xtext$};\n \\foreach \\y\u002F\\ytext in {-1, -0.5\u002F-\\frac{1}{2}, 0.5\u002F\\frac{1}{2}, 1} \n   \\draw (1pt,\\y cm) -- (-1pt,\\y cm) node[anchor=east,fill=white] {$\\ytext$};\n \\end{tikzpicture}\n\\end{document}\n",[437,3561,3562,3566,3570,3574,3579,3584,3589,3594,3599,3604,3609,3614,3619,3624,3629,3634,3639,3644],{"__ignoreMap":435},[440,3563,3564],{"class":442,"line":443},[440,3565,3520],{},[440,3567,3568],{"class":442,"line":749},[440,3569,3180],{},[440,3571,3572],{"class":442,"line":773},[440,3573,2785],{},[440,3575,3576],{"class":442,"line":990},[440,3577,3578],{}," \\begin{tikzpicture}[scale=3]\n",[440,3580,3581],{"class":442,"line":996},[440,3582,3583],{}," \\draw[step=.5cm, gray, very thin] (-1.2,-1.2) grid (1.2,1.2); \n",[440,3585,3586],{"class":442,"line":1002},[440,3587,3588],{}," \\filldraw[fill=green!20,draw=green!50!black] (0,0) -- (3mm,0mm) arc (0:30:3mm) -- cycle; \n",[440,3590,3591],{"class":442,"line":1008},[440,3592,3593],{}," \\draw[->] (-1.25,0) -- (1.25,0) coordinate (x axis);\n",[440,3595,3596],{"class":442,"line":1014},[440,3597,3598],{}," \\draw[->] (0,-1.25) -- (0,1.25) coordinate (y axis);\n",[440,3600,3601],{"class":442,"line":2540},[440,3602,3603],{}," \\draw (0,0) circle (1cm);\n",[440,3605,3606],{"class":442,"line":2546},[440,3607,3608],{}," \\draw[very thick,red] (30:1cm) -- node[left,fill=white] {$\\sin \\alpha$} (30:1cm |- x axis);\n",[440,3610,3611],{"class":442,"line":2724},[440,3612,3613],{}," \\draw[very thick,blue] (30:1cm |- x axis) -- node[below=2pt,fill=white] {$\\cos \\alpha$} (0,0);\n",[440,3615,3616],{"class":442,"line":2730},[440,3617,3618],{}," \\draw (0,0) -- (30:1cm);\n",[440,3620,3621],{"class":442,"line":2736},[440,3622,3623],{}," \\foreach \\x\u002F\\xtext in {-1, -0.5\u002F-\\frac{1}{2}, 1} \n",[440,3625,3626],{"class":442,"line":2741},[440,3627,3628],{},"   \\draw (\\x cm,1pt) -- (\\x cm,-1pt) node[anchor=north,fill=white] {$\\xtext$};\n",[440,3630,3631],{"class":442,"line":2747},[440,3632,3633],{}," \\foreach \\y\u002F\\ytext in {-1, -0.5\u002F-\\frac{1}{2}, 0.5\u002F\\frac{1}{2}, 1} \n",[440,3635,3636],{"class":442,"line":2753},[440,3637,3638],{},"   \\draw (1pt,\\y cm) -- (-1pt,\\y cm) node[anchor=east,fill=white] {$\\ytext$};\n",[440,3640,3641],{"class":442,"line":2850},[440,3642,3643],{}," \\end{tikzpicture}\n",[440,3645,3647],{"class":442,"line":3646},18,[440,3648,2853],{},[940,3650,3652],{"id":3651},"example-3-a-torus","Example 3: A Torus",[430,3654,3656],{"className":432,"code":3655,"language":434,"meta":435,"style":435},"\\documentclass{article}\n\\usepackage{tikz}\n\\begin{document}\n \\begin{tikzpicture}\n  \\draw (-1,0) to[bend left] (1,0);\n  \\draw (-1.2,.1) to[bend right] (1.2,.1);\n  \\draw[rotate=0] (0,0) ellipse (100pt and 50pt);\n\\end{tikzpicture}\n\\end{document}\n",[437,3657,3658,3662,3666,3670,3675,3680,3685,3690,3694],{"__ignoreMap":435},[440,3659,3660],{"class":442,"line":443},[440,3661,3520],{},[440,3663,3664],{"class":442,"line":749},[440,3665,3180],{},[440,3667,3668],{"class":442,"line":773},[440,3669,2785],{},[440,3671,3672],{"class":442,"line":990},[440,3673,3674],{}," \\begin{tikzpicture}\n",[440,3676,3677],{"class":442,"line":996},[440,3678,3679],{},"  \\draw (-1,0) to[bend left] (1,0);\n",[440,3681,3682],{"class":442,"line":1002},[440,3683,3684],{},"  \\draw (-1.2,.1) to[bend right] (1.2,.1);\n",[440,3686,3687],{"class":442,"line":1008},[440,3688,3689],{},"  \\draw[rotate=0] (0,0) ellipse (100pt and 50pt);\n",[440,3691,3692],{"class":442,"line":1014},[440,3693,776],{},[440,3695,3696],{"class":442,"line":2540},[440,3697,2853],{},[940,3699,3701],{"id":3700},"example-4-some-functions","Example 4: Some functions",[430,3703,3705],{"className":432,"code":3704,"language":434,"meta":435,"style":435},"\\documentclass{article}\n\\usepackage{tikz}\n\\begin{document}\n  \\begin{tikzpicture}[domain=0:4] \n    \\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);\n    \\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$}; \n    \\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};\n    \\draw[color=red]    plot (\\x,\\x)             node[right] {$f(x) =x$}; \n    \\draw[color=blue]   plot (\\x,{sin(\\x r)})    node[right] {$f(x) = \\sin x$}; \n    \\draw[color=orange] plot (\\x,{0.05*exp(\\x)}) node[right] {$f(x) = \\frac{1}{20} \\mathrm e^x$};\n  \\end{tikzpicture}\n\\end{document}\n",[437,3706,3707,3711,3715,3719,3724,3729,3734,3739,3744,3749,3754,3758],{"__ignoreMap":435},[440,3708,3709],{"class":442,"line":443},[440,3710,3520],{},[440,3712,3713],{"class":442,"line":749},[440,3714,3180],{},[440,3716,3717],{"class":442,"line":773},[440,3718,2785],{},[440,3720,3721],{"class":442,"line":990},[440,3722,3723],{},"  \\begin{tikzpicture}[domain=0:4] \n",[440,3725,3726],{"class":442,"line":996},[440,3727,3728],{},"    \\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);\n",[440,3730,3731],{"class":442,"line":1002},[440,3732,3733],{},"    \\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$}; \n",[440,3735,3736],{"class":442,"line":1008},[440,3737,3738],{},"    \\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};\n",[440,3740,3741],{"class":442,"line":1014},[440,3742,3743],{},"    \\draw[color=red]    plot (\\x,\\x)             node[right] {$f(x) =x$}; \n",[440,3745,3746],{"class":442,"line":2540},[440,3747,3748],{},"    \\draw[color=blue]   plot (\\x,{sin(\\x r)})    node[right] {$f(x) = \\sin x$}; \n",[440,3750,3751],{"class":442,"line":2546},[440,3752,3753],{},"    \\draw[color=orange] plot (\\x,{0.05*exp(\\x)}) node[right] {$f(x) = \\frac{1}{20} \\mathrm e^x$};\n",[440,3755,3756],{"class":442,"line":2724},[440,3757,3548],{},[440,3759,3760],{"class":442,"line":2730},[440,3761,2853],{},[419,3763,3765],{"id":3764},"references","References",[1093,3767,3768,3774],{},[724,3769,3770],{},[412,3771,3772],{"href":3772,"rel":3773},"https:\u002F\u002Ftikz.dev\u002F",[416],[724,3775,3776],{},[412,3777,3778],{"href":3778,"rel":3779},"http:\u002F\u002Ftug.ctan.org\u002Finfo\u002Fvisualtikz\u002FVisualTikZ.pdf",[416],[3781,3782,3783],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":435,"searchDepth":749,"depth":749,"links":3785},[3786,3787,3788,3789,3797,3803,3804,3805,3817,3818,3824],{"id":421,"depth":749,"text":422},{"id":715,"depth":749,"text":716},{"id":803,"depth":749,"text":804},{"id":922,"depth":749,"text":923,"children":3790},[3791,3792,3793,3794,3795,3796],{"id":942,"depth":773,"text":943},{"id":1048,"depth":773,"text":1049},{"id":1074,"depth":773,"text":1075},{"id":1133,"depth":773,"text":1134},{"id":1172,"depth":773,"text":1173},{"id":1194,"depth":773,"text":1195},{"id":1243,"depth":749,"text":1244,"children":3798},[3799,3800,3801,3802],{"id":1250,"depth":773,"text":1251},{"id":1326,"depth":773,"text":1327},{"id":1398,"depth":773,"text":1399},{"id":1564,"depth":773,"text":1565},{"id":1779,"depth":749,"text":1780},{"id":2388,"depth":749,"text":2389},{"id":2418,"depth":749,"text":2419,"children":3806},[3807,3808,3809,3810,3811,3812,3813,3814,3815,3816],{"id":2422,"depth":773,"text":2423},{"id":2493,"depth":773,"text":2494},{"id":2551,"depth":773,"text":2552},{"id":2576,"depth":773,"text":2577},{"id":2651,"depth":773,"text":2652},{"id":2758,"depth":773,"text":2759},{"id":2856,"depth":773,"text":2857},{"id":2992,"depth":773,"text":2993},{"id":3166,"depth":773,"text":3167},{"id":3259,"depth":773,"text":3260},{"id":3435,"depth":749,"text":3436},{"id":3505,"depth":749,"text":3506,"children":3819},[3820,3821,3822,3823],{"id":3509,"depth":773,"text":3510},{"id":3555,"depth":773,"text":3556},{"id":3651,"depth":773,"text":3652},{"id":3700,"depth":773,"text":3701},{"id":3764,"depth":749,"text":3765},"Learn to create portable diagrams and illustrations directly in LaTeX with the PGF\u002FTikZ graphics system.","md",null,{},{"title":132,"description":3825},"LZRLcFPi2VCa8ogmx1lDMv-LUeCmHustuNEfWQQ8MSQ",[3832,3834],{"title":128,"path":129,"stem":130,"description":3833,"children":-1},"Learn how to create graphics directly in LaTeX documents using procedural graphics methods",{"title":136,"path":137,"stem":138,"description":3835,"children":-1},"Learn to create PostScript-based graphics with PSTricks and choose a compatible modern LaTeX build workflow.",1785155508382]