Scite Latex

lua-users home
wiki

自动闭合节和排版引号

将此脚本加载到 .tex 文件中,当您在 \begin{group} 后按回车键时,它会自动插入 \end{group}。它并不完美,但对于我的 LaTeX 代码格式化风格来说,它大部分时间都能正常工作。它还会将正常的英寸符号 (") 替换为相应的(德语)符号 ("` 和 "')。

prevquote="'";
nextquote="`";

function ReplaceQuote()
	at = editor.CurrentPos;
	editor:insert(at, nextquote);
	editor:GotoPos(at+1);
	prevquote, nextquote = nextquote, prevquote;
end;


function CheckBlock()
	local m_end = 0;
	local senv, env;
	
	line = editor:LineFromPosition(editor.CurrentPos);
	str = editor:GetLine(line-1);
	
	-- look for last \begin{foo}
	repeat
		senv = env;
		m_start, m_end, env = string.find(str, '\\begin{(.-)}', m_end);
	until m_start == nil;
	
	-- add \end{foo}
	if(senv) then
		local pos = editor.CurrentPos;
		editor:insert(pos,
			"\\end{"..senv..'}');
	end;
end;


function OnChar(char)
	if(char=='"') then
		ReplaceQuote();
	elseif(char=="\n") then
		CheckBlock();
	end;
end;
-- SebastianSteinlechner?

命令快捷键

这是一个用于映射例如 \frac{}{} 到按键组合的框架。抱歉,目前还没有自动化,您必须在 latex.properties 文件中手动添加相应的命令条目。
function add_tags(a, b)
	if(editor:GetSelText() ~= '') then
		editor:ReplaceSel(a .. editor:GetSelText() .. b);
	else
		editor:insert(editor.CurrentPos, a..b);
		editor:GotoPos(editor.CurrentPos + string.len(a));
	end;
end

function tex_frac()
	add_tags('\\frac{', '}{}');
end;

function tex_up()
	add_tags('^{', '}');
end;

function tex_down()
	add_tags('_{', '}');
end;
-- SebastianSteinlechner?

将制表符数组转换为 Tex 数组

如果您从例如 Excel / OOo Calc 复制粘贴表格,它将以制表符分隔。标记这些行并运行此脚本,它将用 \t& 替换制表符 (\t),并以 \\ 结尾的行。
function tex_makearray()
	if(editor:GetSelText() == '') then
		return;
	end;
	
	local mytext = editor:GetSelText();
	mytext = string.gsub(mytext, "\t", "\t& ");
	mytext = string.gsub(mytext, "\n", "\\\\\n");
	editor:ReplaceSel(mytext);
end;
-- SebastianSteinlechner?
最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2006 年 8 月 31 日下午 8:55 GMT (差异)