JanKoWeb: Odborný SW - TexStudio: makra aneb vyšší efektivita práce

TexStudio: makra aneb vyšší efektivita práce

TexStudio (původně TexMakerX) oproti TexMakeru umožňuje používat pokročilejší makra nejen pro vkládání latex příkazů.

Výběr obrázku

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

Vytvoření matice

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.

Vložení prostředí columns (pro beamer)



%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

 

Rubrika Odborný SW | Tagy Latex, Texstudio | Čt 20.09.2012 | 1565x

Náhodné články

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 nejlepší soudce a trpělivost nejlepší mistr."

Guy de Pourtales