Ich möchte den Standard \int
und die \gammaup
aus dem txfonts
Paket 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 txfonts
Paket 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 \int
Symbol für newtxmath
ist 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
):
\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.ltx
in einem Terminal ausführen). Wenn Sie \int
im Code danach suchen, werden Sie feststellen, dass es wie folgt definiert ist:
\DeclareRobustCommand\int{\intop\nolimits}
was bedeutet, dass es \int
sich lediglich um \intop\nolimits
( \nolimits
ein TeX-Grundelement) handelt und \intop
direkt 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 largesymbols
Schriftart entnommen wird. Schließlich largesymbols
wird die Schriftart am Anfang fontmath.ltx
mit 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 largesymbols
in largesymbolscmr
und in umbenannt, \int(op)
um \cmrint(op)
Konflikte zu vermeiden.
\txint
Der Vorgang ist ähnlich, außer dass wir statt in nachsehen fontmath.ltx
nachsehen txfonts.sty
(verwenden Sie , kpsewhich txfonts.sty
um die Datei zu finden). Allerdings txfonts.sty
wird nicht neu definiert \int
, also die Definition vonBefehlist das gleiche wie das Original von LaTeX. Was txfonts
neu definiert wird, ist die largesymbols
mathematische Schriftart:
\DeclareSymbolFont{largesymbols}{OMX}{txex}{m}{n}
Um die txfonts
Version von zu verwenden \int
, müssen wir diese Schriftart deklarieren und eine separate Kopie erstellen, die txex
anstelle 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.sty
finden Sie, dass es \iint
wie 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 fonttable
Pakets finden, beispielsweise mit {U}{txexa}{m}{n}
:
\documentclass{article}
\usepackage{fonttable}
\begin{document}
\xfonttable{U}{txexa}{m}{n}
\end{document}
welches ausgibt:
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:
amsmath
emuliert (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 \iint
wie 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), \MultiIntegral
die beispielsweise die \cmrintop
oben definierte verwendet.
Sie können auch dieesint
Paket, 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 esint
nach allen Schriftpaketen (und nach amsmath
) laden.