LuaLaTeX 可以在正文中正确显示土耳其语小写字母“i”,但在脚注中却无法正确显示。有什么解决办法吗?
这里有一个梅威瑟:
%!TEX program = lualatex
\documentclass[11pt]{memoir}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{turkish}
\usepackage[semibold]{libertine}
\begin{document}
In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.\footnote{In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}
\end{document}
答案1
使用以下选项加载字体Language=Turkish
:
\documentclass[11pt]{memoir}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{turkish}
\setmainfont{Linux Libertine O}[
Language=Turkish,
BoldFont=* Semibold,
BoldItalicFont=* Semibold Italic,
]
\setlength{\textheight}{2cm}
\begin{document}
In Turkish, `\textsc{ı}' and `\textsc{i}' are different
letters.\footnote{In Turkish, `\textsc{ı}' and `\textsc{i}'
are different letters.}
\textbf{Abc} \textbf{\textit{Abc}}
\end{document}
答案2
我认为这不是必要的,但你可以在脚注中重申土耳其语:
\documentclass[11pt]{memoir}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{turkish}
\usepackage[semibold]{libertine}
\begin{document}
In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.
{\footnotesize In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}
x\footnote{\textturkish{In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}}
\end{document}
我认为根本原因是\normalfont
\documentclass[11pt]{memoir}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{turkish}
\usepackage[semibold]{libertine}
\begin{document}
In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.
{\footnotesize In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}
{\normalfont\footnotesize In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}
x\footnote{In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}
x\footnote{\textturkish{In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}}
\end{document}
\normalfont
(用于重置脚注、标题和其他地方的字体)最终选择LinLibertine(0)
,而对于土耳其语来说应该是,
LinLibertine(9)
我不确定这是不是的责任fontspec
,polyglossia
但我会问......
答案3
babel 有一个新的界面来设置语言相关的字体。它似乎可以正确处理这个问题:
\documentclass[11pt]{memoir}
\usepackage[english,turkish]{babel}
\babelfont[english]{rm}[Language=Default]{Linux Libertine O}
\babelfont[turkish]{rm}[Language=Turkish]{Linux Libertine O}
\begin{document}
In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.%
\footnote{In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters.}
\selectlanguage{english}
In english, `\textsc{ı}' and `\textsc{i}' %
\footnote{In english, `\textsc{ı}' and `\textsc{i}'}
\end{document}
但是您将无法使用 libertine 包。babel 文档明确指出您必须使用 和\babelfont
而不是 来设置字体\setXXfont
。