我最近问了一个类似问题关于如何更改外部程序生成的表格中的字体。我认可的答案很好地解决了这个问题,但鉴于我有限的 LaTeX 知识,解决方案对我来说并不直观。
我面临着类似的挑战,需要将 longtable 的字体重新定义为等宽字体。此表也是由另一个程序生成的,因此我正在寻找一种方法来在序言中重新定义 longtable,而不仅仅是用新字体包装特定表。
\documentclass{article}
\usepackage{longtable}
\usepackage{booktabs}
\begin{document}
\begin{longtable}[]{@{}rrrl@{}}
\caption{My title}\tabularnewline
\toprule
v1 & v2 & v3 & v4\tabularnewline
\midrule
\endfirsthead
\toprule
v1 & v2 & v3 & v4\tabularnewline
\midrule
\endhead
1 & 0 & 0 & 0.87\tabularnewline
1 & 0 & 1 & 0.89\tabularnewline
1 & 1 & 0 & 0.87\tabularnewline
\bottomrule
\end{longtable}
\end{document}
答案1
使用包etoolbox
你可以使用
\AtBeginEnvironment{longtable}{\ttfamily}
设置字幕加载包的字体caption
请使用以下设置加载包你的其它问题。
\documentclass{article}
\usepackage{longtable}
\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}
\AtBeginEnvironment{longtable}{\ttfamily}
\usepackage{lipsum}% dummy text
\begin{document}
\begin{longtable}[]{@{}rrrl@{}}
\caption{My title}\tabularnewline
\toprule
v1 & v2 & v3 & v4\tabularnewline
\midrule
\endfirsthead
\toprule
v1 & v2 & v3 & v4\tabularnewline
\midrule
\endhead
1 & 0 & 0 & 0.87\tabularnewline
1 & 0 & 1 & 0.89\tabularnewline
1 & 1 & 0 & 0.87\tabularnewline
\bottomrule
\end{longtable}
\lipsum[1]
\end{document}
答案2
你没有说你尝试了什么,但一个单一的\ttfamily
将使表格等宽。使用 caption 包是自定义标题的好方法,但对于一次性使用,你可以简单地将其放入\normalfont
标题中,从而产生
\documentclass{article}
\usepackage{longtable}
\usepackage{booktabs}
\begin{document}
\ttfamily
\begin{longtable}[]{@{}rrrl@{}}
\caption{\normalfont My title}\tabularnewline
\toprule
v1 & v2 & v3 & v4\tabularnewline
\midrule
\endfirsthead
\toprule
v1 & v2 & v3 & v4\tabularnewline
\midrule
\endhead
1 & 0 & 0 & 0.87\tabularnewline
1 & 0 & 1 & 0.89\tabularnewline
1 & 1 & 0 & 0.87\tabularnewline
\bottomrule
\end{longtable}
\end{document}