Die Anpassung der Schriftgröße in der tabellarischen Umgebung funktioniert nicht

Die Anpassung der Schriftgröße in der tabellarischen Umgebung funktioniert nicht

Ich muss die Schriftgröße der Einträge in meiner Tabelle erhöhen. Laut einigen früheren Fragen auf müsste TEX.SEeine mögliche Lösung wie das Hinzufügen von Schriftgrößenbefehlen (wie \large) vor dem Starten der tabularUmgebung funktionieren. Aber in meinem Fall ändern solche Befehle nichts. Wie kann ich das Problem beheben?

\documentclass[letterpaper, 10pt]{IEEEconf}

\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs}

\title{My Title*}

\author{Guy$^{1}$
\thanks{*This work was not supported by any organization}% <-this % stops a space
\thanks{$^{1}$Guy is with Hell, {\tt\small [email protected]}}%
}

\begin{document}

\maketitle
\thispagestyle{empty}
\pagestyle{empty}

\begin{abstract}

ABSTRACT

\end{abstract}

\section{INTRODUCTION}

\begin{table}[h!]
    \centering
    \caption{Caption for the table.}
    \label{tab:table3}
    \resizebox{\columnwidth}{!}{%
    \LARGE  ------> It affects nothing
    \begin{tabular}{ccccccccc}
        \toprule
        $$      & $S^{h}(\theta^{h})$ & $S^{h}(\theta^{h})$ & $S^{h}(\theta^{h})$ & $S^{h}(\theta^{h})$ & $S^{v}(\theta^{v})$ & $^{v}(\theta^{v})$ & $S^{v}(\theta^{v})$ & $S^{v}(\theta^{v})$\\
        \midrule
        $S^{h}(\theta^{h})$ & occupied & & & & & &\\[0.5em]
        $S^{h}(\theta^{h})$ & & & & & & &\\[0.5em]
        $S^{h}(\theta^{h})$ & & & occupied & & & &\\[0.5em]
        $S^{h}(\theta^{h})$ & & & & & & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & occupied & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & & & occupied\\
        \bottomrule
    \end{tabular}
    }
\end{table}

\end{document}

Antwort1

Du willst nicht \LARGE, aber \footnotesize. Ja, wirklich!

Das Problem besteht darin, dass Sie eine große Tabelle erstellen und sie dann auf die Spaltenbreite skalieren: Selbst wenn Sie das tun \HUMONGOUSLYHUGE, wäre das Ergebnis genau dasselbe.

Denken Sie daran: Tun Sie nichts \resizeboxfür einen Tisch. Bauen Sie ihn nach Bedarf.

In diesem Fall \footnotesizeerscheint eine Reduzierung des Spaltenabstands sowie die Ersetzung des großen „belegt“ durch ein im Text erklärbares Symbol sinnvoll.

Zum Eintippen der Tabelle habe ich einige lokale Abkürzungen verwendet: Ich schlage nicht vor, im gesamten Dokument \SThanstelle von zu verwenden, aber allein bei dieser großen Tabelle helfen die Abkürzungen dabei, den Code besser lesbar zu machen.S^{h}(\theta^{h})

Wie habe ich den Wert für ermittelt \addtolength? Ich habe die Tabelle ohne gesetzt und eine Überfüllung von 73,22162pt erhalten. Da es 16 Spaltenauffüllungen gibt, habe ich den Betrag durch 16 geteilt und auf die erste Dezimalstelle aufgerundet.

Nebenbei bemerkt: \ttist seit mehr als zwanzig Jahren ein veralteter Befehl. Verwenden Sie \ttfamilyoder die „Befehlsform“ \texttt.

\documentclass[letterpaper, 10pt]{IEEEconf}

\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs}

\usepackage{lipsum}

\title{My Title*}

\author{Guy$^{1}$
\thanks{*This work was not supported by any organization}% <-this % stops a space
\thanks{$^{1}$Guy is with Hell, {\ttfamily\small [email protected]}}%
}

\begin{document}

\maketitle
\thispagestyle{empty}
\pagestyle{empty}

\begin{abstract}

ABSTRACT

\end{abstract}

\section{INTRODUCTION}

\lipsum[2]

\begin{table}[htp]
\caption{Caption for the table.}
\label{tab:table3}

%%% Local shorthands
\newcommand{\STh}{$S^{h}(\theta^{h})$}
\newcommand{\STv}{$S^{v}(\theta^{v})$}
%%% The definition of \occ could be in the preamble,
%%% if you use it also in other tables
\newcommand{\occ}{$\times$} % <--- change to your liking

\centering\footnotesize

%%% do the computation only at the very last moment
\addtolength{\tabcolsep}{-4.7pt}

\begin{tabular}{@{}*{9}{c}@{}}
\toprule
  & \STh & \STh & \STh & \STh & \STv & \STv & \STv & \STv\\
\midrule
\STh & \occ & & & & & &\\
\STh & & & & & & &\\
\STh & & & \occ & & & &\\
\STh & & & & & & &\\
\STv & & & & & & &\\
\STv & & & & & \occ & &\\
\STv & & & & & & &\\
\STv & & & & & & & \occ\\
\bottomrule
\end{tabular}

\end{table}

\lipsum

\end{document}

was auch immer

Antwort2

Der Versuch, die Schriftgröße mit einer Direktive wie dieser zu vergrößern, \largeist in Ihrem Setup aufgrund der Anwesenheit der Anweisung völlig kontraproduktiv \resizebox.

Sie müssen einen anderen Weg gehen. Ich schlage vor, dass Sie die folgenden Schritte ausführen:

  • Anstatt „belegt“ schreiben Sie lieber „belegt“, damit der Zellinhalt weniger Platz einnimmt.

  • Das Schreiben S^{h}(\theta^{h})nimmt S^{v}(\theta^{v})viel Platz ein. Im folgenden Code schlage ich vor, diese Begriffe viel kompakter zu setzen.

  • Reduzieren Sie die Menge an Leerzeichen zwischen den Spalten. Die Standardmenge (2*6pt) ist recht großzügig. Anstatt den Parameter \tabcolsepnach dem Prinzip von Versuch und Irrtum anzupassen, schlage ich vor, dass Sie ihn 0ptgleich festlegen und eine tabular*Umgebung anstelle einer tabularUmgebung verwenden. Auf diese Weise ermittelt LaTeX die optimale (d. h. maximal verfügbare) Menge an Leerzeichen.

Wenn diese Anpassungen vorgenommen wurden, müssen Sie nur noch die Schriftgröße der Tabelle auf einstellen \small. Der folgende Screenshot bietet einen Vorher-Nachher-Vergleich. Ich gehe davon aus, dass die „Nachher“-Tabelle mehr oder weniger das ist, was Sie erreichen wollten.

Bildbeschreibung hier eingeben

\documentclass[letterpaper,10pt]{IEEEconf}
\usepackage{booktabs,graphicx}
\usepackage[skip=0.333\baselineskip,font={bf,sf}]{caption}
\newcommand\Sth[1]{S^{#1}\mkern-3mu(\mkern-2.5mu\theta^{\mkern-1mu#1}\mkern-2mu)}
\begin{document}
\section{Introduction}
\hrule % just to illustrate width of textblock

%%%% First the "before" look
\begin{table}[h!]
    \centering
    \caption{Before}
    \label{tab:table3}
    \resizebox{\columnwidth}{!}{%
    \LARGE % ------> It affects nothing
    \begin{tabular}{ccccccccc}
        \toprule
        $$      & $S^{h}(\theta^{h})$ & $S^{h}(\theta^{h})$ & $S^{h}(\theta^{h})$ & $S^{h}(\theta^{h})$ & $S^{v}(\theta^{v})$ & $^{v}(\theta^{v})$ & $S^{v}(\theta^{v})$ & $S^{v}(\theta^{v})$\\
        \midrule
        $S^{h}(\theta^{h})$ & occupied & & & & & &\\[0.5em]
        $S^{h}(\theta^{h})$ & & & & & & &\\[0.5em]
        $S^{h}(\theta^{h})$ & & & occupied & & & &\\[0.5em]
        $S^{h}(\theta^{h})$ & & & & & & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & occupied & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & & &\\[0.5em]
        $S^{v}(\theta^{v})$ & & & & & & & occupied\\
        \bottomrule
    \end{tabular}
    }
\end{table}

%%%% Now the "after" look
\begin{table}[h!]
\captionsetup{font={small,bf,sf}} % optional
\small
\caption{After} \label{tab:table3}
\setlength\tabcolsep{0pt} % make LaTeX calculate intercolumn whitespace
\begin{tabular*}{\columnwidth}{@{\extracolsep{\fill}} ccccccccc}
\toprule
& $\Sth{h}$ & $\Sth{h}$ & $\Sth{h}$ & $\Sth{h}$ & $\Sth{\nu}$ & $\Sth{\nu}$ & $\Sth{\nu}$ & $\Sth{\nu}$\\
\midrule
$\Sth{h}$ & occ. & & & & & &\\
$\Sth{h}$ & & & & & & &\\
$\Sth{h}$ & & & occ. & & & &\\
$\Sth{h}$ & & & & & & &\\
$\Sth{\nu}$ & & & & & & &\\
$\Sth{\nu}$ & & & & & occ. & &\\
$\Sth{\nu}$ & & & & & & &\\
$\Sth{\nu}$ & & & & & & & occ.\\
\bottomrule
\end{tabular*}
\end{table}

\end{document}

verwandte Informationen