![使用 CM 类字体以粗体书写西里尔字母](https://linux22.com/image/450664/%E4%BD%BF%E7%94%A8%20CM%20%E7%B1%BB%E5%AD%97%E4%BD%93%E4%BB%A5%E7%B2%97%E4%BD%93%E4%B9%A6%E5%86%99%E8%A5%BF%E9%87%8C%E5%B0%94%E5%AD%97%E6%AF%8D.png)
我尝试在文档中写粗体西里尔字母,但无法获得令人满意的解决方案。
我发现CTAN.org 上的一个例子带有源代码这里使用该substitutefont
包。
我想要做的是使用类似 CM 的字体来书写西里尔文,就像他们在 PDF 的“bf”行上所做的那样。我目前有:
\documentclass[11pt,a4paper]{exam}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,french]{babel}
\usepackage{lmodern}
%%%%%%% Other packages used %%%%%%%
\usepackage[style=ddmmyyyy,datesep=/]{datetime2} % Pour formater la date
\usepackage{graphicx} % Pour l'import d'image
\usepackage[export]{adjustbox} % Pour l'alignement des images
\usepackage{tikz} % Pour créer des graphes
\usepackage{tabularx} % Extension pour les tables (tabular)
\usepackage{enumitem} % Extension pour les listes (itemize)
\usepackage{svg} % Pour importer des images SVG
\usepackage{multicol} % pour afficher des portions de textes sur plusieurs colonnes
\setlength{\columnsep}{2.5cm}
\usepackage{caption}
\usepackage{makecell}
\usepackage{tcolorbox}
\usepackage{amsmath}
\usepackage{alltt}
\usepackage{colortbl}
\usepackage{zref-savepos}
\usepackage{multirow}
\usepackage{xhfill}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{substitutefont}
\substitutefont{T2A}{lmr}{fcm}
\substitutefont{T2A}{lmss}{fcs}
\substitutefont{T2A}{lmtt}{fct}
% [...] %
% Used to write answers in red and bold
\printanswers\unframedsolutions\SolutionEmphasis{\bfseries\color{red}}\renewcommand{\solutiontitle}{}\CorrectChoiceEmphasis{\bfseries\color{red}}
\begin{document}
% [...] %
\pointsinrightmargin
\noindent En répondant correctement à cette question bonus, vous pouvez obtenir directement la note maximale de $\frac{10}{10}$. Malheureusement elle n'est pas écrite en français.
\qformat{\textbf{Question Bonus} \thequestiontitle(\thepoints) :\hfill}
\begin{questions}
\titledquestion{}[10]
% "Тим Бернерс-Ли" doesn't show up in bold
\foreignlanguage{russian}{Кто изобрел Всемирную паутину?} \ifprintanswers \fillin[\foreignlanguage{russian}{Тим Бернерс-Ли} (Tim Berners-Lee)][9.15cm] \else \hrulefill \fi
\end{questions}
\end{document}
因此,我使用考试文档类并使用命令\printanswers
以红色和粗体形式写下答案。它对拉丁文本非常有效,但俄语文本不会以粗体显示。
我使用了在 CTAN.org 上找到的示例,但似乎不起作用。我一直收到以下错误:
没有针对形状 T2A/fcm/m/n 的声明。sub@sfcnt ...e forspace shapespace required@arg } 没有
针对形状 T2A/fcm/bx/n 的声明。sub@sfcnt ...e forspace shapespace required@arg }
我的代码有什么问题?
答案1
使用la
字体(西里尔语版本cm
):
\documentclass[11pt,a4paper]{exam}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian,french]{babel}
\usepackage{lmodern}
\usepackage{xcolor}
\DeclareFontFamilySubstitution{T2A}{lmr}{cmr}
\DeclareFontFamilySubstitution{T2A}{lmss}{cmss}
\DeclareFontFamilySubstitution{T2A}{lmtt}{cmtt}
% [...] %
% Used to write answers in red and bold
\printanswers
\unframedsolutions
\SolutionEmphasis{\bfseries\color{red}}
\renewcommand{\solutiontitle}{}
\CorrectChoiceEmphasis{\bfseries\color{red}}
\begin{document}
\pointsinrightmargin
\noindent En répondant correctement à cette question bonus, vous pouvez
obtenir directement la note maximale de $\frac{10}{10}$. Malheureusement
elle n'est pas écrite en français.
\qformat{\textbf{Question Bonus} \thequestiontitle(\thepoints) :\hfill}
\begin{questions}
\titledquestion{}[10]
% "Тим Бернерс-Ли" doesn't show up in bold
\foreignlanguage{russian}{Кто изобрел Всемирную паутину?}
\ifprintanswers
\fillin[\foreignlanguage{russian}{Тим Бернерс-Ли} (Tim Berners-Lee)][9.15cm]
\else
\hrulefill
\fi
\end{questions}
\end{document}
但我得到了非常相似的结果
\DeclareFontFamilySubstitution{T2A}{lmr}{fcm}
\DeclareFontFamilySubstitution{T2A}{lmss}{fcs}
\DeclareFontFamilySubstitution{T2A}{lmtt}{fct}
答案2
你可以改进答案链接使用包裹babel
,或者直接使用它。链接中的答案调用了包裹newcomputermodern
可能是目前为止最好的一个(它可以在 Computer Modern 字体中调用不同形状和粗细的俄文字母)将英语或其他语言与俄语混合编写文档。
此外,答案链接提供了一种在计算机上调用任何其他语言的任意字体的方法。例如,对于英语,我们有很好的 Times 字体选择,如果我们想以这种方式调用希腊语或俄语的类似 Times 字体,那么我们只需在我们的计算机上安装在我脑海中已经存在于世界中的希腊语或俄语的类似 Times 字体即可。
答案3
CM Unicode.otf
字体包含拉丁文和西里尔文(以及希腊文):
并且可作为分发版的一部分使用(在 中.../texmf-dist/fonts/opentype/public/cm-unicode/
),因此fontspec
可以使用 -(xe/lua)latex 解决方案:
平均能量损失
\documentclass[11pt,a4paper]{exam}
\usepackage{fontspec}
\setmainfont{CMU Serif}
\usepackage[russian,french]{babel}
\usepackage{xcolor}
% Used to write answers in red and bold
\printanswers
\unframedsolutions
\SolutionEmphasis{\bfseries\color{red}}
\renewcommand{\solutiontitle}{}
\CorrectChoiceEmphasis{\bfseries\color{red}}
\begin{document}
\pointsinrightmargin
\noindent En répondant correctement à cette question bonus, vous pouvez
obtenir directement la note maximale de $\frac{10}{10}$. Malheureusement
elle n'est pas écrite en français.
\qformat{\textbf{Question Bonus} \thequestiontitle(\thepoints) :\hfill}
\begin{questions}
\titledquestion{}[10]
% "Тим Бернерс-Ли" doesn't show up in bold
\foreignlanguage{russian}{Кто изобрел Всемирную паутину?}
\ifprintanswers
\fillin[\foreignlanguage{russian}{Тим Бернерс-Ли} (Tim Berners-Lee)][9.15cm]
\else
\hrulefill
\fi
\end{questions}
\end{document}