изменить шрифт для содержимого таблицы

изменить шрифт для содержимого таблицы

Я пытаюсь следоватьэтот примердля изменения шрифта в таблице. Это частичное решение для кода ниже. Я просто не могу получить значения для изменения шрифтов тоже.

\documentclass{article}

\usepackage{booktabs}
\usepackage{etoolbox}
\usepackage[format=plain,
  labelformat=simple,
  font={small,sf,bf},
  indention=0cm,
  labelsep=period,
  justification=centering,
  singlelinecheck=true,
  tableposition=top,
  figureposition=bottom]{caption}

\makeatletter
\appto\@floatboxreset{%
  \ifx\@captype\andy@table
    \ttfamily
  \fi
}
\def\andy@table{table}
\makeatother

\begin{document}

Blah blah. Should be a serif font.


\begin{table}
\caption{My title}
\begin{center}
\begin{tabular}{l c c c }
\hline
 & treat x time & treat x time x female & treat x time x female \\
\hline
(Intercept)                         & $-0.03$           & $0.01$           & $-0.83^{*}$       \\
                                    & $[-0.16;\ 0.10]$  & $[-0.13;\ 0.15]$ & $[-0.93;\ -0.73]$ \\
v1                            & $-0.06$           & $-0.06$          & $-0.07$           \\
                                    & $[-0.23;\ 0.11]$  & $[-0.23;\ 0.11]$ & $[-0.18;\ 0.05]$  \\
v2                              & $0.05$            & $-0.03$          &                   \\
                                    & $[-0.04;\ 0.15]$  & $[-0.16;\ 0.11]$ &                   \\
\hline
\multicolumn{4}{l}{\scriptsize{$^*$ 0 outside the confidence interval. Fixed effect of time treated as factor.}}
\end{tabular}
\label{m123}
\end{center}
\end{table}

Blah blah. Should be a serif font.

\end{document}

введите описание изображения здесь

решение1

Просто удалите $то, что не нужно (то есть почти везде).

\documentclass{article}

\usepackage{booktabs}
\usepackage{etoolbox}
\usepackage[format=plain,
  labelformat=simple,
  font={small,sf,bf},
  indention=0cm,
  labelsep=period,
  justification=centering,
  singlelinecheck=true,
  tableposition=top,
  figureposition=bottom,
]{caption}

\makeatletter
\appto\@floatboxreset{%
  \ifx\@captype\andy@table
    \ttfamily
  \fi
}
\def\andy@table{table}
\makeatother

\begin{document}

Blah blah. Should be a serif font.

\begin{table}
\centering

\caption{My title}\label{m123}

% fix the overfull
\small\addtolength{\tabcolsep}{-2pt}

\begin{tabular}{ l c c c }
\hline
 & treat x time & treat x time x female & treat x time x female \\
\hline
(Intercept) & -0.03         & 0.01          & -0.83$^{*}$    \\
            & [-0.16; 0.10] & [-0.13; 0.15] & [-0.93; -0.73] \\
v1          & -0.06         & -0.06         & -0.07          \\
            & [-0.23; 0.11] & [-0.23; 0.11] & [-0.18; 0.05]  \\
v2          & 0.05          & -0.03         &                \\
            & [-0.04; 0.15] & [-0.16; 0.11] &                \\
\hline
\multicolumn{4}{l}{%
  \scriptsize $^*$ 0 outside the confidence interval. Fixed effect of time treated as factor.%
}
\end{tabular}

\end{table}

Blah blah. Should be a serif font.

\end{document}

введите описание изображения здесь

Еще несколько заметок.

  1. Поместите \labelрядом с объектом, к которому он относится, в данном случае\caption

  2. \scriptsizeне принимает аргументов.

  3. Не используйте centerв tableсреде, но \centering.


Если вы не хотите трогать таблицу, сгенерированную внешней программой, то все немного сложнее.

\documentclass{article}

\usepackage{booktabs}
\usepackage{etoolbox}
\usepackage[format=plain,
  labelformat=simple,
  font={small,sf,bf},
  indention=0cm,
  labelsep=period,
  justification=centering,
  singlelinecheck=true,
  tableposition=top,
  figureposition=bottom]{caption}

\makeatletter
\appto\@floatboxreset{%
  \ifx\@captype\andy@table
    \ttfamily
    \everymath{\fam=\group@mathtt\relax\andy@changemathcodes}%
  \fi
}
\def\andy@table{table}
\let\andy@space\ %
\AtBeginDocument{%
  \check@mathfonts
  \sbox\z@{$\mathtt{\xdef\group@mathtt{\gdef\noexpand\group@mathtt{\the\fam}}\group@mathtt}$}%
  \def\andy@changemathcodes{%
    \count@="2\group@mathtt00 \advance\count@`-\mathcode`-=\count@
    \count@="4\group@mathtt00 \advance\count@`[\mathcode`[=\count@
    \count@="5\group@mathtt00 \advance\count@`]\mathcode`]=\count@
    \count@="0\group@mathtt00 \advance\count@`;\mathcode`;=\count@
    \def\ {\mathopen{\andy@space}}%
  }%
}
\makeatother

\begin{document}


Blah blah. Should be a serif font; here's math: $a+b$

\begin{table}
\centering

\caption{With dollars}

% fix the overfull
\small\addtolength{\tabcolsep}{-2pt}

\begin{tabular}{ l c c c }
\hline
& treat x time & treat x time x female & treat x time x female       \\
\hline
(Intercept) & $-0.03$          & $0.01$           & $-0.83^{*}$       \\
            & $[-0.16;\ 0.10]$ & $[-0.13;\ 0.15]$ & $[-0.93;\ -0.73]$ \\
v1          & $-0.06$          & $-0.06$          & $-0.07$           \\
            & $[-0.23;\ 0.11]$ & $[-0.23;\ 0.11]$ & $[-0.18;\ 0.05]$  \\
v2          & $0.05$           & $-0.03$          &                   \\
            & $[-0.04;\ 0.15]$ & $[-0.16;\ 0.11]$ &                   \\
\hline
\multicolumn{4}{l}{%
  \scriptsize$^*$ 0 outside the confidence interval. Fixed effect of time treated as factor.%
}
\end{tabular}

\end{table}



\begin{table}[htp]
\centering

\caption{My title}\label{m123}

% fix the overfull
\small\addtolength{\tabcolsep}{-2pt}

\begin{tabular}{ l c c c }
\hline
 & treat x time & treat x time x female & treat x time x female \\
\hline
(Intercept) & -0.03         & 0.01          & -0.83$^{*}$    \\
            & [-0.16; 0.10] & [-0.13; 0.15] & [-0.93; -0.73] \\
v1          & -0.06         & -0.06         & -0.07          \\
            & [-0.23; 0.11] & [-0.23; 0.11] & [-0.18; 0.05]  \\
v2          & 0.05          & -0.03         &                \\
            & [-0.04; 0.15] & [-0.16; 0.11] &                \\
\hline
\multicolumn{4}{l}{%
  \scriptsize $^*$ 0 outside the confidence interval. Fixed effect of time treated as factor.%
}
\end{tabular}

\end{table}

Blah blah. Should be a serif font; here's math: $a+b$.

\end{document}

Как видите, результат тот же.

введите описание изображения здесь

решение2

Это используетМогу ли я изменить все математические результаты так, чтобы они использовали моноширинный текст?чтобы добавить соответствующую \everymathкоманду в ваш \@floatboxresetпатч:

введите описание изображения здесь

\documentclass{article}

\usepackage{etoolbox}

\makeatletter
\appto\@floatboxreset{%
  \ifx\@captype\andy@table
    \ttfamily
    % https://tex.stackexchange.com/q/119879/5764
    \everymath{\mathtt{\xdef\tmp{\fam\the\fam\relax}\aftergroup\tmp}}% 
  \fi
}
\def\andy@table{table}
\makeatother

\begin{document}

\begin{table}
  \begin{tabular}{ l *{3}{c} }
    \hline
     & treat x time & treat x time x female & treat x time x female       \\
    \hline
    (Intercept) & $-0.03$          & $0.01$           & $-0.83^{*}$       \\
                & $[-0.16;\ 0.10]$ & $[-0.13;\ 0.15]$ & $[-0.93;\ -0.73]$ \\
    v1          & $-0.06$          & $-0.06$          & $-0.07$           \\
                & $[-0.23;\ 0.11]$ & $[-0.23;\ 0.11]$ & $[-0.18;\ 0.05]$  \\
    v2          & $0.05$           & $-0.03$          &                   \\
                & $[-0.04;\ 0.15]$ & $[-0.16;\ 0.11]$ &                   \\
    \hline
    \multicolumn{4}{l}{\scriptsize{$^*$ 0 outside the confidence interval. Fixed effect of time treated as factor.}}
  \end{tabular}
\end{table}

\end{document}

К сожалению, интервал вокруг унарного минуса не является постоянным. Например, см $a - b$ $-b$ $[-b]$ ${-}b$.:

введите описание изображения здесь

При необходимости вам, возможно, придется использовать {-}унарный минус.

Связанный контент