Verwenden des Computer Modern \int-Symbols mit der mathematischen Schriftart txfonts

Verwenden des Computer Modern \int-Symbols mit der mathematischen Schriftart txfonts

Ich möchte den Standard \intund die \gammaupaus dem txfontsPaket verwenden. Wie kann ich diese Symbole mischen?

MWE:

\documentclass{article}
\usepackage{txfonts}
\begin{document}
    Not the int I like, but the gammaup I do like:
    \[\int \gammaup\]
\end{document}

Antwort1

Versehentliche Antwort :-)

Das txfontsPaket ist veraltet und Sie können es normalerweise durch newtxtext(für die Textschriften) und newtxmath(für, Sie ahnen es schon, die Mathematikschriften) ersetzen. Das \intSymbol für newtxmathist jedoch dem von Computer Modern recht ähnlich, daher könnte es für Sie funktionieren. Hier ist ein Vergleich zwischen ihnen (von links nach rechts: txfonts, Computer Modern und newtxmath):

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{newtxtext}% For text font
\usepackage{newtxmath}
% From txfonts
\DeclareSymbolFont{largesymbolstx}{OMX}{txex}{m}{n}
\DeclareMathSymbol{\txintop}{\mathop}{largesymbolstx}{"52}
\DeclareRobustCommand\txint{\txintop\nolimits}
% From Computer Modern
\DeclareSymbolFont{largesymbolscmr}{OMX}{cmex}{m}{n}
\DeclareMathSymbol{\cmrintop}{\mathop}{largesymbolscmr}{"52}
\DeclareRobustCommand\cmrint{\cmrintop\nolimits}
\begin{document}
  \[\txint \cmrint \int \gammaup\]
\end{document}

Um die Symbole zu finden, muss man ein wenig in den Quellen wühlen (so habe ich es zumindest gemacht; es gibt vielleicht einen besseren Weg).

\cmrint

Die Computer Modern-Definition der Symbole finden Sie in fontmath.ltx(dort werden die mathematischen Schriftarten von LaTeX initialisiert. Sie finden diese Datei, indem Sie sie kpsewhich fontmath.ltxin einem Terminal ausführen). Wenn Sie \intim Code danach suchen, werden Sie feststellen, dass es wie folgt definiert ist:

    \DeclareRobustCommand\int{\intop\nolimits}

was bedeutet, dass es \intsich lediglich um \intop\nolimits( \nolimitsein TeX-Grundelement) handelt und \intopdirekt darüber wie folgt definiert ist:

\DeclareMathSymbol{\intop}{\mathop}{largesymbols}{"52}

was bedeutet, dass es sich um einen \mathop(Operator) handelt, der aus der Slot-Nummer "52(das ist hexadezimal 0x52) der largesymbolsSchriftart entnommen wird. Schließlich largesymbolswird die Schriftart am Anfang fontmath.ltxmit folgendem deklariert:

\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}

was Kodierung OMX, Familie cmex, Serie m(Edium), Form n(ormal) bedeutet.

Um das obige Beispiel zu erstellen, habe ich einfach largesymbolsin largesymbolscmrund in umbenannt, \int(op)um \cmrint(op)Konflikte zu vermeiden.

\txint

Der Vorgang ist ähnlich, außer dass wir statt in nachsehen fontmath.ltxnachsehen txfonts.sty(verwenden Sie , kpsewhich txfonts.styum die Datei zu finden). Allerdings txfonts.stywird nicht neu definiert \int, also die Definition vonBefehlist das gleiche wie das Original von LaTeX. Was txfontsneu definiert wird, ist die largesymbolsmathematische Schriftart:

\DeclareSymbolFont{largesymbols}{OMX}{txex}{m}{n}

Um die txfontsVersion von zu verwenden \int, müssen wir diese Schriftart deklarieren und eine separate Kopie erstellen, die txexanstelle von verwendet cmex:

\DeclareSymbolFont{largesymbolstx}{OMX}{txex}{m}{n} % declare a TX copy of largesymbols
\DeclareMathSymbol{\txintop}{\mathop}{largesymbolstx}{"52} % declare a TX copy of \intop that uses the above
\DeclareRobustCommand\txint{\txintop\nolimits}

\txiint

Dieses ist dem obigen ähnlich. Darin txfonts.styfinden Sie, dass es \iintwie folgt definiert ist:

\re@DeclareMathSymbol{\iintop}{\mathop}{largesymbolsA}{33}
   \def\iint{\iintop\nolimits}

welches verwendet largesymbolsA, zuvor definiert mit:

\DeclareSymbolFont{largesymbolsA}{U}{txexa}{m}{n}

Sie können also Folgendes anpassen (um den \re@Declare...in diesem Paket definierten Befehl zu vermeiden):

\DeclareSymbolFont{largesymbolstxA}{U}{txexa}{m}{n}
\DeclareMathSymbol{\txiintop}{\mathop}{largesymbolstxA}{"21} % 33 (decimal) = "21 (hexadecimal)
\DeclareRobustCommand\txiint{\txiintop\nolimits}

Sie können eine Glyphe in einer Schriftart auch mithilfe des fonttablePakets finden, beispielsweise mit {U}{txexa}{m}{n}:

\documentclass{article}
\usepackage{fonttable}
\begin{document}
\xfonttable{U}{txexa}{m}{n}
\end{document}

welches ausgibt:

Bildbeschreibung hier eingeben

das den doppelten Integralglyph in Steckplatz 33 dieser Schriftart zeigt.

\cmriint

Die Schriftart Computer Modern hat kein doppeltes Integralzeichen, daher funktioniert der obige Ansatz nicht. Es gibt jedoch andere Möglichkeiten:

amsmathemuliert (bis zu) 4 Integralzeichen mit \MultiIntegral, das definiert ist:

\newcommand{\MultiIntegral}[1]{%
  \edef\ints@c{\noexpand\intop
    \ifnum#1=\z@\noexpand\intdots@\else\noexpand\intkern@\fi
    \ifnum#1>\tw@\noexpand\intop\noexpand\intkern@\fi
    \ifnum#1>\thr@@\noexpand\intop\noexpand\intkern@\fi
    \noexpand\intop
    \noexpand\ilimits@
  }%
  \futurelet\@let@token\ints@a
}

und wird dann \iintwie folgt definiert:

\ams@newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}}

Dabei wird jedoch das Standardglyph verwendet \intop. Um die Schriftart zu ändern, können Sie eine Kopie erstellen (oder sogar neu definieren), \MultiIntegraldie beispielsweise die \cmrintopoben definierte verwendet.

Sie können auch dieesintPaket, das mehrere Typen von Integralzeichen definiert, die (einen Klon) des Computer Modern-Glyphs verwenden. Um das Computer Modern-Integralzeichen mit anderen Schriftpaketen zu verwenden, müssen Sie nur sicherstellen, dass Sie esintnach allen Schriftpaketen (und nach amsmath) laden.

verwandte Informationen