哪些软件包为 LaTeX、XeTeX 和 LuaLaTeX 提供文本/命令替换?

哪些软件包为 LaTeX、XeTeX 和 LuaLaTeX 提供文本/命令替换?

我知道以下情况:

探索研究- 允许文本和命令替换。仅适用于 XeLaTeX

简单示例:

\usepackage{xesearch} 
\SearchList{list1}{Hello}}{hlw}

任何时候,只要 XeLaTex 文档中出现“hlw”,它就会扩展为“Hello”。可以使用命令代替“Hello”,并且在大多数情况下都有效。

缩写- 允许文本替换。我认为它不会进行命令替换。据我所知,LaTeX 和 LuaLaTeX

简单示例:

 \usepackage{abbrevs)
 \newabbrev\hlw{Hello}

只要“hlw”出现在 LaTeX 或 LuaLaTeX 文档中,它就会扩展为“Hello”。

鸡化- 通过其“substitutewords”功能。不确定命令替换。文档将其标识为仅 LuaTeX/LuaLaTeX 解决方案。如果您希望“chickenize”您的文档,它还会将文档中的每个单词替换为“chicken”。

字符串-?

l3regex-

字符串-?

lua代码- 允许文本和命令替换。它提供宏(例如 \luaexec 和 \luastring)和环境(例如 luacode 和 luacode*),允许程序员创建可以完全访问 Lua 强大的字符串库的 Lua 函数。当然只有 LuaLaTeX。感谢 Mico 提供的以下答案以及文本和命令替换的示例。

还有哪些替代包?

对于每一个,它只是文本,还是可以用命令替代?

该包可以在哪个 TeX 变体中使用?

每个包中的简单示例是什么样的?

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

有关的:自动格式化 PDFLaTeX 文档中关键字列表中的单词

有关的:乳胶命令后的空格

答案1

LuaLaTeX 嵌入了 Lua 脚本语言,提供了一组强大而灵活的字符串操作函数。通过宏\directlualua代码包,LuaLaTeX 提供了对这些字符串函数的轻松访问。通过使用 LuaLaTeX,可以轻松滚动自己的文本和宏替换例程。


根据 OP 的后续请求,这里有一个 Lua 代码示例,它在整个文档中执行文本和命令替换。(附言:Lua 函数string.gsub非常强大;此处显示的示例当然不是为了展示 的全部功能和多功能性string.gsub!)

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{article}

\usepackage{luacode}
\begin{luacode}
function replace_dark_with_bright ( s )
  s = string.gsub ( s, "dark" , "bright" )
  return s
end    
function replace_bf_with_em ( s )
  s = string.gsub ( s, "\\textbf" , "\\emph" )
  return s
end    
\end{luacode}
\AtBeginDocument{%
  \directlua{luatexbase.add_to_callback ( 
    "process_input_buffer", replace_dark_with_bright, "replace_dark_with_bright" )}
  \directlua{luatexbase.add_to_callback ( 
    "process_input_buffer", replace_bf_with_em , "replace_bf_with_em" )}}

\begin{document}
Always look on the dark side of life.

To \textbf{emphasize} a word.
\end{document}

相关内容