1

在下面的LaTeX包(sublime text 3)的片段中,每次输入:Space,。 (点),?,*,#,由部分\ label {sec:*****}和%section *****(end)中的“_”字符替换。还将大写字母替换为小写字母。这里的片段:Snippet用元音替代带重音符号的元音,不带颚化符号在崇高文本中

<snippet> 
<content><![CDATA[ 
\section{${1:section name}} % (fold) 
\label{sec:${2:${1/\\\w+\{(.*?)\}|\\(.)|(\w+)|([^\w\\]+)/(?4:_:\L$1$2$3)/g}}} 
${0:$TM_SELECTED_TEXT} 
% section $2 (end) 
]]></content> 
    <tabTrigger>sec</tabTrigger> 
    <scope>text.tex.latex</scope> 
    <description>Section</description> 
</snippet> 

我的问题是:我怎么能改变?该片段由元音没有波浪,即更换重读元音字母, 如果我使用的代码片段的结果是:

\section{acción además menú aquí acné} % (fold) 
\label{sec:acción_además_menú_aquí_acné} 

% section acción_además_menú_aquí_acné (end) 

,但我希望得到如下:

\section{acción además menú aquí acné} % (fold) 
\label{sec:accion_ademas_menu_aqui_acne} 

% section accion_ademas_menu_aqui_acne (end) 
+0

这是不可能的一个片段 - 你需要一个插件来做替换。 – MattDMo

+0

@MattDMo谢谢,我可以从哪里开始的任何建议。 – Robles

回答

2

你可以做到这一点手动指定要查找的字符以及要替换的字符。这是因为ST不幸似乎不支持POSIX character equivalents

使用下面的代码片断:

<snippet> 
<content><![CDATA[ 
\section{${1:section name}} % (fold) 
\label{sec:${2:${1/(?i:(á)|([éę])|(í)|(ó)|(ú)|(ń))|\\\w+\{(.*?)\}|\\(.)|(\w)|([^\w\\]+)/(?{10}_:\L$7$8(?1a:)(?2e:)(?3i:)(?4o:)(?5u:)(?6n:)$9)/g}}} 
${0:$TM_SELECTED_TEXT} 
% section $2 (end) 
]]></content> 
    <tabTrigger>sec</tabTrigger> 
    <scope>text.tex.latex</scope> 
    <description>Section</description> 
</snippet> 

键入sec标签和打字/粘贴在acción además menú aquí acné ńę,例如,会导致:

\section{acción además menú aquí acné_ńę} % (fold) 
\label{sec:accion_ademas_menu_aqui_acne_ne} 

% section accion_ademas_menu_aqui_acne_ne (end) 

有关详细信息上替换格式语法,请参阅http://www.boost.org/doc/libs/1_56_0/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html

+0

非常感谢,完美的工作。 – Robles

+0

不错的工作,我不认为正则表达式可以处理这样的多个可能的替换。 – MattDMo

相关问题