我目前正在准备一篇论文,其中在脚注中大量使用了西里尔字体。现在我遇到了两个问题:首先,实际字体不使用斜体,尽管 – 正如 Microsoft Office 清楚显示的那样 – 斜体西里尔文字可用;其次,我使用带有法语 Guillemets/Chevrons 的 csquote,我无法轻松地将它们包括在内 – 更具体地说是单个 Guillemets/Chevrons(例如 ‹/›)。有没有办法解决其中一个或两个问题?
\documentclass[a4paper,12pt]{scrreprt}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[french,USenglish,UKenglish,bulgarian,ngerman]{babel}
\usepackage{lmodern}
\usepackage{relsize}
\usepackage[babel,style=swiss,maxlevel=3,threshold=3]{csquotes}
\newenvironment*{smallquote}
{\quote\singlespacing\smaller}
{\endquote}
\SetBlockEnvironment{smallquote}
\begin{document}
Hello.\footnote
{
\enquote{\begin{otherlanguage*}{bulgarian}\enquote*{\textit{Здрасти}.}\end{otherlanguage*}
}
\end{document}
答案1
关于斜体,最简单的方法是,正如评论中建议的那样,不要使用 lmodern。关于单行字体:它在 T2A 中不存在,但你可以改用 T1 版本。我也会避免使用 ucs/utfx。在当前的 latex 中,你实际上根本不需要加载 inputenc。utf8 无论如何都是默认的。
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[french,USenglish,UKenglish,bulgarian,ngerman]{babel}
%\usepackage{lmodern}
\usepackage{relsize}
\usepackage[babel,style=swiss,maxlevel=3,threshold=3]{csquotes}
\newenvironment*{smallquote}
{\quote\singlespacing\smaller}
{\endquote}
\SetBlockEnvironment{smallquote}
\usepackage{fonttable}
\DeclareTextSymbolDefault\guilsinglright{T1}
\DeclareTextSymbolDefault\guilsinglleft{T1}
\begin{document}
\enquote{\enquote*{\textit{Hallo}.}}
\selectlanguage{bulgarian}
\enquote{\enquote*{\textit{Здрасти}.}}
\end{document}
答案2
Latin Modern 不支持西里尔文,但你可以改用 Computer Modern Cyrillic。或者你有大量字体系列可供选择,请参阅哪些字体与 T2A(西里尔文)编码兼容?
这里有几个例子,还有一些简化输入的建议\babeltags
。
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[T2A,T1]{fontenc}
\usepackage[french,USenglish,UKenglish,bulgarian,ngerman]{babel}
\usepackage{relsize}
\usepackage[babel,style=swiss,maxlevel=3,threshold=3]{csquotes}
% the following packages provide fonts supporting Cyrillic
%\usepackage{paratype}
%\usepackage{tempora}
% otherwise
\usepackage{lmodern}
\DeclareFontFamilySubstitution{T2A}{lmr}{cmr}
\DeclareFontFamilySubstitution{T2A}{lmss}{cmss}
\DeclareFontFamilySubstitution{T2A}{lmtt}{cmtt}
\babeltags{bg=bulgarian}
\DeclareTextSymbolDefault\guilsinglright{T1}
\DeclareTextSymbolDefault\guilsinglleft{T1}
\begin{document}
\section{Latin+Computer Modern}
\enquote{Hello.} \enquote{\textbg{\textit{Здрасти}.}}\\
\enquote*{Hello.} \enquote*{\textbg{\textit{Здрасти}.}}
\section{ParaType}
\fontfamily{PTSerif-TLF}\selectfont
% to emulate \usepackage{paratype}
\enquote{Hello.} \enquote{\textbg{\textit{Здрасти}.}}\\
\enquote*{Hello.} \enquote*{\textbg{\textit{Здрасти}.}}
\section{Tempora}
\fontfamily{Tempora-TLF}\selectfont
% to emulate \usepackage{tempora}
\enquote{Hello.} \enquote{\textbg{\textit{Здрасти}.}}\\
\enquote*{Hello.} \enquote*{\textbg{\textit{Здрасти}.}}
\end{document}
答案3
您使用不包含西里尔字体的拉丁现代字体。
如果你需要同时使用拉丁现代 T1 编码和斜体西里尔文本,你可以在 替代字体文档。
另外,考虑使用\guilsinglleft{}
、\guilsinglright{}
和\guillemotleft{}
来\guillemotright{}
引号。
\documentclass[a4paper,12pt]{scrreprt}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage[french,USenglish,UKenglish,bulgarian,ngerman]{babel}
% Combine "Latin Modern" fonts for Latin and
% "CLG" fonts for Cyrillic.
\usepackage{substitutefont}
\usepackage{lmodern}
\substitutefont{T2A}{lmr}{fcm}
\substitutefont{T2A}{lmss}{fcs}
\substitutefont{T2A}{lmtt}{fct}
\DeclareTextSymbolDefault{\guilsinglright}{T1}
\DeclareTextSymbolDefault{\guilsinglleft}{T1}
\begin{document}
Hello.\footnote
{
\begin{otherlanguage*}{bulgarian}{
\textit{
\guilsinglleft{}\guillemotleft{}Здрасти\guillemotright{}\guilsinglright{}}.}
\end{otherlanguage*}
}
\end{document}