我使用 LuaLaTeX 排版阿拉伯语文本,发现生成的 PDF 中经常会出现源文本中不可见的字符 - 它是 unicode 字符200f
:从右到左的标记。我不知道为什么这个字符会打印在输出中,但它确实存在,不应该在那里。
当然,我可以手动将它们全部删除,但是它们太多了,我担心它们会出现在印刷的书中。
输入是:(للشى ء
在 tex.sx 上是可见,在 TexShop 中则不可见)。
输出为:
那么有没有办法可以简单地将它们全部删除?(搜索/替换不起作用),即我可以在不破坏文档中其他任何内容的情况下将其添加到序言中的命令?
这是一个 MWE:
% !TEX TS-program = lualatex
\documentclass[36pt]{scrartcl}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
\newfontfamily\arabicfont[Script=Arabic]{Arabic Typesetting}
\newcommand{\arabtext}[1] % Arabic inside LTR
{\bgroup\luatextextdir TRT\arabicfont #1\egroup}
\begin{document}
\arabtext{للشىء}
\end{document}
答案1
\catcode
您可以将“从右到左标记”的设置为 9,这将使其被忽略. 代码如下
\catcode"200F=9