TexStudio (původně TexMakerX) oproti TexMakeru umožňuje používat pokročilejší makra nejen pro vkládání latex příkazů.
Příklad skriptu, který nabídne výběr souboru pro vložení jako obrázku. V případě, že je před zavoláním označen text o více řádcích (jednotlivé názvy obrázků, např. zkopírované ze souborového manageru, na každém řádku), rozparsuje je a přidá všechny najednou:
%SCRIPT selected = cursor.selectedText(); //ulozime vybrany text filenames = new Array(); if (selected) { //rozdelime podle zalomeni (pripad vice souboru) filenames = selected.split("\n"); n = filenames.length; } else { fileChooser.setDir("img"); //nastaveni init adresare fileChooser.exec(); //zobrazi dialog vyberu souboru //fileChooser.setFilter(filter) //nastaveni filtru souboru pth = fileChooser.fileName(); //cesta filenames[0] = pth.replace(/^.*\//, ''); //nazev souboru n = 1; } for (i=0 ; i<n; i++) { editor.insertText("\\begin{figure}[h]\n \\centering\n \\includegraphics[width=13cm]{img/"+filenames[i]+"}\n \\caption{}\n \\label{fig:"+filenames[i]+"}\n\\end{figure}\n"); } cursor.moveTo(cursor.lineNumber()-3,10); cursor.removeSelectedText(); //odstranime puvodni vyber
Makro na vytvoření matice (na velikost se dotáže uživatele). Všimněte si příkazu editorView.inserMacro - pomocí něj lze potom používat řídící znaky %< a %> pro skákání po textových boxících. Pokud je použijete v editor.insertText, nebudou fungovat.
%SCRIPT dialog = new UniversalInputDialog([3, "Počet řádků matice:", "m"],[3,"Počet sloupců matice","n"]); // Adds a new variable with the given default value vars = dialog.exec(); m = vars["m"]; n = vars["n"]; str = ""; for (i=0; i<m; i++) { for (j=0; j<n; j++) { str += "%<"+i+""+j+"%> & "; } str += "\\\\ \n"; } str = "\\left[\n\\begin{array}{c}\n" + str + "\\end{array} \n\\right]"; editorView.insertMacro(str);
Dokumentace příkazu viz Personal macros.
%SCRIPT selected = cursor.selectedText(); //ulozime vybrany text editor.insertText("\\begin{columns}\n\\column{5.5cm}\n"+selected+"\n\\column{5.5cm}\n\n\\end{columns}\n"); cursor.moveTo(cursor.lineNumber()-2,0); cursor.removeSelectedText(); //odstranime puvodni vyber
Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.
Aktuální věci publikuji kvůli úspoře času na Twitter.
Honza
"Bezpečí je většinou pověra. Ve skutečnosti neexistuje. Život je buď odvážné dobrodružství, nebo vůbec nic."