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
"Čas je materiál, ze kterého se vyrábí život."