请参阅下面的 MWE。
\documentclass{article}
\usepackage{polyglossia}
\usepackage{fontspec}
% Bangla
\setmainlanguage[numerals=Devanagari]{bengali}
\newfontfamily\bengalifont[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi}
\newfontfamily\bengalifontbf[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi}
\newfontfamily\bengalifonttt[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi}
\newfontfamily\bengalifontsf[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi}
\setotherlanguage{english}
\defaultfontfeatures{Ligatures=TeX}
% Times New Roman used
\newfontfamily\englishfont[Mapping=tex-text, Ligatures=TeX]{Times New Roman}
\usepackage{csquotes}
\begin{document}
% LaTeX style quotes
``বাংলা ভাষা''
% Double quotes
"বাংলা ভাষা"
% Using package, produces incorrect results
\enquote{বাংলা ভাষা}
% English LaTeX style quotes
\textenglish{``Bengali Language''}
\end{document}
孟加拉语中的双引号要么显示不正确,要么根本没有显示。
英文版的很好用。
我该如何改善这种情况?
我对这个解决方案并不特别热衷\enquote
。这会给我的大文档带来麻烦。如果可能的话,我想坚持使用 LaTeX 样式的双单引号。
(使用的字体可以在这里。)
编辑1
根据评论中的建议,我将\defaultfontfeatures{Ligatures=TeX}
行移到了行之前\newfontfamily\bengalifont
。不幸的是,这产生了如下输出。
(我还删除了这些csquotes
部分,因为这些不相关。)
没有任何关于缺少连字符或类似情况的警告信息。
答案1
\defaultfontfeatures
在加载您想要应用的字体之前,您首先应该移动声明Ligatures=TeX
。
但是,如果字体没有所需的字形,您可以使用newunicodechar
。您还可以定义孟加拉语引文样式。
\documentclass{article}
\usepackage{polyglossia}
\usepackage{fontspec}
\usepackage{csquotes}
\usepackage{newunicodechar}
\defaultfontfeatures{Ligatures=TeX}
% Bangla
\setmainlanguage[numerals=Devanagari]{bengali}
\newfontfamily\bengalifont{SolaimanLipi}[
Script=Bengali,
AutoFakeBold=4.0,
AutoFakeSlant=0.4,
]
\setotherlanguage{english}
% Times New Roman used
\newfontfamily\englishfont{Times New Roman}
\newcommand{\testchar}[1]{\iffontchar\font`#1\relax#1\else\textenglish{#1}\fi}
\newunicodechar{“}{\testchar{“}}
\newunicodechar{”}{\testchar{”}}
\newunicodechar{‘}{\testchar{‘}}
\newunicodechar{’}{\testchar{’}}
\DeclareQuoteAlias{english}{bengali} % share the English style
\begin{document}
“বাংলা ভাষা”
\enquote{বাংলা ভাষা}
% English LaTeX style quotes
\textenglish{``Bengali Language''}
\textenglish{“Bengali Language”}
\end{document}
但是您需要使用“
和”
。
答案2
这更像是一条带有图片的评论。
查看字体的拉丁文方面,您可能需要添加其他字形。newunicodechar
可能是最好的方法。
根据您需要做的事情、您的习惯以及涉及的键盘切换量(如果有的话),您还可以用孟加拉语定义命令,例如\let\ৡ\section
和
\let\হ\tableofcontents
,然后像平常一样使用它们,\হ
和\ৡ{কাকীকৌ}
。
请注意,SolaimanLipi 字体有粗体版本。
我尝试了一个实验,使用随机字母:
平均能量损失
\documentclass[12pt]{article}
\usepackage{xcolor}
\pagecolor{red!3}
\usepackage{fontspec}
\setmainfont[Script=Bengali]{SolaimanLipi}
\newfontfamily\fpunct{Noto Serif}
\newfontfamily\fdev{Noto Serif Devanagari}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=Bengali,
changecounternumbering=true]{bengali}
\setotherlanguages{english}
\newcommand\bqql{{\fpunct “\thinspace}}
\newcommand\bqqr{{\fpunct\thinspace ”}}
\newcommand\bql{{\fpunct ‘\thinspace}}
\newcommand\bqr{{\fpunct\thinspace ’}}
\newcommand\bc{{\fpunct ,}}
\newcommand\bend{{\fpunct\textendash\ }}
\newcommand\bemd{{\fpunct\textemdash\ }}
\newcommand\bdanda{{\fdev ।\thinspace}}
\newcommand\bddanda{{\fdev ॥\thinspace}}
\let\ৡ\section
\let\হ\tableofcontents
\let\ন\bend
\let\ম\bemd
\let\ড\bdanda
\let\ডড\bddanda
\begin{document}
{\fpunct\small Just to try out the mechanics of the process:}
\হ
\vspace{1ex}
\hrule
\vspace{1ex}
\ৡ{রষেধৗস}
অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql ধৈ\bqr\ \ম ঘৄঙী \ড
\noindent\textbf{অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql ধৈ\bqr\ \ম ঘৄঙী \ড}
\ৡ{কাকীকৌ}
কাকীকৌ \ড \\
কাকীকৌ \ডড
\end{document}
更正:
寻找\section
等的包命令(例如像在 中titletoc
)将找不到\ৡ
,因此一种方法是修补所有内容,或者,继续使用\section
并照常交换键盘。
例如,在目录中为章节编号添加阴影时:
MWE2:
\documentclass[12pt]{article}
\usepackage{xcolor}
\pagecolor{red!3}
\usepackage{fontspec}
\setmainfont[Script=Bengali]{SolaimanLipi}
\newfontfamily\fpunct{Noto Serif}
\newfontfamily\fdev{Noto Serif Devanagari}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=Bengali,
changecounternumbering=true]{bengali}
\setotherlanguages{english}
\newcommand\bqql{{\fpunct “\thinspace}}
\newcommand\bqqr{{\fpunct\thinspace ”}}
\newcommand\bql{{\fpunct ‘\thinspace}}
\newcommand\bqr{{\fpunct\thinspace ’}}
\newcommand\bc{{\fpunct ,}}
\newcommand\bend{{\fpunct\textendash\ }}
\newcommand\bemd{{\fpunct\textemdash\ }}
\newcommand\bdanda{{\fdev ।\thinspace}}
\newcommand\bddanda{{\fdev ॥\thinspace}}
\let\ৡ\section
\let\হ\tableofcontents
\let\ন\bend
\let\ম\bemd
\let\ড\bdanda
\let\ডড\bddanda
\usepackage{tikz}
\usetikzlibrary{shadows.blur}
\newcommand\bframe[1]{%
\begin{tikzpicture}
\node [shade,
top color=red!40,
bottom color=violet!5,
rounded corners=2pt,
blur shadow={shadow blur steps=5,violet}
] {#1};
\end{tikzpicture}%
}
\usepackage{titlesec}
\titleformat{\section}{\large}{\bframe{\thesection}}{0.75em}{}
\usepackage{titletoc}
\titlecontents{section}
[1em]%left
{}%abovecode
{\bframe{\thecontentslabel}\hspace{0.75em}}%numbered format
{\huge}%numberless format
{\titlerule*[1pc]{.}\contentspage} % page number
[]%belowcode
\begin{document}
\হ
\vspace{1ex}
\hrule
\vspace{1ex}
\section{রষেধৗস}
অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql ধৈ\bqr\ \ম ঘৄঙী \ড
\noindent\textbf{অকথষোধৈঘৄঙী \ন অকথষো \bqql ধৈঘৄঙী\bqqr\ অকথষো \ম\bql
\begin{tikzpicture}
\node [shade,
top color=blue!40,
bottom color=blue!5,
rounded corners=2pt,
blur shadow={shadow blur steps=5}
] {ধৈ};
\end{tikzpicture}
\bqr\ \ম ঘৄঙী \ড}
\section{কাকীকৌ}
কাকীকৌ \ড \\
কাকীকৌ \ডড
\end{document}