[{"data":1,"prerenderedAt":1847},["ShallowReactive",2],{"navigation_docs":3,"-tables-and-graphics-pstricks":351,"-tables-and-graphics-pstricks-surround":1842},[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":136,"body":353,"description":1836,"extension":1837,"links":1838,"meta":1839,"navigation":976,"path":137,"seo":1840,"stem":138,"__hash__":1841},"docs\u002F05.tables-and-graphics\u002F06.pstricks.md",{"type":354,"value":355,"toc":1809},"minimark",[356,360,363,368,376,381,488,492,520,524,531,551,554,557,575,591,595,599,602,611,614,623,626,635,638,647,650,659,663,678,681,690,694,700,709,716,720,723,726,735,738,747,750,759,763,772,779,790,800,804,807,816,819,828,831,840,843,855,862,871,878,881,925,928,937,944,953,960,962,1005,1009,1023,1145,1147,1156,1160,1163,1178,1189,1192,1216,1218,1246,1250,1254,1257,1339,1342,1351,1354,1369,1372,1387,1392,1396,1403,1438,1440,1449,1453,1456,1492,1494,1503,1507,1515,1517,1540,1542,1564,1570,1579,1584,1593,1600,1615,1619,1629,1633,1654,1660,1662,1795,1805],[357,358,359],"p",{},"PSTricks is a set of extensions. The base package is pstricks, other packages may be loaded when required.",[357,361,362],{},"The xcolor extension gets loaded along PSTricks, so there is no need to load it manually.",[364,365,367],"h2",{"id":366},"compilation-methods","Compilation Methods",[357,369,370,371,375],{},"PSTricks uses PostScript internally, which historically required the ",[372,373,374],"code",{},"dvips"," pipeline. However, several modern options exist:",[377,378,380],"h3",{"id":379},"modern-options-recommended","Modern Options (Recommended)",[382,383,384,434,456],"ol",{},[385,386,387,393,394,397,398,414],"li",{},[388,389,390],"strong",{},[372,391,392],{},"auto-pst-pdf"," — Generate and include PDF versions of PSTricks graphics when compiling with pdfLaTeX. It invokes external tools, so compile with ",[372,395,396],{},"--shell-escape",":",[399,400,405],"pre",{"className":401,"code":402,"language":403,"meta":404,"style":404},"language-latex shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\\usepackage{auto-pst-pdf}\n","latex","",[372,406,407],{"__ignoreMap":404},[408,409,412],"span",{"class":410,"line":411},"line",1,[408,413,402],{},[399,415,419],{"className":416,"code":417,"language":418,"meta":404,"style":404},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pdflatex --shell-escape filename.tex\n","bash",[372,420,421],{"__ignoreMap":404},[408,422,423,427,431],{"class":410,"line":411},[408,424,426],{"class":425},"sBMFI","pdflatex",[408,428,430],{"class":429},"sfazB"," --shell-escape",[408,432,433],{"class":429}," filename.tex\n",[385,435,436,439,440,443,444],{},[388,437,438],{},"XeLaTeX"," — Current TeX distributions include the ",[372,441,442],{},"xetex-pstricks"," driver configuration, allowing PSTricks to work automatically with XeLaTeX:",[399,445,447],{"className":416,"code":446,"language":418,"meta":404,"style":404},"xelatex filename.tex\n",[372,448,449],{"__ignoreMap":404},[408,450,451,454],{"class":410,"line":411},[408,452,453],{"class":425},"xelatex",[408,455,433],{"class":429},[385,457,458,464,465,474],{},[388,459,460,461],{},"LuaLaTeX with ",[372,462,463],{},"auto-pst-pdf-lua"," — LuaLaTeX does not process PostScript drawings by itself. Load the Lua-specific conversion wrapper and enable shell escape:",[399,466,468],{"className":401,"code":467,"language":403,"meta":404,"style":404},"\\usepackage{auto-pst-pdf-lua}\n",[372,469,470],{"__ignoreMap":404},[408,471,472],{"class":410,"line":411},[408,473,467],{},[399,475,477],{"className":416,"code":476,"language":418,"meta":404,"style":404},"lualatex --shell-escape filename.tex\n",[372,478,479],{"__ignoreMap":404},[408,480,481,484,486],{"class":410,"line":411},[408,482,483],{"class":425},"lualatex",[408,485,430],{"class":429},[408,487,433],{"class":429},[377,489,491],{"id":490},"traditional-method","Traditional Method",[399,493,495],{"className":416,"code":494,"language":418,"meta":404,"style":404},"latex filename.tex\ndvips filename.dvi\nps2pdf filename.ps\n",[372,496,497,503,511],{"__ignoreMap":404},[408,498,499,501],{"class":410,"line":411},[408,500,403],{"class":425},[408,502,433],{"class":429},[408,504,506,508],{"class":410,"line":505},2,[408,507,374],{"class":425},[408,509,510],{"class":429}," filename.dvi\n",[408,512,514,517],{"class":410,"line":513},3,[408,515,516],{"class":425},"ps2pdf",[408,518,519],{"class":429}," filename.ps\n",[364,521,523],{"id":522},"the-pspicture-environment","The pspicture environment",[357,525,526,527,530],{},"PSTricks commands are usually placed in a ",[372,528,529],{},"pspicture"," environment.",[399,532,534],{"className":401,"code":533,"language":403,"meta":404,"style":404},"\\begin{pspicture}(x1,y1)\n% ...\n\\end{pspicture}\n",[372,535,536,541,546],{"__ignoreMap":404},[408,537,538],{"class":410,"line":411},[408,539,540],{},"\\begin{pspicture}(x1,y1)\n",[408,542,543],{"class":410,"line":505},[408,544,545],{},"% ...\n",[408,547,548],{"class":410,"line":513},[408,549,550],{},"\\end{pspicture}\n",[357,552,553],{},"The first argument between parentheses specifies the coordinates of the upper-right corner of the picture. The bottom-left corner is at (0,0) and is placed at the reference point of the next character in the LaTeX document.",[357,555,556],{},"It is also possible to specify the coordinates (x0,y0) of the bottom-left corner:",[399,558,560],{"className":401,"code":559,"language":403,"meta":404,"style":404},"\\begin{pspicture}(x0,y0)(x1,y1)\n% ...\n\\end{pspicture}\n",[372,561,562,567,571],{"__ignoreMap":404},[408,563,564],{"class":410,"line":411},[408,565,566],{},"\\begin{pspicture}(x0,y0)(x1,y1)\n",[408,568,569],{"class":410,"line":505},[408,570,545],{},[408,572,573],{"class":410,"line":513},[408,574,550],{},[357,576,577,578,582,583,586,587,590],{},"Thus the size of the picture is ",[579,580,581],"em",{},"(x1–x0) × (y1–y0)",". The default unit for coordinates is centimeters (cm); this can be changed with ",[372,584,585],{},"\\psset",", as in ",[372,588,589],{},"\\psset{unit=1bp}",". Any TeX dimension is allowed.",[364,592,594],{"id":593},"fundamental-objects","Fundamental objects",[377,596,598],{"id":597},"lines-and-polylines","Lines and polylines",[357,600,601],{},"A simple line gets printed with",[399,603,605],{"className":401,"code":604,"language":403,"meta":404,"style":404},"\\psline(x0,y0)(x1,y1)\n",[372,606,607],{"__ignoreMap":404},[408,608,609],{"class":410,"line":411},[408,610,604],{},[357,612,613],{},"To get a vector, add an arrow as parameter:",[399,615,617],{"className":401,"code":616,"language":403,"meta":404,"style":404},"\\psline{->}(x0,y0)(x1,y1)\n",[372,618,619],{"__ignoreMap":404},[408,620,621],{"class":410,"line":411},[408,622,616],{},[357,624,625],{},"You can add as many points as you want to get a polyline:",[399,627,629],{"className":401,"code":628,"language":403,"meta":404,"style":404},"\\psline(x0,y0)(x1,y1)(x2,y3)…(xn,yn)\n",[372,630,631],{"__ignoreMap":404},[408,632,633],{"class":410,"line":411},[408,634,628],{},[357,636,637],{},"To get rounded corners, add the following option:",[399,639,641],{"className":401,"code":640,"language":403,"meta":404,"style":404},"\\psline[linearc=0.2]{->}(0,0)(2,1)(1,1)\n",[372,642,643],{"__ignoreMap":404},[408,644,645],{"class":410,"line":411},[408,646,640],{},[357,648,649],{},"or",[399,651,653],{"className":401,"code":652,"language":403,"meta":404,"style":404},"\\psline[linearc=0.2,arrows=->](0,0)(2,1)(1,1)\n",[372,654,655],{"__ignoreMap":404},[408,656,657],{"class":410,"line":411},[408,658,652],{},[377,660,662],{"id":661},"rectangles","Rectangles",[399,664,666],{"className":401,"code":665,"language":403,"meta":404,"style":404},"\\psframe(x0,y0)(x1,y1)\n\\psframe*(x0,y0)(x1,y1)\n",[372,667,668,673],{"__ignoreMap":404},[408,669,670],{"class":410,"line":411},[408,671,672],{},"\\psframe(x0,y0)(x1,y1)\n",[408,674,675],{"class":410,"line":505},[408,676,677],{},"\\psframe*(x0,y0)(x1,y1)\n",[357,679,680],{},"The starred version prints a filled rectangle. Use the following parameter to get rounded corners:",[399,682,684],{"className":401,"code":683,"language":403,"meta":404,"style":404},"\\psframe[framearc=0.2](x0,y0)(x1,y1)\n",[372,685,686],{"__ignoreMap":404},[408,687,688],{"class":410,"line":411},[408,689,683],{},[377,691,693],{"id":692},"polygons","Polygons",[357,695,696,697,397],{},"Polygons are always closed. The syntax is the same as for ",[372,698,699],{},"\\psline",[399,701,703],{"className":401,"code":702,"language":403,"meta":404,"style":404},"\\pspolygon(x0,y0)(x1,y1)(x2,y2)...(xn,yn)\n",[372,704,705],{"__ignoreMap":404},[408,706,707],{"class":410,"line":411},[408,708,702],{},[357,710,711,712,715],{},"As for rectangles, the starred version prints a filled polygon. And the ",[372,713,714],{},"linearc=0.2"," option will print rounded corners.",[377,717,719],{"id":718},"circles-arc-and-ellipses","Circles, arc and ellipses",[357,721,722],{},"Starred version fills the shape.",[357,724,725],{},"For circles, you need to provide center coordinates and radius:",[399,727,729],{"className":401,"code":728,"language":403,"meta":404,"style":404},"\\pscircle(x,y){r}\n",[372,730,731],{"__ignoreMap":404},[408,732,733],{"class":410,"line":411},[408,734,728],{},[357,736,737],{},"To restrict the drawing to an arc, append the starting and ending angles in trigonometric notation:",[399,739,741],{"className":401,"code":740,"language":403,"meta":404,"style":404},"\\psarc(x,y){r}{angle1}{angle2}\n",[372,742,743],{"__ignoreMap":404},[408,744,745],{"class":410,"line":411},[408,746,740],{},[357,748,749],{},"Finally, ellipses:",[399,751,753],{"className":401,"code":752,"language":403,"meta":404,"style":404},"\\psellipse(x,y)(horizontal_axis,vertical_axis)\n",[372,754,755],{"__ignoreMap":404},[408,756,757],{"class":410,"line":411},[408,758,752],{},[377,760,762],{"id":761},"curves","Curves",[399,764,766],{"className":401,"code":765,"language":403,"meta":404,"style":404},"\\psparabola(x0,y0)(x1,y1)\n",[372,767,768],{"__ignoreMap":404},[408,769,770],{"class":410,"line":411},[408,771,765],{},[357,773,774,775,778],{},"will print a symmetric parabola with vertical asymptote, vertex ",[579,776,777],{},"(x1,y1)"," and ending at (x0,y0).",[357,780,781,782,785,786,789],{},"Use ",[372,783,784],{},"\\psbezier"," to print a Bézier curve with an arbitrary number of control points. Arcs have at most 4 control points. Use the ",[372,787,788],{},"showpoints=true"," option to print the control points and the tangents.",[357,791,781,792,795,796,799],{},[372,793,794],{},"\\pscurve"," to print the interpolation of the given points. The ",[372,797,798],{},"\\psecurve"," command omits the first and the last arcs.",[364,801,803],{"id":802},"text","Text",[357,805,806],{},"Use",[399,808,810],{"className":401,"code":809,"language":403,"meta":404,"style":404},"\\rput(x,y){text}\n",[372,811,812],{"__ignoreMap":404},[408,813,814],{"class":410,"line":411},[408,815,809],{},[357,817,818],{},"to print text. Provide an angle to rotate the text.",[399,820,822],{"className":401,"code":821,"language":403,"meta":404,"style":404},"\\rput{angle}(x,y){text}\n",[372,823,824],{"__ignoreMap":404},[408,825,826],{"class":410,"line":411},[408,827,821],{},[357,829,830],{},"You can provide the anchor of the text which will be at the specified coordinate.",[399,832,834],{"className":401,"code":833,"language":403,"meta":404,"style":404},"\\rput[t]{45}(5,5){text}\n",[372,835,836],{"__ignoreMap":404},[408,837,838],{"class":410,"line":411},[408,839,833],{},[357,841,842],{},"Available anchors:",[844,845,846,849,852],"ul",{},[385,847,848],{},"B, Bl, Br: baseline center, left and right.",[385,850,851],{},"t, tl, tr: top center, left and right.",[385,853,854],{},"b, bl, br: bottom center, left and right.",[357,856,857,858,861],{},"There is also the ",[372,859,860],{},"\\uput"," command with further options:",[399,863,865],{"className":401,"code":864,"language":403,"meta":404,"style":404},"\\uput{distance}[angle](x,y){text}\n",[372,866,867],{"__ignoreMap":404},[408,868,869],{"class":410,"line":411},[408,870,864],{},[357,872,873,874,877],{},"The ",[372,875,876],{},"distance"," parameter is the distance from the coordinate.",[357,879,880],{},"PSTricks features several frame styles for text:",[844,882,883,889,895,901,907,913,919],{},[385,884,885,888],{},[372,886,887],{},"\\psframebox{text}",": rectangle.",[385,890,891,894],{},[372,892,893],{},"\\psdblframebox{text}",": double rectangle.",[385,896,897,900],{},[372,898,899],{},"\\psshadowbox{text}",": shaded rectangle.",[385,902,903,906],{},[372,904,905],{},"\\pscirclebox{text}",": circle.",[385,908,909,912],{},[372,910,911],{},"\\psovalbox{text}",": oval.",[385,914,915,918],{},[372,916,917],{},"\\psdiabox{text}",": diamond.",[385,920,921,924],{},[372,922,923],{},"\\pstribox{text}",": triangle.",[357,926,927],{},"Example:",[399,929,931],{"className":401,"code":930,"language":403,"meta":404,"style":404},"\\rput(5,5){\\psdiabox*[fillcolor=green]{text} }\n",[372,932,933],{"__ignoreMap":404},[408,934,935],{"class":410,"line":411},[408,936,930],{},[357,938,939,940,943],{},"Using the ",[372,941,942],{},"pst-text"," extension, it is possible to draw a text path.",[399,945,947],{"className":401,"code":946,"language":403,"meta":404,"style":404},"\\pstextpath{shape}{text}\n",[372,948,949],{"__ignoreMap":404},[408,950,951],{"class":410,"line":411},[408,952,946],{},[357,954,955,956,959],{},"To print a text following a path without printing the path, you need to use ",[372,957,958],{},"\\psset{linestyle=none}",".",[357,961,927],{},[399,963,965],{"className":401,"code":964,"language":403,"meta":404,"style":404},"\\usepackage{pst-text}\n\n% ...\n\\begin{pspicture}(5,5)\n\\psset{linestyle=none}\n\\pstextpath{\\psline(0,0)(1,1)(2,0)}{triangle text}\n\\end{pspicture}\n",[372,966,967,972,978,982,988,994,1000],{"__ignoreMap":404},[408,968,969],{"class":410,"line":411},[408,970,971],{},"\\usepackage{pst-text}\n",[408,973,974],{"class":410,"line":505},[408,975,977],{"emptyLinePlaceholder":976},true,"\n",[408,979,980],{"class":410,"line":513},[408,981,545],{},[408,983,985],{"class":410,"line":984},4,[408,986,987],{},"\\begin{pspicture}(5,5)\n",[408,989,991],{"class":410,"line":990},5,[408,992,993],{},"\\psset{linestyle=none}\n",[408,995,997],{"class":410,"line":996},6,[408,998,999],{},"\\pstextpath{\\psline(0,0)(1,1)(2,0)}{triangle text}\n",[408,1001,1003],{"class":410,"line":1002},7,[408,1004,550],{},[364,1006,1008],{"id":1007},"grids","Grids",[357,1010,1011,1012,1015,1016,1018,1019,1022],{},"Without any parameter, the ",[372,1013,1014],{},"\\psgrid"," command will print a grid all over the ",[579,1017,529],{},", with a spacing of 0.2 (",[579,1020,1021],{},"i.e."," 2mm). You can specify parameters:",[844,1024,1025,1038,1048,1061,1071,1081,1087,1093,1099,1105,1111,1125],{},[385,1026,1027,1030,1031,1034,1035,959],{},[372,1028,1029],{},"\\psgrid(xmax,ymax)",": prints a grid from ",[579,1032,1033],{},"(0,0)"," to ",[579,1036,1037],{},"(xmax,ymax)",[385,1039,1040,1030,1043,1034,1046,959],{},[372,1041,1042],{},"\\psgrid(xmin,ymin)(xmax,ymax)",[579,1044,1045],{},"(xmin,ymin)",[579,1047,1037],{},[385,1049,1050,1030,1053,1034,1055,1057,1058,959],{},[372,1051,1052],{},"\\psgrid(x0,y0)(xmin,ymin)(xmax,ymax)",[579,1054,1045],{},[579,1056,1037],{},", one of the node is at ",[579,1059,1060],{},"(x0,y0)",[385,1062,1063,1066,1067,1070],{},[372,1064,1065],{},"griddots=value",": the full line of the main graduations is replaced by a dotted line. The ",[579,1068,1069],{},"value"," is the number of dots per graduation.",[385,1072,1073,1076,1077,1080],{},[372,1074,1075],{},"subgriddots=value",": same as ",[372,1078,1079],{},"griddots"," but for sub-graduations.",[385,1082,1083,1086],{},[372,1084,1085],{},"gridcolor=color,subgridcolor=color",": color of graduations and sub-graduations.",[385,1088,1089,1092],{},[372,1090,1091],{},"gridwidth=value,subgridwidth=value",": width of the lines.",[385,1094,1095,1098],{},[372,1096,1097],{},"subgriddiv=value",": number of subgraduations between two main graduations.",[385,1100,1101,1104],{},[372,1102,1103],{},"gridlabels=value",": size of the label numbers.",[385,1106,1107,1110],{},[372,1108,1109],{},"ticksize=value",": self-explanatory.",[385,1112,1113,1116,1117,1120,1121,1124],{},[372,1114,1115],{},"ticksize=valueneg valuepos",": same as above, but ",[579,1118,1119],{},"valueneg"," specifies the size for negative coordinates, ",[579,1122,1123],{},"valuepos"," for positive coordinates.",[385,1126,1127,1130,1131,1133,1134,1137,1138,1140,1141,1144],{},[372,1128,1129],{},"ticklinestyle=value",": self-explanatory. ",[579,1132,1069],{}," may be one of ",[372,1135,1136],{},"solid, dashed, dotted",". This is useful for huge graduations (",[579,1139,1021],{}," ",[372,1142,1143],{},"ticksize"," is high).",[357,1146,927],{},[399,1148,1150],{"className":401,"code":1149,"language":403,"meta":404,"style":404},"\\psgrid[griddots=5, subgriddiv=0, gridlabels=0pt](-1,-1)(5,5)\n",[372,1151,1152],{"__ignoreMap":404},[408,1153,1154],{"class":410,"line":411},[408,1155,1149],{},[377,1157,1159],{"id":1158},"axis","Axis",[357,1161,1162],{},"If you want to add axes, use the pstricks-add extension with the following commands:",[399,1164,1166],{"className":401,"code":1165,"language":403,"meta":404,"style":404},"\\psaxes(xmin,ymin)(xmax,ymax)\n\\psaxes(x0,y0)(xmin,ymin)(xmax,ymax)\n",[372,1167,1168,1173],{"__ignoreMap":404},[408,1169,1170],{"class":410,"line":411},[408,1171,1172],{},"\\psaxes(xmin,ymin)(xmax,ymax)\n",[408,1174,1175],{"class":410,"line":505},[408,1176,1177],{},"\\psaxes(x0,y0)(xmin,ymin)(xmax,ymax)\n",[357,1179,1180,1182,1183,1185,1186,1188],{},[579,1181,1045],{}," and ",[579,1184,1037],{}," being the extreme, ",[579,1187,1060],{}," being the intersection.",[357,1190,1191],{},"Options:",[844,1193,1194,1203,1209],{},[385,1195,1196,1182,1199,1202],{},[372,1197,1198],{},"Dx=value",[372,1200,1201],{},"Dy=value"," defines the spacing between graduations.",[385,1204,1205,1208],{},[372,1206,1207],{},"comma"," lets you use the comma as decimal separator.",[385,1210,1211,1212,1215],{},"As for lines, ",[372,1213,1214],{},"{->}"," adds arrows on axes.",[357,1217,927],{},[399,1219,1221],{"className":401,"code":1220,"language":403,"meta":404,"style":404},"\\usepackage{pstricks-add}\n% ...\n\\begin{pspicture}(-1,-1)(5,5)\n\\psaxes[comma,Dx=0.5,Dy=0.5]{->}(0,0)(3,3)\n\\end{pspicture}\n",[372,1222,1223,1228,1232,1237,1242],{"__ignoreMap":404},[408,1224,1225],{"class":410,"line":411},[408,1226,1227],{},"\\usepackage{pstricks-add}\n",[408,1229,1230],{"class":410,"line":505},[408,1231,545],{},[408,1233,1234],{"class":410,"line":513},[408,1235,1236],{},"\\begin{pspicture}(-1,-1)(5,5)\n",[408,1238,1239],{"class":410,"line":984},[408,1240,1241],{},"\\psaxes[comma,Dx=0.5,Dy=0.5]{->}(0,0)(3,3)\n",[408,1243,1244],{"class":410,"line":990},[408,1245,550],{},[364,1247,1249],{"id":1248},"generic-parameters","Generic parameters",[377,1251,1253],{"id":1252},"all-shapes","All shapes",[357,1255,1256],{},"These are to be added between square brackets.",[844,1258,1259,1268,1278,1289,1294],{},[385,1260,1261,1264,1265,1267],{},[372,1262,1263],{},"linewidth=value",": if ",[579,1266,1069],{}," is without unit, then the default unit is used.",[385,1269,1270,1273,1274,1277],{},[372,1271,1272],{},"linecolor=color",": ",[579,1275,1276],{},"color"," is as defined by the xcolor package.",[385,1279,1280,1273,1283,1285,1286,959],{},[372,1281,1282],{},"linestyle=value",[579,1284,1069],{}," is one of ",[372,1287,1288],{},"dashed,dotted",[385,1290,1291,959],{},[372,1292,1293],{},"doubleline=true",[385,1295,1296,1298,1299],{},[372,1297,788],{},": highlights points.\n",[844,1300,1301,1307],{},[385,1302,1303,1306],{},[372,1304,1305],{},"dotscale=value"," specifies the size of the points.",[385,1308,1309,1312,1313,1315,1316],{},[372,1310,1311],{},"dotstyle=value"," where ",[579,1314,1069],{}," is among:\n",[844,1317,1318,1321,1324,1327,1330,1333,1336],{},[385,1319,1320],{},"*: disc",[385,1322,1323],{},"o: circle",[385,1325,1326],{},"+,x: cross",[385,1328,1329],{},"square, squarre*: starred version is filled.",[385,1331,1332],{},"diamond, diamond*",[385,1334,1335],{},"triangle, triangle*",[385,1337,1338],{},"etc.",[357,1340,1341],{},"For example:",[399,1343,1345],{"className":401,"code":1344,"language":403,"meta":404,"style":404},"\\pscircle[linewidth=0.2,linestyle=dashed,linecolor=blue](0,0){1}\n",[372,1346,1347],{"__ignoreMap":404},[408,1348,1349],{"class":410,"line":411},[408,1350,1344],{},[357,1352,1353],{},"To apply parameters globally:",[399,1355,1357],{"className":401,"code":1356,"language":403,"meta":404,"style":404},"\\psset{linewidth=0.2,linestyle=dashed,linecolor=blue}\n\\pscircle(0,0){1}\n",[372,1358,1359,1364],{"__ignoreMap":404},[408,1360,1361],{"class":410,"line":411},[408,1362,1363],{},"\\psset{linewidth=0.2,linestyle=dashed,linecolor=blue}\n",[408,1365,1366],{"class":410,"line":505},[408,1367,1368],{},"\\pscircle(0,0){1}\n",[357,1370,1371],{},"This command also lets you change the default unit for lengths:",[844,1373,1374,1379],{},[385,1375,1376],{},[372,1377,1378],{},"unit=value",[385,1380,1381,1182,1384],{},[372,1382,1383],{},"xunit=value",[372,1385,1386],{},"yunit=value",[357,1388,1389,1391],{},[579,1390,1069],{}," is a number with or without unit. This changes the scale of the drawings, but will not change the width of lines.",[377,1393,1395],{"id":1394},"open-shapes","Open shapes",[357,1397,1398,1399,1402],{},"You can define the extreme of an open shape (line, polyline, arc, etc.) with an optional parameter ",[372,1400,1401],{},"{symbol1-symbol2}",". There is a decent list of available symbols.",[844,1404,1405,1408,1411,1414,1417,1420,1423,1426,1429,1432,1435],{},[385,1406,1407],{},"\u003C or >: arrow.",[385,1409,1410],{},"\u003C\u003C or >>: double arrow.",[385,1412,1413],{},"|: bar.",[385,1415,1416],{},"|*: centered bar.",[385,1418,1419],{},"oo: circle.",[385,1421,1422],{},"o: centered circle.",[385,1424,1425],{},"**: disk.",[385,1427,1428],{},"*: centered disk.",[385,1430,1431],{},"|\u003C or >|: arrow plus bar.",[385,1433,1434],{},"cc: rounded extreme.",[385,1436,1437],{},"c: centered rounded extreme.",[357,1439,927],{},[399,1441,1443],{"className":401,"code":1442,"language":403,"meta":404,"style":404},"\\psline{|->>}(x0,y0)(x1,y1)\n",[372,1444,1445],{"__ignoreMap":404},[408,1446,1447],{"class":410,"line":411},[408,1448,1442],{},[377,1450,1452],{"id":1451},"closed-shapes","Closed shapes",[357,1454,1455],{},"For closed shape you may define the fillstyle.",[844,1457,1458,1467,1472,1477,1482,1487],{},[385,1459,1460,1463,1464,959],{},[372,1461,1462],{},"fillstyle=value",": pattern. Possible values: ",[372,1465,1466],{},"crosshatch, crosshatch*, vlines, vlines*, hlines, hlines*, solid",[385,1468,1469,959],{},[372,1470,1471],{},"fillcolor=color",[385,1473,1474,959],{},[372,1475,1476],{},"hatchcolor=color",[385,1478,1479,959],{},[372,1480,1481],{},"hatchwidth=value",[385,1483,1484,959],{},[372,1485,1486],{},"hatchsep=value",[385,1488,1489,959],{},[372,1490,1491],{},"hatchangle=value",[357,1493,927],{},[399,1495,1497],{"className":401,"code":1496,"language":403,"meta":404,"style":404},"\\pscircle[hatchcolor=blue,fillstyle=vlines](0,0){1}\n",[372,1498,1499],{"__ignoreMap":404},[408,1500,1501],{"class":410,"line":411},[408,1502,1496],{},[364,1504,1506],{"id":1505},"object-location","Object location",[357,1508,873,1509,1182,1512,1514],{},[372,1510,1511],{},"\\rput",[372,1513,860],{}," commands can be used to move any object.",[357,1516,927],{},[399,1518,1520],{"className":401,"code":1519,"language":403,"meta":404,"style":404},"\\begin{pspicture}(5,5)\n\\psline{->}(0,0)(1,1)\n\\rput(1,1){\\psline{->}(0,0)(1,1)}\n\\end{pspicture}\n",[372,1521,1522,1526,1531,1536],{"__ignoreMap":404},[408,1523,1524],{"class":410,"line":411},[408,1525,987],{},[408,1527,1528],{"class":410,"line":505},[408,1529,1530],{},"\\psline{->}(0,0)(1,1)\n",[408,1532,1533],{"class":410,"line":513},[408,1534,1535],{},"\\rput(1,1){\\psline{->}(0,0)(1,1)}\n",[408,1537,1538],{"class":410,"line":984},[408,1539,550],{},[357,1541,649],{},[399,1543,1545],{"className":401,"code":1544,"language":403,"meta":404,"style":404},"\\begin{pspicture}(5,5)\n\\psline{->}(0,0)(1,1)\n\\psline{->}(1,1)(2,2)\n\\end{pspicture}\n",[372,1546,1547,1551,1555,1560],{"__ignoreMap":404},[408,1548,1549],{"class":410,"line":411},[408,1550,987],{},[408,1552,1553],{"class":410,"line":505},[408,1554,1530],{},[408,1556,1557],{"class":410,"line":513},[408,1558,1559],{},"\\psline{->}(1,1)(2,2)\n",[408,1561,1562],{"class":410,"line":984},[408,1563,550],{},[357,1565,1566,1567,397],{},"You can repeat the operation with ",[372,1568,1569],{},"\\multirput",[399,1571,1573],{"className":401,"code":1572,"language":403,"meta":404,"style":404},"\\multirput(x0,y0)(xoffset, yoffset){times}{object}\n",[372,1574,1575],{"__ignoreMap":404},[408,1576,1577],{"class":410,"line":411},[408,1578,1572],{},[357,1580,1581,1582,397],{},"You can use the same options as for ",[372,1583,1511],{},[399,1585,1587],{"className":401,"code":1586,"language":403,"meta":404,"style":404},"\\multirput[reference]{angle}(x0,y0)(xoffset, yoffset){times}{object}\n",[372,1588,1589],{"__ignoreMap":404},[408,1590,1591],{"class":410,"line":411},[408,1592,1586],{},[357,1594,1595,1596,1599],{},"With no text but with graphics only, you can use the ",[372,1597,1598],{},"\\multips"," command:",[399,1601,1603],{"className":401,"code":1602,"language":403,"meta":404,"style":404},"\\multips(x0,y0)(xoffset, yoffset){times}{object}\n\\multips{angle}(x0,y0)(xoffset,yoffset){times}{object}\n",[372,1604,1605,1610],{"__ignoreMap":404},[408,1606,1607],{"class":410,"line":411},[408,1608,1609],{},"\\multips(x0,y0)(xoffset, yoffset){times}{object}\n",[408,1611,1612],{"class":410,"line":505},[408,1613,1614],{},"\\multips{angle}(x0,y0)(xoffset,yoffset){times}{object}\n",[364,1616,1618],{"id":1617},"pdf-workflows","PDF workflows",[357,1620,1621,1622,1624,1625,1628],{},"For new pdfLaTeX documents, prefer ",[372,1623,392],{},", described above. The older ",[372,1626,1627],{},"pdftricks"," package provides another conversion workflow, but it requires more source markup.",[377,1630,1632],{"id":1631},"usage","Usage",[844,1634,1635,1638,1648],{},[385,1636,1637],{},"Declare the PDFTricks packages in the preamble.",[385,1639,1640,1641,1644,1645,530],{},"Place all PSTricks extensions in a ",[372,1642,1643],{},"psinputs"," environment; place all PSTricks commands in a ",[372,1646,1647],{},"pdfpic",[385,1649,1650,1651],{},"Compile with pdflatex -shell-escape ",[1652,1653,959],"file",{},[357,1655,873,1656,1659],{},[372,1657,1658],{},"-shell-escape"," parameter enables shell command calls. It is required for PDFTricks to run.",[357,1661,927],{},[399,1663,1665],{"className":401,"code":1664,"language":403,"meta":404,"style":404},"\\documentclass{article}\n \n\\usepackage{pdftricks}\n\\begin{psinputs}\n   \\usepackage{pstricks}\n   \\usepackage{multido}\n\\end{psinputs}\n \n% ...\n \n\\begin{document}\n \n% ...\n \n\\begin{pdfpic}\n   \\psset{unit=\\linewidth}\n   \\begin{pspicture}(0,0)(10,10)\n      [...]\n   \\end{pspicture}\n\\end{pdfpic}\n \n% ...\n \n\\end{document}\n",[372,1666,1667,1672,1677,1682,1687,1692,1697,1702,1707,1712,1717,1723,1728,1733,1738,1744,1750,1756,1762,1768,1774,1779,1784,1789],{"__ignoreMap":404},[408,1668,1669],{"class":410,"line":411},[408,1670,1671],{},"\\documentclass{article}\n",[408,1673,1674],{"class":410,"line":505},[408,1675,1676],{}," \n",[408,1678,1679],{"class":410,"line":513},[408,1680,1681],{},"\\usepackage{pdftricks}\n",[408,1683,1684],{"class":410,"line":984},[408,1685,1686],{},"\\begin{psinputs}\n",[408,1688,1689],{"class":410,"line":990},[408,1690,1691],{},"   \\usepackage{pstricks}\n",[408,1693,1694],{"class":410,"line":996},[408,1695,1696],{},"   \\usepackage{multido}\n",[408,1698,1699],{"class":410,"line":1002},[408,1700,1701],{},"\\end{psinputs}\n",[408,1703,1705],{"class":410,"line":1704},8,[408,1706,1676],{},[408,1708,1710],{"class":410,"line":1709},9,[408,1711,545],{},[408,1713,1715],{"class":410,"line":1714},10,[408,1716,1676],{},[408,1718,1720],{"class":410,"line":1719},11,[408,1721,1722],{},"\\begin{document}\n",[408,1724,1726],{"class":410,"line":1725},12,[408,1727,1676],{},[408,1729,1731],{"class":410,"line":1730},13,[408,1732,545],{},[408,1734,1736],{"class":410,"line":1735},14,[408,1737,1676],{},[408,1739,1741],{"class":410,"line":1740},15,[408,1742,1743],{},"\\begin{pdfpic}\n",[408,1745,1747],{"class":410,"line":1746},16,[408,1748,1749],{},"   \\psset{unit=\\linewidth}\n",[408,1751,1753],{"class":410,"line":1752},17,[408,1754,1755],{},"   \\begin{pspicture}(0,0)(10,10)\n",[408,1757,1759],{"class":410,"line":1758},18,[408,1760,1761],{},"      [...]\n",[408,1763,1765],{"class":410,"line":1764},19,[408,1766,1767],{},"   \\end{pspicture}\n",[408,1769,1771],{"class":410,"line":1770},20,[408,1772,1773],{},"\\end{pdfpic}\n",[408,1775,1777],{"class":410,"line":1776},21,[408,1778,1676],{},[408,1780,1782],{"class":410,"line":1781},22,[408,1783,545],{},[408,1785,1787],{"class":410,"line":1786},23,[408,1788,1676],{},[408,1790,1792],{"class":410,"line":1791},24,[408,1793,1794],{},"\\end{document}\n",[357,1796,1797,1798,1801,1802,1804],{},"The lower-level ",[372,1799,1800],{},"pst-pdf"," package is another option. It creates a PDF container for PostScript graphics in an additional processing step; ",[372,1803,392],{}," automates that workflow.",[1806,1807,1808],"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);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":404,"searchDepth":505,"depth":505,"links":1810},[1811,1815,1816,1823,1824,1827,1832,1833],{"id":366,"depth":505,"text":367,"children":1812},[1813,1814],{"id":379,"depth":513,"text":380},{"id":490,"depth":513,"text":491},{"id":522,"depth":505,"text":523},{"id":593,"depth":505,"text":594,"children":1817},[1818,1819,1820,1821,1822],{"id":597,"depth":513,"text":598},{"id":661,"depth":513,"text":662},{"id":692,"depth":513,"text":693},{"id":718,"depth":513,"text":719},{"id":761,"depth":513,"text":762},{"id":802,"depth":505,"text":803},{"id":1007,"depth":505,"text":1008,"children":1825},[1826],{"id":1158,"depth":513,"text":1159},{"id":1248,"depth":505,"text":1249,"children":1828},[1829,1830,1831],{"id":1252,"depth":513,"text":1253},{"id":1394,"depth":513,"text":1395},{"id":1451,"depth":513,"text":1452},{"id":1505,"depth":505,"text":1506},{"id":1617,"depth":505,"text":1618,"children":1834},[1835],{"id":1631,"depth":513,"text":1632},"Learn to create PostScript-based graphics with PSTricks and choose a compatible modern LaTeX build workflow.","md",null,{},{"title":136,"description":1836},"cSDJ-q8BsEk3VAAiGvH858-vAMM9eZEXFK1O-vPbijo",[1843,1845],{"title":132,"path":133,"stem":134,"description":1844,"children":-1},"Learn to create portable diagrams and illustrations directly in LaTeX with the PGF\u002FTikZ graphics system.",{"title":140,"path":141,"stem":142,"description":1846,"children":-1},"Learn how to use MetaPost for creating mathematical and technical vector graphics in LaTeX documents.",1785155508670]