我最近問了一個類似的問題關於如何更改外部程式產生的表格中的字體。我認可的答案很好地解決了這個問題,但鑑於我有限的 LaTeX 知識,解決方案對我來說並不直觀。
我面臨類似的挑戰,需要將長錶的字體重新定義為等寬字體。表格也是由另一個程式產生的,因此我正在尋找一種在序言中重新定義 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
會使表格成為等寬字體。使用標題包是自訂標題的好方法,但對於一次性使用,您可以簡單地將其放入\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}