"Nezbytným krokem k tomu, abyste od života získali věci, po kterých toužíte, je rozhodnout se, co vlastně chcete."
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
.