\addfontfeatures 속성은 다음 글꼴 사양 명령(예: \textbf{}) 후에 손실됩니다.

\addfontfeatures 속성은 다음 글꼴 사양 명령(예: \textbf{}) 후에 손실됩니다.
  1. 나는 시스템에서 Linux Libertine 글꼴을 사용하고 있습니다.XeTeX.
  2. 본문에서는 숫자를 사용 하고 표에는 숫자를 OldStyle원합니다 .Lining
  3. 텍스트 가 포함된 셀이 있는 테이블을 조판하고 있습니다 \bfseries.

그러나 \addfontfeature설정은 일반 텍스트에만 적용되며 에 설정된 텍스트에는 적용되지 않습니다 \bfseries.

MWE

\documentclass{scrartcl}
\usepackage{array,booktabs,fontspec}
\setmainfont[Ligatures={Common},Numbers={OldStyle}]{Linux Libertine O}

\begin{document}
\begin{table}
  \addfontfeature{Numbers={Lining}}
  \begin{tabular}{>{\bfseries}ll} \toprule
    3 & 3 \\ \bottomrule
  \end{tabular}
\end{table}
\end{document}

결과는 다음과 같습니다.

<code>\bfseries</code>의 숫자는 여전히 <code>OldStyle</code>입니다.

\addfontfeatures{Numbers={Lining}}그룹 내 모든 텍스트에 적용되도록 설정하려면 어떻게 해야 하나요 ?

답변1

문제는 표 형식 없이도 재현 가능합니다.

\documentclass{scrartcl}
\usepackage{array,booktabs,fontspec}
\setmainfont[Ligatures={Common},Numbers={OldStyle}]{Linux Libertine O}

\begin{document}

1234567890

{\addfontfeatures{Numbers=Lining}

1234567890

\normalfont 1234567890

\bfseries 1234567890}

1234567890

\end{document}

여기에 이미지 설명을 입력하세요

보시다시피 에 대한 호출은 \normalfont기능을 처음에 명시된 내용으로 다시 설정합니다. 이 \bfseries명령은 \fontseries{\bfdefault}\selectfont선택한 기능을 무효화합니다.

\addfontfeatures내 조언은 일부 코드가 중복되더라도 가능하면 피하라는 것입니다 .

\documentclass{scrartcl}
\usepackage{array,booktabs,fontspec}
\setmainfont[Ligatures={Common},Numbers={OldStyle}]{Linux Libertine O}
\newfontfamily{\mainlining}[Ligatures=Common,Numbers=Lining]{Linux Libertine O}

\begin{document}

\begin{table}
\mainlining

\begin{tabular}{>{\bfseries}ll}
\toprule
3 & 3 \\
\bottomrule
\end{tabular}

\end{table}

\end{document}

여기에 이미지 설명을 입력하세요

답변2

사용

 \documentclass{scrartcl}
 \usepackage{array,booktabs,fontspec}
 \usepackage[oldstyle]{libertine}
 \defaultfontfeatures{Ligatures=Common}
 \begin{document}

\begin{table}[!htb]
\libertineLF
 \begin{tabular}{>{\bfseries}ll} \toprule
            123 & 31234 \\ \bottomrule
 \end{tabular}
\end{table}

 \end{document}

여기에 이미지 설명을 입력하세요

관련 정보