有没有办法让 xesearch 搜索和替换一个术语,并将替换内容编译为 LaTeX 命令?

有没有办法让 xesearch 搜索和替换一个术语,并将替换内容编译为 LaTeX 命令?

我已经使用了 xesearch 包https://www.ctan.org/pkg/xesearch?lang=en 探索研究在我的标题中自动替换简写符号:

\usepackage{xesearch}
\SearchList{list1}{Very Long Search Replacement 1}{SRa}
\SearchList{list2}{Very Long Search Replacement 2}{SRb}

将其放入标题栏可进行搜索和替换:

“SRa 和 SRb” 变成

“超长搜索替换 1 和超长搜索替换 2”

在生成的文档中。

太棒了!

但我确实想到,如果我可以让 xesearch 用 LaTeX 命令替换占位符,并在编译时运行它们,那将会很有用,例如:

\usepackage{xesearch}
\SearchList{list1}{\SomeGreatLaTeXCommand[with options]}{SRa}
\SearchList{list2}{\AReallyFantasticLaTeXCommand}{SRb}

因此,将 SRa 放入代码中将导致 \SomeGreatLaTeXCommmand[with options] 被编译,并且 SRb 被编译为 \AReallyFantasticLaTeXCommand

我知道可以用如下方法替代 LaTeX 命令:

 \newcommand{\bc}{\begin{center}}

有人知道 xesearch 包的用法吗?如果 xesearch 不能以这种方式工作,是否有其他包可以进行这种类型的自动搜索和替换?有没有办法不用 XeLaTeX 来做到这一点?或者,这是一个非常愚蠢的问题,因为 LaTeX/TEX一种编程语言?

答案1

是的,可以在替换文本中使用命令。实际上,xesearch文档中几乎所有示例都使用命令。我还没有尝试查看是否可以使用命令来检查接下来的内容,但诸如此类的事情是\begin{center}可行的。

更新添加了一个示例,表明并非所有事情都是可能的(至少是开箱即用的):

% compile with xelatex
\documentclass{article}
\usepackage{xesearch}
\usepackage{fontspec}
\usepackage{geometry}
\begin{document}\Huge

\SearchList{bc}{\begin{center}}{bc}

\SearchList{ec}{\end{center}}{ec}

Before

bc
Hello World!
ec

After
\end{document}

xesearch 测试

% compile with xelatex
\documentclass[varwidth, preview, border=10pt]{standalone}
\usepackage{xesearch}
\usepackage{fontspec}
\usepackage{geometry}
\begin{document}\Huge
\begin{preview}
  \SearchList{newlinel}{\\}{nl}


  This is some nl nonsensical text.

  We may even try nl[30pt] crazy things but it does not\\[30pt] work.
\end{preview}
\end{document}

在此处输入图片描述

相关内容