章节标题分为两部分

章节标题分为两部分

我正在写一份包含两种文字的文件:天城文和罗马/拉丁/英语。我的想法是,每节梵文诗句都应在其下方有罗马文字的音译。但是,整篇文档从头到尾都应使用梵文。

我也想将此格式应用于章节标题。polyglossia我希望章节标题采用梵文风格,例如 अथ प्रथमोऽध्यायः(字面意思是“因此(或“如此开始”)第一章(प्रथमो)章节(ऽध्यायः)”),而不是英文标题“第 1 章”(或任何可以轻松实现的梵文对应词),但下面有罗马字母对应词:彼岸花

现在,迄今为止最简单的解决方法就是将所有格式都放在里面\chapter*{},因此:

\documentclass[12pt]{report}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{fontspec}
\newfontfamily{\SA}[Script=Devanagari]{Sanskrit 2003}

\begin{document}

\chapter*{\normalfont {\SA अथ प्रथमोऽध्यायः} \\[12pt]
  \textit{Atha Prathamo 'dhy\={a}ya\d{h}}}
    
\end{document}

这正是所需的外观(我不希望在音译中使用粗体斜体,但这不是什么大问题。尝试使梵文字体变为粗体可能会生成警告,告诉我粗体字体不存在,但这些警告是可以忍受的)但它有点脏。

我想要一个带有\chapter(*)两个参数的自定义版本,一个用于天城文,一个用于罗马文,即:

\chapter*{{\SA अथ प्रथमोऽध्यायः}}{Atha Prathamo 'dhy\={a}ya\d{h}}

但我不确定该怎么做。

我更愿意修改现有命令,例如\chapter,因为我过去尝试从头定义自己的分段命令时遇到过麻烦。此外,本文档中的所有章节都将采用这种风格,并且只能采用这种风格,而且由于它们是章节,因此将使用的命令称为\chapter

答案1

好吧,我的方法是钻到引擎盖下面,开始report工作\@chapter\@makechapterhead

\documentclass[12pt,final]{report}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{fontspec}
\newfontfamily{\SA}[Script=Devanagari]{Sanskrit 2003}

\makeatletter
\def\@chapter[#1]#2#3{\ifnum \c@secnumdepth >\m@ne
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}{#3}]%
                    \else
                      \@makechapterhead{#2}{#3}%
                      \@afterheading
                    \fi}
\def\@makechapterhead#1#2{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \Huge #1
    \par\nobreak
    \Huge #2\par\nobreak
    \vskip 40\p@
  }}
\makeatother

\begin{document}

\chapter{{\SA अथ प्रथमोऽध्यायः}}{\tlit{Atha prathamo 'dhy\={a}ya\d{h}}}

{\SA धृतराष्ट्र उवाच । \\
धर्मक्षेत्रे कुरुक्षेत्रे समवेता युयुत्सवः । \\
मामकाः पाण्डवाश्चैव किमकुर्वत सञ्जय ॥ १-१ ॥}

\end{document}

它看起来确实恰到好处,但我不知道我是否有犯过什么错误!

相关内容