为什么 \textsc 不适用于这个 tabularray?

为什么 \textsc 不适用于这个 tabularray?

我不明白为什么我不能将这个 tabularray 环境中的标题行设为小写(似乎在我添加 后立即发生row{2} = {font = \bfseries, cmd = \textrm},,但我无法通过添加 来覆盖它row{1} = {cmd = \textsc},

我只是知道我正在做一些愚蠢的事情......特别是因为如果不包含该包,我实际上无法正确编译它pythontex......这对我来说毫无意义。

\documentclass{article}
\usepackage{pythontex}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage[margin = 0.5in]{geometry}
\usepackage{tabularray}


\begin{document}
% timeperiod calculations
\begin{tblr}[T]{
  colspec = {Q[c,m] *{4}{Q[c,m,$]}},
  column{1} = {2-Z}{font = \bfseries},
  row{odd} = {azure9},
  row{2} = {font = \bfseries, cmd = \textrm},
  hline{1,Z} = {2pt},
}
% header
\SetCell[c=5]{c} \textsc{Why am I not Small Caps?} \\
\hline
 &
  who &
    cares &
      not &
        me \\
tab &
  \mathrm{10\ \frac{units}{time}} &
    \mathrm{7\ units} &
      \mathrm{1\ unit \cdot 2\ units} &
        \mathrm{10\ unit^2} \\
\end{tblr}
\end{document}

编辑:澄清一下,我知道 Computer Modern 字体中没有粗体小写字母。这就是为什么我尝试不将粗体应用于第一行。

据我了解,我应该将第二行开始的第一列设为粗体,并将第二行全部设为粗体。我不明白应该在哪里将标题设为粗体。

使用\normalfont \textsc{Why am I not Small Caps?}可以使其正确显示;我只是不明白为什么

编辑 #2:所以 @Clara 的评论确实有效;但我想我可能仍然需要了解发生了什么。因为,我认为当我尝试执行这些复杂的格式化前言时,它可能与我在其他地方遇到的错误相同。

答案1

这与表格或 pythontex 无关。

latex 警告

LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefined
(Font)              using `OT1/cmr/bx/n' instead on input line 32.

也就是说,没有粗体计算机现代小型大写字母,所以它替代了普通粗体。

您可以通过添加来使用 ec 字体

\usepackage[T1]{fontenc}

在此处输入图片描述

答案2

正如@DavidCarlisle 在他的回答,Computer Modern 文本字体系列不包含粗体/小型大写字母组合。

补救措施?使用能够提供所需粗细/形状组合的字体。newtxtextnewpxtext包分别提供 Times Roman 和 Palatino 克隆,是具有此组合的字体包的示例。

在此处输入图片描述

\documentclass{article}
\usepackage{pythontex}
%\usepackage{amsmath} % amsmath is loaded automatically by mathtools
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage[margin = 0.5in]{geometry}
\usepackage{tabularray}
\usepackage{newtxtext,newtxmath} % or: \usepackage{newpxtext,newpxmath}

\begin{document}
% timeperiod calculations
\begin{tblr}[T]{
  colspec = {Q[c,m] *{4}{Q[c,m,$]}},
  column{1} = {2-Z}{font = \bfseries},
  row{odd} = {azure9},
  row{2} = {font = \bfseries, cmd = \textrm},
  hline{1,Z} = {2pt},
}
% header
\SetCell[c=5]{c} \textsc{Why am I not Small Caps?} \\
\hline
 &
  who &
    cares &
      not &
        me \\
tab &
  \mathrm{10\ \frac{units}{time}} &
    \mathrm{7\ units} &
      \mathrm{1\ unit \cdot 2\ units} &
        \mathrm{10\ unit^2} \\
\end{tblr}
\end{document}

相关内容