是否可以在另一种字体中使用一种字体的标点符号?

是否可以在另一种字体中使用一种字体的标点符号?

我正在尝试根据 Word 中的翻译将英文文档转换为印地语。但是,我很难找到一种能满足我需求的字体。由于我正在处理 XeLaTeX 中的现有文档,因此我需要带有粗体和斜体的字体,而许多印地语 Unicode 字体都没有这些字体。

我找到了一种可以满足我要求的字体(奥修),但我不喜欢它的标点符号(例如,逗号看起来像“撤消”类型的向上箭头)。我可以使用 Osho 字体,而标点符号来自其他字体吗?

我现在已在下面包含了我的文件的示例 - 其中一些代码可能不是必需的,但我认为大部分都是必要的 - 并且从风格上来说,大量代码已被省略。

\documentclass[twoside]{report}
\usepackage{fontspec} 
\usepackage{polyglossia} 
\usepackage{xltxtra} 
\setdefaultlanguage{hindi}
\setotherlanguage{english}
\setmainfont[Script=Devanagari,Ligatures=TeX]{Osho}
\newfontfamily\devanagarifont[Script=Devanagari,Ligatures=TeX]{Osho}
%\setotherfont[Script=English,Ligatures=TeX]{Times New Roman}
\newfontfamily{\englishfont}{Times New Roman}
\usepackage{newunicodechar}
\newunicodechar{‘}{{\englishfont ‘}}
\newunicodechar{’}{{\englishfont ’}}

\begin{document}

\section{परमेश्वर का प्रेरित वचन}

बाइबल की 66 पुस्तकें विशेष क्या है? क्या परमेश्वर ने अन्य दूसरी पुस्तकें भी लिखी है? इस अंक में हम 
‘‘प्रेरणा’’पर विचार करेंगे, जिसके द्वारा परमेश्वर ने बाइबल को लिखा। (2~पतरस 1:12-2:3)

\end{document}

答案1

您可以定义一个专门用于标点符号的特定字体命令fontspec。在此示例中,我创建了一个\englishfont拉丁字母系列(您的命令不太正确),然后我创建了一个\punct仅用于标点符号的命令,该命令使用\englishfont。它需要一个参数,可以是您想要的其他字体中的任何字符串,例如\punct{``}

为了方便起见,我演示了如何创建进一步的宏来简化标点符号的输入,例如\qql左双引号(请注意,必须在这些宏{}后面放置或空格。

据我所知,这在 LuaLaTeX 中运行良好。使用 XeLaTeX 时,我收到一些错误消息,并且一些字符无法正确显示。(我不懂印地语,我的文本编辑器处理梵文字符时表现异常,因此对于示例中的文本混乱,我深表歉意。)

\documentclass[twoside]{report}
\usepackage{fontspec} 
\usepackage{xltxtra} % not needed with LuaLaTeX 

\usepackage{polyglossia} 
\setdefaultlanguage{hindi}
\setotherlanguage{english}

\setmainfont[Script=Devanagari,Ligatures=TeX]{Osho}
\newfontfamily{\englishfont}[Script=Latin,Ligatures=TeX]{Times New Roman}
\newcommand{\punct}[1]{\bgroup\englishfont #1 \egroup}

\newcommand{\qql}{\punct{``}}
\newcommand{\qqr}{\punct{''}}
\newcommand{\ql}{\punct{`}}
\newcommand{\qr}{\punct{'}}

\begin{document}

\section{परमेश्वर का प्रेरित वचन}

बाइबल की 66 पुस्तकें विशेष क्या है? क्या परमेश्वर ने अन्य दूसरी पुस्तकें भी लिखी है? इस अंक में हम 
\punct{‘‘}प्रेरणा’’पर विचार करेंगे, जिसके द्वारा परमेश्वर ने बाइबल को लिखा। (2~पतरस 1:12-2:3)

\qql{}प्रेरणा’’पर \ql{}विचार करेंगे, जि\qr{} द्वारा परमेश्वर ने\qqr{}   बाइबल को लिखा। (2~पतरस 1:12-2:3)
\end{document}

在此处输入图片描述

答案2

您可以使用\newunicodechar更复杂的方法来检查下一个字符是否相同。我们需要一个不同的活动字符(此处?),因为\newunicodechar已经~在内部使用了。

\documentclass[twoside]{report}
\usepackage{fontspec} 
\usepackage{polyglossia} 
\setdefaultlanguage{hindi}
\setotherlanguage{english}
\setmainfont[Script=Devanagari,Ligatures=TeX]{Devanagari MT}
\newfontfamily\devanagarifont[Script=Devanagari,Ligatures=TeX]{Devanagari MT}

\newfontfamily{\englishfont}{Times New Roman}
\usepackage{newunicodechar}

\makeatletter
\begingroup\catcode`?=\active \lccode`?=`‘
\lowercase{\endgroup
  \newunicodechar{‘}{\@ifnextchar?{{\englishfont “}\@gobble}{{\englishfont ‘}}}
}
\begingroup\catcode`?=\active \lccode`?=`‘
\lowercase{\endgroup
\newunicodechar{’}{\@ifnextchar?{{\englishfont ”}\@gobble}{{\englishfont ’}}}
}
\makeatother

\begin{document}

\section{परमेश्वर का प्रेरित वचन}

बाइबल की 66 पुस्तकें विशेष क्या है? क्या परमेश्वर ने अन्य दूसरी पुस्तकें भी लिखी है? इस अंक में हम 
‘‘प्रेरणा’’पर विचार करेंगे, जिसके द्वारा परमेश्वर ने बाइबल को लिखा। (2~पतरस 1:12-2:3)

‘बाइबल’
\end{document}

在此处输入图片描述

相关内容