<html><body><div>Ahoj Jardo,</div><div>zkus toto.</div><div><br></div><div>\def\InvMat[#1]{\InvMatA#1}<br>\def\InvMatA#1,#2{\thematrix{{#1};{#2}}}<br></div><div><br></div><div>Funguje to pro dvouřádkové matice. Jestli to má být pro jiný konkrétní počet řádků, tak to bude podobné. Jestli to má být pro obecný počet řádků, bylo by řešení jemně komplikovanější, ale taky by to šlo.</div><div><br></div><div>Měj se hezky.</div><div>Honza<br></div><div><br></div><div><br></div><div><br></div><aside>
---------- Původní e-mail ----------<br>
Od: Jaroslav Hajtmar <hajtmar@gyza.cz><br>
Komu: Czech and Slovak TeX-related mailing list <csTeX@cs.felk.cvut.cz><br>
Datum: 6. 6. 2020 9:54:51<br>
Předmět: [cstex] Složené závorky v masce a separátorech parametrů maker
</aside><br><blockquote data-email="hajtmar@gyza.cz">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="-wm-page" title="Page 1">
                        <div class="-wm-layoutArea">
                                <div class="-wm-column"><p class><font class face="SourceCodePro"><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="-wm-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="-wm-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="-wm-Apple-tab-span" style="font-weight:bold;white-space:pre">            </span>% výstupní inverzní matice s prefixem pro ConTeXtovou sazbu<span class="-wm-Apple-tab-span" style="white-space:pre">  </span></div><div class><b class>2</b><span class="-wm-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>_______________________________________________
<br>csTeX mailing list
<br>csTeX@cs.felk.cvut.cz
<br>https://lists.felk.cvut.cz/mailman/listinfo/cstex
<br></blockquote></body></html>