Laden Sie niemals etwas, von dem Sie nicht wissen, was es tut.

Laden Sie niemals etwas, von dem Sie nicht wissen, was es tut.

Ich habe hart daran gearbeitet, ein MWE für dieses Problem zu finden, und habe praktisch alles aus meiner Präambel und meiner SAE-Klassendatei entfernt, bis ich entdeckte, dass das siunitx-Paket anscheinend nicht gut mit der Schriftart Times funktioniert (mit Helvetica funktioniert es einwandfrei).

Ich beginne mit einem MWE meiner Klassendatei, in dem ich die Schriftart Times so eingestellt habe, dass sie den SAE-Richtlinien und ihren Vorlagedateien entspricht:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{saeRyan}[2016/02/23 SAE Technical paper format^^J]

% Option for the "Times New Roman" font
\DeclareOption{times}{%
  \renewcommand{\familydefault}{ptm}%
  \typeout{^^JSetting document font to Times^^J}%
  }

% Option for letter size paper (U.S.)
\DeclareOption{letterpaper}{%

% Define the margins for letter size paper (0.5" margins all the way around) using the geometry package.
\PassOptionsToPackage{letterpaper,nohead,left=.5in,top=.5in,right=.5in,textheight=10in}{geometry}%
  \typeout{^^JPaper size: Letter^^J}%
  \AtBeginDocument{ \columnsep .5in }
  }

\DeclareOption{pdftex}{%
  \PassOptionsToClass{\CurrentOption}{article}%
  \PassOptionsToPackage{\CurrentOption}{geometry}
  }

\DeclareOption{nonumber}{%
  \pagestyle{empty}%
  }

% This handles any options that are not understood by the class.
\DeclareOption*{\typeout{^^JOption [\CurrentOption] not supported by this style.^^J}}

% Default Options
\ExecuteOptions{times,letter,9pt}
\ProcessOptions

% The extarticle class allows for 9 pt font as the normalsize font.
\LoadClass[twocolumn,9pt]{extarticle}

Hier ist nun ein MWE des Problems, das ich bei der Verwendung dieser Mindestklassendatei habe:

\documentclass[letterpaper]{saeRyan}

%\usepackage{lmodern}
\usepackage[detect-all]{siunitx} 
\usepackage{enumitem,booktabs,cfr-lm}
\usepackage{tabularx}
\usepackage[referable]{threeparttablex}
\renewlist{tablenotes}{enumerate}{1}

% This package is for convenience in making notes during the revision process.
%\usepackage[colorinlistoftodos]{todonotes}

\begin{document}

\begin{table}[h]
    \footnotesize
    \centering
        \begin{tabular}{ll}
        \toprule
        times vs. helvetica using siunitx: & \SI{110}{\micro\meter} 110 micrometers (correct font)\\
        \bottomrule
    \end{tabular}
  \caption{Font Test}\label{tab:test}
\end{table}

\end{document}

Bildbeschreibung hier eingeben

Sie können hier sehen, wo das Problem liegt ... obwohl siunitx den Schalter „Alles erkennen“ enthält, ist die Einheit von siunitx Helvetica, während der Rest des Dokuments Times ist. Dies führt zu einigen seltsam aussehenden Einheiten im gesamten Dokument (nicht nur in Tabellen). Sieht irgendjemand ein offensichtliches Problem? Ich weiß wirklich nicht viel über das Schreiben von Klassendateien, ich versuche einfach, die Dinge nach und nach aufzuschnappen.

Antwort1

Das ist Latin Modern. Sie verwenden Latin Modern Roman, Sans und Mono als Ihre Standardschriften. Genauer gesagt ist Ihre Serifenschrift LM Roman mit proportionalen, hängenden Ziffern; Ihre Sans ist LM Sans mit proportionalen, hängenden Ziffern; und Ihre Schreibmaschine ist wahrscheinlich eine LM-Schreibmaschine mit variabler Breite und proportionalen, hängenden Ziffern.

Laden Sie niemals etwas, von dem Sie nicht wissen, was es tut.

Wenn Sie einfach Serifen auf setzen, ptmerhalten Sie keine guten Ergebnisse. Ihre Sans, Mono und alle Ihre mathematischen Zeichen werden in Computer Modern sein. Wahrscheinlich möchten Sie so etwas wie das hier, dastutbenutze NimbusRomanNo9L:

  \usepackage{mathptmx}
  \usepackage[scaled=.90]{helvet}
  \usepackage{courier}

Darüber hinaus enthält Ihre Klassendatei mehrere unzulässige Leerzeichen und die Optionenbehandlung ist verwirrend. Ihre Klasse deklariert weder noch 9ptals lettergültige Optionen.

Wahrscheinlich möchten Sie eher so etwas:

\begin{filecontents}{saeRyan.cls}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{saeRyan}[2016/02/23 SAE Technical paper format]

\newif\iftimesfont\timesfontfalse
% Option for the "Times New Roman" font
\DeclareOption{times}{%
  \timesfonttrue
  \typeout{Setting document font to Times, with complementary sans, typewriter and mathematics fonts.}%
}

% Option for letter size paper (U.S.)
\DeclareOption{letterpaper}{%
% Define the margins for letter size paper (0.5" margins all the way around) using the geometry package.
\PassOptionsToPackage{letterpaper,nohead,left=.5in,top=.5in,right=.5in,textheight=10in}{geometry}%
  \typeout{Paper size: Letter}%
  \AtBeginDocument{\columnsep .5in}%
}

\DeclareOption{nonumber}{%
  \pagestyle{empty}%
}

% This handles any options that are not understood by the class.
\DeclareOption*{\typeout{Option [\CurrentOption] not supported by this style.}}

% Default Options
\ExecuteOptions{times,letterpaper}
\ProcessOptions

% The extarticle class allows for 9 pt font as the normalsize font.
\LoadClass[twocolumn,9pt]{extarticle}
\iftimesfont
  \RequirePackage{mathptmx}
  \RequirePackage[scaled=.90]{helvet}
  \RequirePackage{courier}
\fi
\endinput
\end{filecontents}
\documentclass[letterpaper]{saeRyan}
\usepackage[detect-all]{siunitx}
\usepackage{enumitem,booktabs}
\usepackage{tabularx}
\usepackage[referable]{threeparttablex}
\renewlist{tablenotes}{enumerate}{1}
\begin{document}
\begin{table}[h]
  \footnotesize
  \centering
  \begin{tabular}{ll}
    \toprule
    times vs.\ helvetica using siunitx: & \SI{110}{\micro\meter} 110 micrometers (correct font)\\
    \bottomrule
  \end{tabular}
  \caption{Font Test}\label{tab:test}
\end{table}
\end{document}

modifizierte Klasse für Nimbus Roman Nr. 9

verwandte Informationen