从中文字符串变量中提取子字符串

从中文字符串变量中提取子字符串

看起来该stringstrings包可以做到这一点:

\substring{This is a string.}{1}{4}

给出了This,但对于非 ASCII 字符似乎失败了:

\substring{这是一个句子。}{1}{4}

不能给予这是一个

有没有类似的适用于汉字的软件包?

答案1

如果您可以切换到 LuaLaTeX,那么创建一个调用 Lua 函数的“包装器” LaTeX 宏就很简单了unicode.utf8.sub。(unicode.utf8.sub是标准函数的支持 utf8 的版本string.sub。)

在此处输入图片描述

\documentclass{article}
\usepackage{fontspec}
\setmainfont{MingLiU} % or whatever font you prefer
\newcommand\substring[3]{\directlua{%
   tex.sprint( unicode.utf8.sub ( "#1", #2 , #3 ) ) }}
\begin{document}
这是一个句子。

\substring{这是一个句子。}{1}{4}
\end{document}

相关内容