我目前正在进行一个项目,其中我使用 RomDev 映射技术通过 XeLaTeX 打印使用罗马音译的天城文字符。
最小工作示例如下:
\usepackage{polyglossia}
%%%%%%%%%%%%%%%%%%%%%%%
\setmainfont{Lato}
\newfontfamily\fc{Lohit Devanagari}[Mapping=RomDev,Script=Devanagari]
\newfontfamily\fsh{Lohit Devanagari}[Script=Devanagari]%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\chapter{\fc{arjuna viṣāda yoga} -- Arjuna viṣāda yoga}
\begin{center}
\textbf{\textbar{}\textbar{} 1.1 \textbar{}\textbar{}}
\fc{
\textit{dhṛtarāṣṭra uvāca}
dharmakṣetre kurukṣetre samavetā yuyutsavaḥ |
māmakāḥ pāṇḍavāścaiva kimakurvata sañjaya}
\end{center}
\begin{center}
\textit{dhṛtarāṣṭra uvāca}
dharma-kṣetre kuru-kṣetre
samavetā yuyutsavaḥ
māmakāḥ pāṇḍavāś caiva
kim akurvata sañjaya
\end{center}
\begin{center}
\textbf{ \textbar{}\textbar{} 1.2 \textbar{}\textbar{}}
\fc{\textit{sañjaya uvāca}
dṛṣṭvā tu pāṇḍavānīkaṃ vyūḍhaṃ duryodhanastadā | \textbar{}
ācāryamupasaṅgamya rājā vacanamabravīt}
\end{center}
\begin{center}
\textit{sañjaya uvāca}
dṛṣṭvā tu pāṇḍavānīkaṁ
vyūḍhaṁ duryodhanas tadā
ācāryam upasaṅgamya
rājā vacanam abravīt
\end{center}
\begin{center}
\textbf{\textbar{}\textbar{} 1.3 \textbar{}\textbar{}}
\\ \fc{paśyaitāṃ pāṇḍuputrāṇāmācārya mahatīṃ camūm
vyūḍhāṃ drupadaputreṇa tava śiṣyeṇa dhīmatā}
\end{center}
\begin{center}
paśyaitāṁ pāṇḍu-putrāṇām
ācārya mahatīṁ camūm
vyūḍhāṁ drupada-putreṇa
tava śiṣyeṇa dhīmatā
\end{center}
\begin{center}
\textbf{ \textbar{}\textbar{} 1.4 \textbar{}\textbar{}}
\\ \fc{atra śūrā maheṣvāsā bhīmārjunasamā yudhi
yuyudhāno virāṭaśca drupadaś ca mahārathaḥ
}
\end{center}
\begin{center}
atra śūrā maheṣvāsā
bhīmārjuna-samā yudhi
yuyudhāno virāṭaś ca
drupadaś ca mahā-rathaḥ
\end{center}
\begin{center}
\textbf{ \textbar{}\textbar{} 1.5 \textbar{}\textbar{}}
\\
\fc{dhṛṣṭaketuścekitānaḥ kāśirājaśca vīryavān
purujit kuntibhojaśca śaibyaśca narapuṅgavaḥ}
\end{center}
\begin{center}
dhṛṣṭaketuś cekitānaḥ
kāśirājaś ca vīryavān
purujit kuntibhojaś ca
śaibyaś ca nara-puṅgavaḥ
\end{center}
\begin{center}
\textbf{ \textbar{}\textbar{} 1.6 \textbar{}\textbar{}}
\\
\fc{yudhāmanyuśca vikrānta uttamaujāśca vīryavān
saubhadro draupadeyāśca sarva eva mahārathāḥ}
\end{center}
\begin{center}
yudhāmanyuś ca vikrānta
uttamaujāś ca vīryavān
saubhadro draupadeyāś ca
sarva eva mahā-rathāḥ
\end{center}
\begin{center}
\textbf{ \textbar{}\textbar{} 1.7 \textbar{}\textbar{}}
\\ \fc{asmākaṃ tu viśiṣṭā ye tānnibodha dvijottama
nāyakā mama sainyasya saṃjñārthaṃ tānbravīmi te}\\
\end{center}
\begin{center}
asmākaṁ tu viśiṣṭā ye
tān nibodha dvijottama
nāyakā mama sainyasya
saṁjñārthaṁ tān bravīmi te
\end{center}
\end{document}
我分享了一个链接,其中有确切问题的屏幕截图。它显示了标题是如何混乱的。此外,我们还可以看到我们如何能够完美地生成罗马音译和梵文脚本。
我的问题是:
- 为什么标题中的梵文字符会混乱?如何纠正?
- 我可以让标题不采用斜体+大写格式吗?
提前致谢。
答案1
修改后的答案:
通过评论中提供的 MWE 代码,可以更清楚地了解正在发生的事情。
幸运的是,fancyhdr
允许自定义页眉和页脚的软件包在文档中解释了默认页面样式\textsl
(倾斜文本)和\MakeUppercase
页眉等内容。
xelatex 中的映射是最后一步,在本例中\MakeUppercase
是在命令应用于章节标题之后。
是\MakeUppercase
正在转换r
为R
等,并且映射文件未设置为定义输入R
应映射到哪个字形,因此它没有被映射,并且以它本身的形式出现在输出中。其他未映射的字符也是如此。映射的字符(如A
)被转换为 Deva OK。
fancyhdr
该包提供了一些关于对 TeX 标记机制所使用的命令进行更改的效果的教程示例。
其中一个例子是:
\renewcommand{\chaptermark}[1]{%
\markboth{\chaptername
\ \thechapter.\ #1}{}}
在这种情况下,这对我们来说是一个合适的解决方案,我们用它来实现这个:
平均能量损失
%compile with xelatex for mapping to take effect
\documentclass{book}
\renewcommand{\chaptermark}[1]{%
\markboth{\chaptername
\ \thechapter.\ #1}{}}
\usepackage{fontspec, lipsum}
\newfontfamily\fc{Lohit Devanagari}[Mapping=RomDev,Script=Devanagari]
\newfontfamily\fsh{Lohit Devanagari}[Script=Devanagari]
%========================================
\begin{document}
\chapter{sample-{\fc bhāratam}-{\fsh भारतम्}}
\lipsum[1-25]
\end{document}
原始答案:
使用.map
11 年前这里的文件:
https://github.com/somadeva/RomDev
并使用 teckit_compile 编译为.tec
二进制文件:
(1)要通过 RomDev 映射获取天城文字符,请使用 RomDev 映射中的拉丁字符输入。
R
未被映射。
R
+ 元音被映射,r
+ 辅音被映射等等,但R
+ 辅音没有被映射。
(2) 标题问题的答案取决于所使用的软件包和代码。请提供一个小型但可行的示例,以便人们可以查看并测试他们的答案。
平均能量损失
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Noto Serif}
\setsansfont{Noto Sans}
\newfontfamily\fc{Shobhika}[Mapping=RomDev,Script=Devanagari]
\newfontfamily\fsh{Shobhika}[Script=Devanagari]
%========================================
\begin{document}
\begin{tabular}{ccc}
{\fc arjun} & \fc Arjun & \fc ARJUN \\
arjun & Arjun & ARJUN \\
\end{tabular}
\section{{\fc arjun} Arjun}
\begin{tabular}{cc}
Map from & Map to \\
a & \fc a \\
r & \fc r \\
R & \fc R\\
ro & \fc ro \\
Ro & \fc Ro\\
rj & \fc rj \\
Rj & \fc Rj\\
Ṛ & \fc Ṛ\\
Ṝ & \fc Ṝ\\
\end{tabular}
\end{document}