该xesearch
包允许用其他文本替换文本。例如:
\documentclass{ctexbook}
\usepackage{fontspec}
\usepackage{xesearch}
\SearchList{list1}{newspaper}{book}
\begin{document}
The book costs \$1.
\end{document}
当文档编译时,它会显示“报纸的价格为 1 美元。”当我尝试使用其他语言(例如\SearchList{list1}{书}{book}
)时,它会打印“报纸的价格为 1 美元。”(字符应该出现的位置有空格),但是,文档在文档的其他地方显示相同的字符“书”没有任何困难。
我怎样才能替换外文字符?
更新:
代码成功替换了字符,但是替换文本中的行并没有断开:
\documentclass[a5paper]{ctexbook}
\pdfpagewidth=148mm
\pdfpageheight=210mm
\usepackage{fontspec}
\setmainfont{Adobe Song Std}
\setCJKmainfont{Adobe Song Std}
\usepackage{xesearch}
\SearchList{list1}{床前明月光,疑是地上霜。举头望明月,低头思故乡。}{poem}
\begin{document}
\Huge
\noindent 床前明月光,疑是地上霜。举头望明月,低头思故乡。 \\
\noindent poem \\
\end{document}
答案1
\makexeCJKactive
在 的第二个参数的开头添加\SearchList
。这有效:
\documentclass[a5paper]{ctexbook}
\pdfpagewidth=148mm
\pdfpageheight=210mm
\usepackage{fontspec}
\setmainfont{Adobe Song Std}
\setCJKmainfont{Adobe Song Std}
\usepackage{xesearch}
\SearchList{list1}{\makexeCJKactive 床前明月光,疑是地上霜。举头望明月,低头思故乡。}{poem}
\begin{document}
\Huge
\noindent 床前明月光,疑是地上霜。举头望明月,低头思故乡。 \\
\noindent poem \\
\end{document}
警告:我还没有对xesearch
软件包进行足够的测试。任何两个使用\XeTeXinterchartoks
大量不同的软件包都可能无法很好地协同工作。我不确定xesearch
。
答案2
这有效:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Kai}
\usepackage{xesearch}
\SearchList{list1}{书}{book}
\begin{document}
The book costs \$1.
\end{document}
当前字体必须包含字形。如果不包含,则要求 XeLaTeX 使用包含该字形的字体:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\newfontfamily{\kanjifont}{Kai}
\usepackage{xesearch}
\SearchList{list1}{{\kanjifont 书}}{book}
\begin{document}
The book costs \$1.
\end{document}
(我使用了一种可以更清楚地显示差异的主字体。)
对于较长的字符串,您必须重置语言环境。至少对于此代码,两行的结果是相同的:
\documentclass[a5paper]{ctexbook}
\pdfpagewidth=148mm
\pdfpageheight=210mm
\usepackage{fontspec}
\setmainfont{Kai}
\setCJKmainfont{Kai}
\usepackage{xesearch}
\def\1{\XeTeXlinebreaklocale "zh" \XeTeXlinebreakskip = 0pt plus 20pt\relax}
\SearchList{list1}{{\1床前明月光,疑是地上霜。举头望明月,低头思故乡。}}{poem}
\begin{document}
\Huge
\noindent 床前明月光,疑是地上霜。举头望明月,低头思故乡。 \\
\noindent poem \\
\end{document}
但一些 xeCJK 专家可能会提供更好的帮助。
然而,xesearch
这不是适合此目的的正确工具:\poem
扩展为的 宏床前明月光,疑是地上霜。举头望明月,低头思故乡。
会更有用。