{"id":9227,"date":"2019-02-24T16:21:34","date_gmt":"2019-02-24T16:21:34","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=9227"},"modified":"2019-07-22T08:32:08","modified_gmt":"2019-07-22T08:32:08","slug":"latex-marko-macro","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=9227","title":{"rendered":"LaTeX: Marko und Umgebungen \/ Macro and Environments"},"content":{"rendered":"<h1>Makros<\/h1>\n<h3>YouTube<\/h3>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=ab_Q8IZ_1Cw\">Wolfgang Dautermann: Programmierung mit LaTeX<\/a><br \/>\n<a href=\"https:\/\/wolfgang.dautermann.at\/vortraege\/Froscon-2014-LaTeX-Programmierung.pdf\">Wolfgang Dautermann: Programmierung mit LaTeX<\/a> (PDF)<\/p>\n<h3>tug.org<\/h3>\n<p><a href=\"http:\/\/tug.org\/texinfohtml\/latex2e.html\">LaTeX2e unofficial reference manual (October 2018)<\/a><\/p>\n<h3>Overleaf<\/h3>\n<p><a href=\"https:\/\/de.overleaf.com\/learn\/latex\/TeX_primitives_listed_by_TeX_engine\">TeX primitives listed by TeX engine<\/a><br \/>\n<a href=\"https:\/\/de.overleaf.com\/learn\/latex\/How_Overleaf_created_the_TeX_primitive_reference_data\">How Overleaf created the TeX primitive reference data<\/a><br \/>\n<a href=\"https:\/\/www.overleaf.com\/learn\/latex\/How_TeX_macros_actually_work:_Part_1\">How TeX macros actually work<\/a><br \/>\n<a href=\"https:\/\/www.overleaf.com\/learn\/latex\/Articles\/How_does_%5Cexpandafter_work:_An_introduction_to_TeX_tokens\">How does \\expandafter work: An introduction to TeX tokens<\/a><br \/>\n<a href=\"https:\/\/www.overleaf.com\/learn\/latex\/Articles\/How_does_%5Cexpandafter_work:_From_basic_principles_to_exploring_TeX%27s_source_code\">How does \\expandafter work: From basic principles to exploring TeX&#8217;s source code<\/a><br \/>\n<a href=\"https:\/\/de.overleaf.com\/learn\/latex\/Commands\">Commands<\/a><br \/>\nLatex typesetting is made by using special tags or commands that provide a handful of ways to format your document. Sometimes standard commands are not enough to fulfil some specific needs, in such cases new commands can be defined and this article explains how.<\/p>\n<h3>TeXFAQ<\/h3>\n<p><a href=\"https:\/\/texfaq.org\/FAQ-plninltxstar\">Using Plain or primitive commands in LaTeX<\/a><br \/>\n<a href=\"https:\/\/texfaq.org\/FAQ-printvar\">How to print contents of variables?<\/a><\/p>\n<h3>texwelt.de<\/h3>\n<p><a href=\"https:\/\/texwelt.de\/wissen\/fragen\/1\/was-machen-eigentlich-makeatletter-und-makeatother\">Was machen eigentlich \\makeatletter und \\makeatother?<\/a><\/p>\n<h3>StackExchange<\/h3>\n<p><a href=\"https:\/\/tex.stackexchange.com\/questions\/13541\/difference-between-latex-latex2e-latex3\">Difference between LaTeX, LaTeX2e, LaTeX3 ?<\/a><br \/>\n<a href=\"https:\/\/tex.stackexchange.com\/questions\/467360\/is-there-a-list-of-expandable-tex-primitives-latex-e-tex-others\">Is there a list of expandable TeX primitives? LaTeX? e-TeX? others?<\/a><\/p>\n<p><a href=\"https:\/\/latexkurs.github.io\/lecture\/11_komplexe_makros.pdf\">Einf\u00fchrung in das Textsatzsystem LATEX &#8211; Komplexe Makros und Befehle<\/a><\/p>\n<h2>Plain TeX<\/h2>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\\def&lt;Befehlsname&gt;&lt;Argument(e)&gt;{&lt;Befehlsdefinition&gt;}\r\n\\let&lt;neuer Befehlsname&gt;&lt;alter Befehlsname&gt;\r\n\r\n\\def\\mymakro#1#2{Makro mit zwei Argumenten #1 und #2}\r\nlet\\newmakro\\oldmakro\r\n<\/pre>\n<h2>LaTeX 2<\/h2>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\\(re)newcommand{&lt;Befehlsname&gt;}\r\n  &#x5B;&lt;Anzahl der Argumente&gt;]\r\n  &#x5B;&lt;Default f\u00fcr erstes (optionales) Argument&gt;]\r\n  {&lt;Befehlsdefinition&gt;}\r\n\r\n\\newenvironment{&lt;Umgebungsname&gt;}\r\n  &#x5B;&lt;Anzahl der Argumente&gt;]\r\n  &#x5B;&lt;Default f\u00fcr erstes (optionales) Argument&gt;]\r\n  {&lt;Definition Code vor Umgebung&gt;}\r\n  {&lt;Definition Code nach Umgebung&gt;}\r\n<\/pre>\n<h2>LaTeX 3<\/h2>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nMit Paket xparse verf\u00fcgbar:\r\n\\NewDocumentCommand, \\RenewDocumentCommand, \\NewDocumentEnvironment, ...\r\n\r\n\\NewDocumentCommand{&lt;Befehlsname&gt;}\r\n  {&lt;Argumentstrukturi}\r\n  {&lt;Definitioni}\r\n<\/pre>\n<p><a href=\"https:\/\/www.staff.uni-giessen.de\/partosch\/unterlagen\/Makros.pdf\">Einfache Makros in TEX und LATEX<\/a> (PDF)<\/p>\n<h2>Plain TeX<\/h2>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\\def\\name{definition}\r\n\\def\\name#1{definition, die #1 benutzt}\r\n\\def\\name#1#2{definition, die #1 und #2 benutzt} % bis #9\r\n\\def\\name zkette#1zkette#2zkette {definition, die #1 und #2 benutzt}\r\n<\/pre>\n<h4>Ohne Parameter<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\\def\\hrz{Hochschulrechenzentrum (HRZ)}\r\n\r\nVortext \\hrz Nachtext\r\nVortext Hochschulrechenzentrum (HRZ)Nachtext (ohne Abstand)\r\n\r\nVortext \\hrz\\ Nachtext\r\nVortext \\hrz{} Nachtext\r\nVortext {\\hrz} Nachtext\r\nVortext Hochschulrechenzentrum (HRZ) Nachtext (mit Abstand)\r\n<\/pre>\n<h4>Mit mehreren Parametern<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n% Makro bild\r\n% #1 : Grafikdatei\r\n% #2 : Bildunterschrift\r\n% #3 : Verweis-Label\r\n\\def\\bild#1#2#3{%\r\n\\begin{figure}&#x5B;htp]\r\n\\centering\r\n\\includegraphics{#1}\r\n\\vspace{0.5cm}\r\n\\caption{#2}\\label{#3}\r\n\\end{figure}\r\n}\r\n\r\n\\bild{template-1.png}{Eine Kr\u00a8ote oder ein Frosch}{fig:1}\r\n<\/pre>\n<h4>Eingabemuster<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n% Makro ganzwichtig\r\n% #1 : Farbe\r\n% #2 : Text\r\n\\def\\ganzwichtig(#1 in #2){\\fbox{\\textcolor{#2}{#1}}}\r\n% .................................\r\n% Makro referenz\r\n% #1 : Gattung (Abbildung, Tabelle)\r\n% #2 : Verweisziel\r\n\\def\\referenz#1#2{#1~\\ref{#2} auf Seite~\\pageref{#2} }\r\n\r\nDas ist \\wichtig{neu} und das \\ganzwichtig(ganz neu in red).\r\nSiehe \\referenz{Abbildung}{fig:1}\r\n<\/pre>\n<h2>LaTeX-Art<\/h2>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\\newcommand{\\name}{definition}\r\n\\newcommand{\\name}&#x5B;1]{definition, die #1 benutzt}\r\n\\newcommand{\\name}&#x5B;2]{definition, die #1 und #2 benutzt} % bis #9\r\n\r\n\\renewcommand       (Re-Definition)\r\n\\providenewcommand  (Re-Definition oder Neu-Definition)\r\n<\/pre>\n<pre class=\"brush: plain; title: Nur auf einen Absatz begrenzt; notranslate\" title=\"Nur auf einen Absatz begrenzt\">\r\n\\newcommand*\r\n\\renewcommand*\r\n\\providenewcommand*\r\n<\/pre>\n<h4>Ohne Parameter<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\\newcommand{\\HRZ}{Hochschulrechenzentrum (HRZ)}\r\n\r\nVortext \\hrz Nachtext\r\nVortext Hochschulrechenzentrum (HRZ)Nachtext (ohne Abstand)\r\n\r\nVortext \\hrz\\ Nachtext\r\nVortext \\hrz{} Nachtext\r\nVortext {\\hrz} Nachtext\r\nVortext Hochschulrechenzentrum (HRZ) Nachtext (mit Abstand)\r\n<\/pre>\n<h4>Mit mehreren Parametern<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n% Makro Bild\r\n% #1 : Grafikdatei\r\n% #2 : Bildunterschrift\r\n% #3 : Verweis-Label\r\n\\newcommand{\\Bild}&#x5B;3]{%\r\n\\begin{figure}&#x5B;htp]\r\n\\centering\r\n\\includegraphics{#1}\r\n\\vspace{0.5cm}\r\n\\caption{#2}\\label{#3}\r\n\\end{figure}\r\n}\r\n\r\n\\Bild{template-2.png}{Ein Waldsee}{fig:2}\r\n<\/pre>\n<h4>Eingabemuster \u2013 so einfach geht das in LATEX nicht<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n% Makro Ganzwichtig\r\n% #1 : Farbe\r\n% #2 : Text\r\n\\newcommand{\\Ganzwichtig}&#x5B;2]{\\fbox{\\textcolor{#1}{#2}}}\r\n\r\nDas ist \\WICHTIG{neu} und das \\Ganzwichtig{red}{ganz neu}.\r\nSiehe \\Referenz{Abbildung}{fig:2}\r\n<\/pre>\n<h1>Interne Makros<\/h1>\n<p><a href=\"https:\/\/texwelt.de\/wissen\/fragen\/1\/was-machen-eigentlich-makeatletter-und-makeatother\">Was machen eigentlich \\makeatletter und \\makeatother?<\/a><\/p>\n<h4>LaTeX 2e<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n@ f\u00fcr interne Makros\r\n\r\n\\makeatletter % setzt Kategorie-Code von @ auf 11\r\n&lt;Code mit Befehlen, die @ im Namen haben&gt;\r\n\\makeatother % setzt Kategorie-Code von @ auf 12\r\n\r\n\\makeatletter\r\n\\def\\name#1{\\gdef\\@name{#1}}\r\n\\makeatother\r\n<\/pre>\n<h4>LaTeX 3<\/h4>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n: und _ f\u00fcr interne Makros\r\n\r\n\\usepackage{expl3}\r\n\\ExplSyntaxOn\r\n&#x5B;...]\r\n\\ExplSyntaxOff\r\n<\/pre>\n<h1>Umgebungen<\/h1>\n<p><a href=\"https:\/\/texfaq.org\/FAQ-whatenv\">What are LaTeX \u201cenvironments\u201d<\/a><br \/>\nWhile TeX makes direct provision for commands, LaTeX adds a concept of \u201cenvironment\u201d; environments perform an action on a block (of something or other) rather than than just doing something at one place in your document.<\/p>\n<p><a href=\"https:\/\/de.overleaf.com\/learn\/latex\/Environments\">Overleaf: Environments<\/a><br \/>\nEnvironments are used to format blocks of text in a LATEX documents. This article explains how to use environments and how to define new ones.<\/p>\n<p><a href=\"http:\/\/latex.wikia.com\/wiki\/List_of_LaTeX_environments\">List of LaTeX environments<\/a><\/p>\n<ul>\n<li>Float environments:<br \/><code>figure, table<\/code><\/li>\n<li>List environments:<br \/><code>description, enumerate, itemize, list<\/code><\/li>\n<li>Math environments:<br \/><code>math, displaymath, array, eqnarray, equation [subequations, multiline, gather], theorem<\/code><\/li>\n<li>Matrix environments:<br \/><code>matrix, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, smallmatrix<\/code><\/li>\n<li>Cases environment:<br \/><code>cases<\/code><\/li>\n<li>Align environments:<br \/><code>align, alignat, flalign<\/code><\/li>\n<li>Paragraph environments:<br \/><code>center, flushleft, flushright, minipage, quotation, quote, verbatim, verse<\/code><\/li>\n<li>Paragraph commands:<br \/><code>centering, raggedright, raggedleft, parbox, footnote, footnotetext, verb<\/code><\/li>\n<li>Picture environment:<br \/><code>picture<\/code><\/li>\n<li>Picture commands:<br \/><code>\\circle, \\dashbox, \\frame, \\framebox, \\line, \\linethickness, \\makebox, \\multiput, \\oval, \\put, \\shortstack, \\vector<\/code><\/li>\n<li>Table environments:<br \/><code>tabbing, tabular<\/code><\/li>\n<\/ul>\n<h2>TeX Primitive Control Sequences<\/h2>\n<p><a href=\"https:\/\/www.tug.org\/utilities\/plain\/cseq.html\">TeX Primitive Control Sequences<\/a><\/p>\n<table border=\"\" cellspacing=\"5\" cellpadding=\"5\">\n<tbody>\n<tr align=\"center\">\n<th colspan=\"5\" ><font><b>Control Sequences<\/b><\/font><\/th>\n<\/tr>\n<tr align=\"center\">\n<th colspan=\"2\"><font><b>Family<\/b><\/font><\/th>\n<th ><font><b>NULL<\/b><\/font><\/th>\n<th ><font><b>Type<\/b><\/font><\/th>\n<th align=\"left\"><font><b>Description<\/b><\/font><\/th>\n<\/tr>\n<tr>\n<td><a href=\"#Box-fam\">Box<\/a><\/td>\n<td><a href=\"#Logic-fam\">Logic<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">c<\/td>\n<td>Command<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Character-fam\">Character<\/a><\/td>\n<td><a href=\"#Macro-fam\">Macro<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">d<\/td>\n<td>Derived Command<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Debugging-fam\">Debugging<\/a><\/td>\n<td><a href=\"#Marks-fam\">Marks<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">iq<\/td>\n<td>Internal Quantity<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#File I\/O-fam\">File I\/O<\/a><\/td>\n<td><a href=\"#Math-fam\">Math<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">pi<\/td>\n<td>Parameter (integer)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Fonts-fam\">Fonts<\/a><\/td>\n<td><a href=\"#Page-fam\">Page<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">pd<\/td>\n<td>Parameter (dimen)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Glue-fam\">Glue<\/a><\/td>\n<td><a href=\"#Paragraph-fam\">Paragraph<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">pg<\/td>\n<td>Parameter (glue)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Hyphenation-fam\">Hyphenation<\/a><\/td>\n<td><a href=\"#Penalties-fam\">Penalties<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">pm<\/td>\n<td>Parameter (muglue)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Inserts-fam\">Inserts<\/a><\/td>\n<td><a href=\"#Registers-fam\">Registers<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td align=\"center\">pt<\/td>\n<td>Parameter (token)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Job-fam\">Job<\/a><\/td>\n<td><a href=\"#Tables-fam\">Tables<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#Kern-fam\">Kern<\/a><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<td><font color=\"#FFFFFF\">&#8211;<\/font><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Makros YouTube Wolfgang Dautermann: Programmierung mit LaTeX Wolfgang Dautermann: Programmierung mit LaTeX (PDF) tug.org LaTeX2e unofficial reference manual (October 2018) Overleaf TeX primitives listed by TeX engine How Overleaf created the TeX primitive reference data How TeX macros actually work How does \\expandafter work: An introduction to TeX tokens How does \\expandafter work: From basic [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9227","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9227"}],"version-history":[{"count":14,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9227\/revisions"}],"predecessor-version":[{"id":9786,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9227\/revisions\/9786"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}