Lua 字符串中的虚假字符

Lua 字符串中的虚假字符

我正在尝试以编程方式从一些组成字符串生成一个章节标题。简化的 MWE 只是将它们连接起来(实时系统将进行更复杂的处理),但我得到了前导零和中间字符 ˙" (x3F 22)。输入文件是 UTF8 编码的,但 MWE 字符串应该只能是 ASCII。

梅威瑟:

\documentclass[a4paper, 11pt, twoside, onecolumn, dvipsnames, final]{memoir}%

\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}%


\usepackage{luacode,luatexbase} 

\directlua{dofile("TexMacros.lua")}

\newcommand{\Bsection[3]}{\directlua{Bsection(#1,#2,#3)}} % This defines the tex macro

\begin{document} 

\chapter{Chapter the first}

\Bsection{"Section pre-text"}{"T"}{"Section post-text"}

\section{\Bsection{"String pre-text"}{"T"}{"String post-text"}}

\end{document} 

TexMacros.lua文件中的相关函数为:

function Bsection(s, sb, sc)
    local t=""
    t = t..s..sb..sc
    t = string.gsub(t, "[\192-\255][\128-\191]*", "")
    tex.sprint(t)
    return t
end

输出:

Chapter 1
Chapter the first
0Section pre-textT"Section post-text"
1.10String pre-textT"String post-text"

答案1

你的语法\newcommand错了,你想要

\newcommand{\Bsection}[3]{\directlua{Bsection(#1,#2,#3)}} % This defines the tex macro

不是

\newcommand{\Bsection[3]}{\directlua{Bsection(#1,#2,#3)}} % This defines the tex macro

相关内容