Me gustaría utilizar el estándar \int
y el \gammaup
del txfonts
paquete. ¿Cómo puedo mezclar estos símbolos?
MWE:
\documentclass{article}
\usepackage{txfonts}
\begin{document}
Not the int I like, but the gammaup I do like:
\[\int \gammaup\]
\end{document}
Respuesta1
Respuesta accidental :-)
El txfonts
paquete está obsoleto y normalmente puedes reemplazarlo por newtxtext
(para las fuentes de texto) y newtxmath
(para, como habrás adivinado, las fuentes matemáticas). Sin embargo, el \int
símbolo de newtxmath
es bastante similar al de Computer Modern, por lo que podría funcionar para usted. Aquí hay una comparación entre ellos (de izquierda a derecha: txfonts
Computer Modern y 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}
Para encontrar los símbolos es necesario investigar un poco en las fuentes (al menos así es como lo hice yo; podría haber una manera mejor).
\cmrint
La definición informática moderna de los símbolos se puede encontrar en fontmath.ltx
(ahí es donde se inicializan las fuentes matemáticas LaTeX. Puede encontrar ese archivo ejecutándolo kpsewhich fontmath.ltx
en una terminal). Buscando \int
en el código verás que está definido como:
\DeclareRobustCommand\int{\intop\nolimits}
lo que significa que \int
es solo \intop\nolimits
( \nolimits
es una primitiva TeX) y \intop
se define justo arriba con:
\DeclareMathSymbol{\intop}{\mathop}{largesymbols}{"52}
lo que significa que es un \mathop
(operador) tomado del número de ranura "52
(que es hexadecimal 0x52) de la largesymbols
fuente. Finalmente, la largesymbols
fuente se declara al principio fontmath.ltx
con:
\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
que significa codificación OMX
, familia cmex
, serie m
(edium), forma n
(ormal).
Para hacer el ejemplo anterior, simplemente cambié el nombre largesymbols
a largesymbolscmr
y \int(op)
a \cmrint(op)
para evitar conflictos.
\txint
El proceso es similar, excepto que en lugar de buscar, fontmath.ltx
miraremos txfonts.sty
(usamos kpsewhich txfonts.sty
para buscar el archivo). Aunque txfonts.sty
no redefine \int
, por lo que la definición dedominioEs el mismo que el original de LaTeX. Lo txfonts
que redefine es la largesymbols
fuente matemática:
\DeclareSymbolFont{largesymbols}{OMX}{txex}{m}{n}
entonces, para tomar la txfonts
versión de \int
debemos declarar esa fuente y hacer una copia separada que use txex
en lugar de 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
Este es similar al anterior. En txfonts.sty
encontrarás que \iint
está definido con:
\re@DeclareMathSymbol{\iintop}{\mathop}{largesymbolsA}{33}
\def\iint{\iintop\nolimits}
que utiliza largesymbolsA
, definido previamente con:
\DeclareSymbolFont{largesymbolsA}{U}{txexa}{m}{n}
para que puedas adaptarte (para evitar el \re@Declare...
comando definido en ese paquete):
\DeclareSymbolFont{largesymbolstxA}{U}{txexa}{m}{n}
\DeclareMathSymbol{\txiintop}{\mathop}{largesymbolstxA}{"21} % 33 (decimal) = "21 (hexadecimal)
\DeclareRobustCommand\txiint{\txiintop\nolimits}
Otra forma de encontrar un glifo en una fuente es mediante el uso del fonttable
paquete, por ejemplo con {U}{txexa}{m}{n}
:
\documentclass{article}
\usepackage{fonttable}
\begin{document}
\xfonttable{U}{txexa}{m}{n}
\end{document}
que produce:
que muestra el doble glifo integral en la ranura 33 de esa fuente.
\cmriint
La fuente Computer Modern no tiene un glifo integral doble, por lo que el enfoque anterior no funcionará. Pero hay otras opciones:
amsmath
emula (hasta) 4 signos integrales con \MultiIntegral
, que se define:
\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
}
y luego \iint
se define como:
\ams@newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}}
Sin embargo, esto utilizará el \intop
glifo predeterminado. Para cambiar la fuente, puede crear una copia (o incluso redefinir) \MultiIntegral
que use (digamos) lo \cmrintop
definido anteriormente.
También puedes utilizar elesint
paquete, que define varios tipos de signos integrales utilizando (un clon de) el glifo Computer Modern. Para usar el signo integral Computer Modern con otros paquetes de fuentes, solo debe asegurarse de cargar esint
después de todos los paquetes de fuentes (y después amsmath
).