<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Dobrý den všem v konfeře.<div class="">Rád bych se po dlouhé době zeptal na možná triviální otázku, nicméně jsem nic nedohledal ani v PDFkové verzi TBN, kterou jsem krátce rozkliknul…</div><div class=""><br class=""></div><div class="">Nejprve se v úvodu zeptám a v závěru pak vysvětlím svoji motivaci.</div><div class=""><br class=""></div><div class="">Otázka: <b class="">Existuje možnost použít složené závorky v masce parametru makra, abych zároveň nepřišel o vyseparované parametry maker?</b></div><div class=""><br class=""></div><div class="">Uvedu příklad definice svého makra <b class="">\InvMat</b>. Upozorňuji, že se jedná o makro ConTeXtu, což má význam jen z hlediska toho, že makro <b class="">\thematrix</b> sází v ConTeXtu matici.</div><div class=""><br class=""></div><div class="">Např. \thematrix{{1, 2, 3}; {-1, 2, 1}} vysází dvouřádkovou matici se třemi sloupci.Tento příklad ukazuje, co vlastně chci.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""> </div><div class="">Rád bych vytvořil makro:</div><div class=""><br class=""></div><div class="">\def\InvMat[{#1,#2}]{\thematrix{#1;#2}}</div><div class=""><br class=""></div><div class="">které by umožnilo vysázet velký počet dvouřádkových matic tak, aby oba parametry makra InvMat byly obsaženy v masce [{ …… }]. </div><div class="">Na okraj dodávám, že  úmyslně píši velký počet, protože pokud by se jednalo o několik matic, tak bych to tímto způsobem vůbec nedělal… </div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Příklad použití: </div><div class=""><br class=""></div><div class="">\InvMat[{{1, 2, 3}; {-1, 2, 1}}] by mělo dát stejný výsledek jako \thematrix{{1, 2, 3}; {-1, 2, 1}}.</div><div class=""><br class=""></div><div class="">Na této variantě jsem si vylámal zuby, nicméně jsem schopen použít variantu (již v praxi použitelnou, nicméně trochu prudící):</div><div class=""><br class=""></div><div class="">\def\InvMat[\{#1,#2}\]{\thematrix{#1;#2}}  …. tj. s backslashem před úvodní a koncovou složenou závorkou. Toto makro mi funguje - volám jej takto:</div><div class=""><br class=""></div><div class="">\InvMat[\{{1, 2, 3}; {-1, 2, 1}\}]</div><div class=""><br class=""></div><div class="">To mne trochu obtěžuje, protože musím ty backslashe manuálně vkládat.</div><div class=""><br class=""></div><div class="">Neexistuje nějaká možnost (předpokládám, že ano a jak se znám je stupidní :-) … ), jak dosáhnout funkčního výsledku při definici makra \InvMat prvním způsobem, tj. </div><div class=""><br class=""></div><div class="">\def\InvMat[{#1,#2}]{\thematrix{#1;#2}}</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Díky za případné rady a pěkný den všem.</div><div class="">Jarda Hajtmar</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">PS1: Doufám, že jste všichni ve zdraví a při silném pracovním nasazení v rámci distanční výuky přežili dobíhající “koronaepidemónii” a přeji všem brzký návrat k (jak se zdá) “normáluizaci”...</div><div class=""><br class=""></div><div class="">PS2: Přidávám vysvětlení pozadí celé záležitosti a mé motivace pro ty, kterým leží v hlavě PROČ to chci zrovna tak pošahaně:</div><div class=""><br class=""></div><div class="">V CAS Mathematica mi funkce <b class="">InvMat</b> pro generování matic a k nim inverzních matic dává na vstupu/výstupu následující výstup:</div><div class="">
                
        
        
                <div class="page" title="Page 1">
                        <div class="layoutArea">
                                <div class="column"><p class=""><font face="SourceCodePro" class=""><span style="font-weight: 600;" class="">In[149]:= InvMat[{{1, 0, 0}, {1, 2, 1}, {0, 1, 1}}]</span></font></p><p class=""><span style="font-family: SourceCodePro; font-weight: 600;" class=""><span class="Apple-tab-span" style="white-space:pre">              </span>\InvMat[{{1,0,0},{-1,1,-1},{1,-1,2}}]</span></p><p class=""><span style="font-family: SourceCodePro; font-weight: 600;" class="">Out[149]= 2</span></p><div class="">Tento výstup ve finále vyexportuji ve tvaru, kde v 1. řádku volám svoji Mathematica funkci, ve 2. řádku je výsledná inverzní matice a ve 3. řádku je součet všech prvků výsledné matice:</div><div class=""><br class=""></div><div class=""><div class=""><b class="">InvMat[{{1, 0, 0}, {1, 2, 1}, {0, 1, 1}}] <span class="Apple-tab-span" style="white-space:pre">               </span></b>% vstupní volání mathematica funkce</div><div class=""><b class="">\InvMat[{{1,0,0},{-1,1,-1},{1,-1,2}}]</b><span class="Apple-tab-span" style="font-weight: bold; white-space: pre;">          </span>% výstupní inverzní matice s prefixem pro ConTeXtovou sazbu<span class="Apple-tab-span" style="white-space: pre;">    </span></div><div class=""><b class="">2</b><span class="Apple-tab-span" style="font-weight: bold; white-space: pre;">                                                                      </span>% výstupní údaj - součet všech prvků inverzní matice (kvůli snazšímu opravování testů v Teams assignments)</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Moje motivace je nyní taková, že chci použít tento zdrojový text generovaný v Mathematica pro vygenerování CSV tabulky, z níž pak z ConTeXtem pomocí dávkového zpracování vysázím zadání prověrky pro větší množství studentů tak, aby měl každý student naprosto jiné zadání a přitom byla snadná automatická kontrola výsledků pomocí součtu všech prvků v inverzní matici.</div><div class=""><br class=""></div><div class="">Pěkný den.</div><div class="">Jarda</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div>
                                </div>
                        </div>
                </div></div></body></html>