xelatex CMU Concrete のロシア語文字が間違っている

xelatex CMU Concrete のロシア語文字が間違っている

XeLaTex の MWE:

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}
\usepackage[russian]{babel}
\begin{document}
Б\'{о}льший №
\end{document}

出力:

ここに画像の説明を入力してください

通常の LaTeX での同じコードは正しいです:

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}
\usepackage[russian]{babel}
\begin{document}
Б\'{о}льший №
\end{document}

ここに画像の説明を入力してください

原因は何ですか?フォントですか?

フォントが見つからないという更新

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}
\usepackage{fontspec}
\usepackage{noto}
\setmainfont{Noto Serif} % <- Error
\usepackage[main=russian,english]{babel}
\begin{document}
\noindent
Б\'{о}льший №\\
\textsf{Sans serif text}\\
{\tt True type text}
\end{document}

CMU Concreteフォントで更新

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}
\usepackage[russian]{babel}
\usepackage{fontspec}
\tracinglostchars=2
\babelfont{rm}[Script=Cyrillic, Language=Russian]{CMU Concrete}
\begin{document}
\setmainfont{CMU Concrete}[Script=Cyrillic, Language=Russian]
Б\'{о}льший №
\end{document}

まだ同じ:

ここに画像の説明を入力してください

答え1

使用している言語を適切にサポートするフォントを使用してください。解決策は次のとおりです。 能登:

\documentclass[12pt]{article}
\usepackage{noto-serif}
\usepackage{noto-sans}
\usepackage{noto-mono}
\usepackage[russian]{babel}
\begin{document}

  \textrm{Б\'{о}льший №}
  \textsf{Б\'{о}льший №}
  \texttt{Б\'{о}льший №}

\end{document}

ここに画像の説明を入力してください

答え2

実際には CMU Concrete をロードしていません。この MWE は TeX Live 2020 で正常に動作します。

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}
\usepackage[russian]{babel}

\tracinglostchars=2
\babelfont{rm}{CMU Concrete}

\begin{document}
Б\'{о}льший №
\end{document}

CMU コンクリートサンプル

\babelfont他の方法に比べて の利点の 1 つは、とbabelでフォントがロードされ、ロシア語を選択するたびにそれらに切り替わることです。LuaLaTeX では、他のコマンドを使用せずに、キリル文字を入力するたびに自動的に切り替えることもできます。Script=CyrillicLanguage=Russian

キリル文字はラテン文字と同様に十分なので、多くの場合はデフォルト設定で対応できますが、一部のフォントでは、OpenType フォント機能として言語を選択しない限り、ロシア語ではなくブルガリア語の文字が表示されます。

答え3

XeLaTeX文字がUnicodeになっているので、使用する必要があると思います。

\usepackage{fontspec}
\setmainfont{Arial} %<---- a random set of characters.

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage[russian]{babel}
\usepackage{fontspec}
\setmainfont{Arial}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}

\begin{document}
Б\'{о}льший №
\end{document}

ここに画像の説明を入力してください

を使用するとNoto Serif

ここに画像の説明を入力してください

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage[russian]{babel}
\usepackage{fontspec}
\setmainfont{Noto Serif}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}

\begin{document}
Б\'{о}льший №
\end{document}

答え4

あなたが示した最初の例からあなたの図を再現することはできません。最後のグリフだけが表示されます。これは、ラテン語の現代ローマ字で存在するためです。

一方、次のコードは、XeLaTeX と LuaLaTeX の両方で、奇妙なボックスのないフォント (CMU Concrete) を再現します。

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}
\usepackage[russian]{babel}
\usepackage{fontspec}

\setmainfont{CMU Concrete}[Script=Cyrillic]

\begin{document}

Б\'{о}льший №

\end{document}

ここに画像の説明を入力してください

関連情報