PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kyrillisch und Deutsch/Englisch - lmr und cmr - T1 und T2A



Thesis
04-11-2014, 14:05
Hallo!


Mit folgendem Code habe ich ein kleines Problem:



\documentclass{article}

\usepackage[T2A,T1]{fontenc}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}

\usepackage[russian,ngerman,english]{babel}

\begin{document}

English text.

{\begin{otherlanguage}{ngerman}
Deutscher Text. Ä Ö Ü ä ö ü ß.
\end{otherlanguage}}

{\begin{otherlanguage}{russian}\usefont{T2A}{cmr}{ m}{n}
Русский текст.
\end{otherlanguage}}

\end{document}


Dabei bekomme ich die zwei Warnungen


LaTeX Font Warning: Font shape 'T2A/lmr/m/n' undefined
(Font) using 'T2A/cmr/m/n' instead on input line 17.
Some font shapes were not available, defaults substituted.


Um die Warnung zu unterdrücken, habe ich extra \usefont{T2A}{cmr}{m}{n} in den Code eingefügt, wieso kommt die Warnung trotzdem?
Wegen diverser Gründe würde ich gerne bei lmodern bleiben und cm (bzw. cm-super) nur für ein paar russische Wörter verwenden.


Besten Dank im Voraus,
Thesis

u_fischer
04-11-2014, 15:52
Ignorier die Warnung doch einfach. Die Substitution ist doch in Ordnung.

Thesis
04-11-2014, 17:25
Sehr geehrte Frau Fischer,


Vielen Dank für Ihre Antwort.
Wieso erscheint aber die Fehlermeldung? Die manuelle Substitution scheint zu funktionieren, siehe



\documentclass{article}

\usepackage[T2A,T1]{fontenc}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}

\usepackage[russian,ngerman,english]{babel}

\begin{document}

English text.

{\begin{otherlanguage}{ngerman}
Deutscher Text. Ä Ö Ü ä ö ü ß.
\end{otherlanguage}}

% Referenz
{\begin{otherlanguage}{russian}\usefont{T2A}{lmr}{ m}{n}
Русский текст.
\end{otherlanguage}}

% Keine Veränderung
{\begin{otherlanguage}{russian}\usefont{T2A}{lmr}{ bx}{it}
Русский текст.
\end{otherlanguage}}

% Keine Veränderung
{\begin{otherlanguage}{russian}\usefont{T2A}{cmr}{ m}{n}
Русский текст.
\end{otherlanguage}}

% Fett und kursiv, wie gewünscht
{\begin{otherlanguage}{russian}\usefont{T2A}{cmr}{ bx}{it}
Русский текст.
\end{otherlanguage}}

\end{document}


Ist das ein Bug in MiKTeX?


Vielen Dank im Voraus,
Thesis

u_fischer
05-11-2014, 08:08
Nein, es ist kein Bug. Es ist noch nichtmal ein Fehler. LaTeX hat ein ziemlich ausgefeiltes "Fallback"-System bei Schriften, ersetzt fehlende durch andere und informiert dich über die Änderung. Du musst solche Warnungen nur beachten, wenn dir der Ersatz nicht passt. Aber in diesem Fall wird doch genau die richtige Ersatzschrift (T2A/cmr/m/n) benutzt.

Thesis
05-11-2014, 21:17
Hallo Frau Fischer,


Mich hat einfach nur die Warnung irritiert, die auftrat, obwohl ich LaTeX explizit anwies, {T2A}{cmr}{m}{n} (bzw. {T2A}{cmr}{bx}{it}) zu verwenden.

Es hat sich herausgestellt, dass dies mit babel zusammenhängt, wie folgender Code beweist:


\documentclass{article}

\usepackage[T2A,T1]{fontenc}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}

\usepackage[russian,ngerman,english]{babel}

\begin{document}

\noindent%
English text.\\

\noindent%
{\begin{otherlanguage}{ngerman}Deutscher Text. Ä Ö Ü ä ö ü ß.\end{otherlanguage}}\\

% {m}{n}
% ================================================== ================================================== ===
\noindent%
{\usefont{T2A}{cmr}{m}{n}\foreignlanguage{russian} {Русский текст. 1/6}}\\ % Keine Warnung
%{\foreignlanguage{russian}{\usefont{T2A}{cmr}{m}{ n}Русский текст. 3/6}}\\ % Warnung
%{\usefont{T2A}{cmr}{m}{n}\selectlanguage{russian} {Русский текст. 2/6}}\\ % Warnung
%{\selectlanguage{russian}{\usefont{T2A}{cmr}{m}{n }Русский текст. 4/6}}\\ % Warnung
%{\begin{otherlanguage}{russian}\usefont{T2A}{cmr} {m}{n}Русский текст. 5/6\end{otherlanguage}}\\ % Warnung
%{\usefont{T2A}{cmr}{m}{n}\begin{otherlanguage}{ru ssian}Русский текст. 6/6\end{otherlanguage}}\\ % Warnung

% {bx}{it}
% ================================================== ================================================== ===
\noindent%
{\usefont{T2A}{cmr}{bx}{it}\foreignlanguage{russia n}{Русский текст. 1/6}}\\ % Keine Warnung
%{\foreignlanguage{russian}{\usefont{T2A}{cmr}{bx} {it}Русский текст. 3/6}}\\ % Warnung
%{\usefont{T2A}{cmr}{bx}{it}\selectlanguage{russia n}{Русский текст. 2/6}}\\ % Warnung
%{\selectlanguage{russian}{\usefont{T2A}{cmr}{bx}{ it}Русский текст. 4/6}}\\ % Warnung
%{\begin{otherlanguage}{russian}\usefont{T2A}{cmr} {bx}{it}Русский текст. 5/6\end{otherlanguage}}\\ % Warnung
%{\usefont{T2A}{cmr}{bx}{it}\begin{otherlanguage}{ russian}Русский текст. 6/6\end{otherlanguage}}\\ % Warnung

\end{document}


Mit meiner Lösung bin ich zufrieden.
Dies mag aber für jemanden unbefriedigend sein, der nicht den \foreignlanguage-Befehl, sondern einen anderen (\selectlanguage oder \begin{otherlanguage} ... \end{otherlanguage}) zur Sprachumschaltung benutzen möchte bzw. muss. Diese Personen müssten wahrscheinlich versuchen, den font shape/encoding default für die Zweitsprache umzustellen.


Besten Dank,
Viele Grüße, Thesis

u_fischer
06-11-2014, 08:07
Mich hat einfach nur die Warnung irritiert, die auftrat, obwohl ich LaTeX explizit anwies, {T2A}{cmr}{m}{n} (bzw. {T2A}{cmr}{bx}{it}) zu verwenden.

Du bist halt zu spät. otherlanguage stellt bereits auf T2A/lmr um, und dann latex auf T2A/cmr. Dein erster \usefont-Befehl ist somit komplett nutzlos, weil er nur die Schrift aufruft, die sowieso aktiv wird -- und solltest du später mal auf eine andere Dokumentenschrift mit kyrillisch umstellen, sind solche Befehle schädlich.


Diese Personen müssten wahrscheinlich versuchen, den font shape/encoding default für die Zweitsprache umzustellen.

Nur wenn Sie wie du so panisch auf einfache, korrekte Substitutionsmeldungen reagieren.

Aber wenn du unbedingt die harmlose Warnung vermeiden willst, dann mache es mit (hinter babel):


\usepackage{etoolbox}
\preto\extrasrussian{\fontfamily{cmr}}

Thesis
11-11-2014, 14:45
Hallo Frau Fischer,
Besten Dank für Ihre Antwort und die Tipps.
Viele Grüße, Thesis