\ fontseries garip davranışı

Oct 26 2020

Aşağıdaki MWE'de "Lorem ipsum" hafif olmalıdır, ancak normal ağırlığı alırsınız.

%\RequirePackage[2019/10/01]{latexrelease}
\documentclass{article}
  
\begin{document}

\fontseries{l}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum

\end{document}

Uyarı şunu söylüyor:

LaTeX Font Warning: Font shape `OT1/cmr/l/n' undefined
(Font)              using `OT1/cmr/m/n' instead on input line 6.

Görünüşe göre, LaTeX OT1 / cmr / l / n'yi deniyor (mevcut değil), OT1 / cmr / m / n'nin yerini alıyor ve sonunda OT1 / NotoSans-TLF / m / n'yi alıyorsunuz.

Eğer kullanırsanız \RequirePackage[2019/10/01]{latexrelease}(bu NFSS LaTeX 2020/02/02 arasında değişir iptal) beklendiği gibi ışık serisi olsun.

Diğer gözlemler:

  • Eğer istersen \fontseries{sb}, bonun yerine alırsın .
  • Eğer istersen \fontseries{c}, monun yerine alırsın .
  • Eğer sorarsanız ul, el, m, b, ebveya ub, istediğiniz yazı dizisi olsun. (Bu çok kafa karıştırıcı çünkü örneğin OT1 / cmr / ul / n de mevcut değil)
  • Eğer kullanırsanız \fontfamily{NotoSans-TLF}\fontseries{l}\selectfont Lorem ipsumbunun yerine, istenen yazı dizisi olsun.
  • Aynı sorun diğer yazı tiplerinde de ortaya çıkar.

Yanıtlar

6 egreg Oct 26 2020 at 18:19

Yazı tipi nitelikleri sırayla değiştirilir

\fontencoding
\fontfamily
\fontshape
\fontseries
\fontsize

Öyleyse, girdinize olan şey, önce şekil değiştirildiği l, Computer Modern'in olmadığı, yani varsayılanla değiştirildiği m.

Doğru sırayı kullanarak çıktı beklendiği gibidir:

\documentclass{article}

\begin{document}

\fontfamily{NotoSans-TLF}\fontseries{l}\selectfont Lorem ipsum

\end{document}

En önemlisi, başlangıçta aile bildirimine sahip olmaktır, çünkü bu, LaTeX'in yazı tipi tanımlama dosyasını okumasına (daha önce yapılmamışsa) ve böylece olası diğer özniteliklerin bilinmesine neden olur.

6 UlrikeFischer Oct 26 2020 at 18:43

Arasındaki fark ulve lseri LaTeX çekirdek için kural olmasıdır m/lanahtarı:

\DeclareFontSeriesChangeRule {m}{l}{l}{m}

Bu kural, eğer m(ilk bağımsız değişken) mevcut seri ise ve listenirse (ikinci bağımsız değişken) o lzaman denenir (üçüncü bağımsız değişken) ve mevcut değilse, dizinin m(dördüncü bağımsız değişken) geri döndüğü anlamına gelir .

Egreg'in yazdığı gibi, diziyi cmrhala aktifken değiştirmeye çalışıyorsunuz ve bu yüzden l-series olmadığı miçin zorlanıyor.

Bunun uliçin de bir kural beyan ederseniz benzer bir etki elde edebilirsiniz :

\documentclass{article}

\begin{document}

{ \fontseries{ul}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum }

\DeclareFontSeriesChangeRule {m}{ul}{ul}{m}

{ \fontseries{ul}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum }

\end{document}  

Kuraldan mdördüncü bağımsız değişkeni kaldırarak geri dönüşü önleyebilirsiniz :

\documentclass{article}

\DeclareFontSeriesChangeRule {m}{l}{l}{}
\begin{document}

\fontseries{l}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum 

\end{document}