Arevmath y la letra a

Arevmath y la letra a

El arevmathpaquete ofrece dos a diferentes, disponibles como \origa y \vara (valor predeterminado). Sin embargo, al agregar \DeclareMathSymbol{a}{\mathalpha}{extraitalic}{50}el preámbulo para convertir \origa como a predeterminado, el resultado es incorrecto; por ejemplo, $\mathsf{a}$ produce 2, ídem para $\mathbf{a}$.

\documentclass{article}    
\usepackage{arevmath}

\DeclareMathSymbol{a}{\mathalpha}{extraitalic}{50} % \origa by default

\begin{document}

$a, \mathsf{a}, \mathbf{2}, \vara, \origa, \mathsf{\origa}$ 

\end{document}

ingrese la descripción de la imagen aquí

¿Cómo arreglar esto?

Respuesta1

Las fuentes heredadas, con sólo 128 o 256 espacios, requerían mucha gimnasia de codificación y muchos archivos de soporte de fuentes.

Para arevmathel paquete, para a, los tt y tt en negrita podrían ser lo que busca. Por lo demás, la "ronda" aparece ser la norma.

Vista rápida:

zavm

(Sin embargo, es más fácil usar fuentes ttf\otf con unicode-mathel paquete).

MWE

Tablas de fuentes/listas de glifos:

\documentclass{article}    
\usepackage{arevmath}
\usepackage{fonttable}

%\DeclareMathSymbol{b}{\mathalpha}{extraitalic}{50} % 
\newcommand\showfont[6]{\newpage #1-#2-#3-#4 : for #5, #6 = {\usefont{#1}{#2}{#3}{#4}\char#6}\par\xfonttable{#1}{#2}{#3}{#4}}
\newcommand\xshowfont[6]{\par#1-#2-#3-#4 : for #5, #6 = {\usefont{#1}{#2}{#3}{#4}\char#6}}
\begin{document}


\xshowfont{U}{zavm}{m}{n}{nonstandard alternate glyphs, upright}{113}
\xshowfont{U}{zavm}{m}{it}{nonstandard alternate glyphs, italic}{50}
\xshowfont{U}{zavm}{m}{it}{nonstandard alternate glyphs, italic}{139}


\xshowfont{OT1}{zavm}{m}{n}{operators normal}{97}
\xshowfont{OML}{zavm}{m}{it}{letters normal}{97}
\xshowfont{OMS}{zavm}{m}{n}{symbols normal}{65}
\xshowfont{OMX}{mdbch}{m}{n}{largesymbols normal}{74}

\xshowfont{OT1}{zavm}{b}{n}{mathbf normal}{97}
\xshowfont{T1} {fvm} {m}{n}{mathtt normal}{97}
\xshowfont{OMS}{cmsy}{m}{n}{mathcal}{65} 
\xshowfont{U}{rsfs}{m}{n}{mathscr}{65}   
\xshowfont{OML}{zavm}{b}{it}{mathbm}{97}
%\showfont{U}{futm}{m}{n}{mathbb}{1}

%=====
\xshowfont{OT1}{zavm}{b}{n}{operators bold}{97}
\xshowfont{OML}{zavm}{b}{it}{letters bold}{97}
\xshowfont{OMS}{zavm}{b}{n}{symbols bold}{65}
\xshowfont{OMX}{mdbch}{b}{n}{largesymbols bold}{72}
\xshowfont{OT1}{zavm}{b}{n}{mathbf bold}{97}
\xshowfont{T1}{fvm}{b}{n}{mathtt bold}{97}

% with font table

\showfont{U}{zavm}{m}{n}{nonstandard alternate glyphs, upright}{113}
\showfont{U}{zavm}{m}{it}{nonstandard alternate glyphs, italic}{50}


\showfont{OT1}{zavm}{m}{n}{operators normal}{97}
\showfont{OML}{zavm}{m}{it}{letters normal}{97}
\showfont{OMS}{zavm}{m}{n}{symbols normal}{65}
\showfont{OMX}{mdbch}{m}{n}{largesymbols normal}{74}

\showfont{OT1}{zavm}{b}{n}{mathbf normal}{97}
\showfont{T1} {fvm} {m}{n}{mathtt normal}{97}
\showfont{OMS}{cmsy}{m}{n}{mathcal}{65} 
\showfont{U}{rsfs}{m}{n}{mathscr}{65}   
\showfont{OML}{zavm}{b}{it}{mathbm}{97}
%\showfont{U}{futm}{m}{n}{mathbb}{1}

%=====
\showfont{OT1}{zavm}{b}{n}{operators bold}{97}
\showfont{OML}{zavm}{b}{it}{letters bold}{97}
\showfont{OMS}{zavm}{b}{n}{symbols bold}{65}
\showfont{OMX}{mdbch}{b}{n}{largesymbols bold}{72}
\showfont{OT1}{zavm}{b}{n}{mathbf bold}{97}
\showfont{T1}{fvm}{b}{n}{mathtt bold}{97}



%\DeclareSymbolFontAlphabet{\mathnormal}{letters}
%\DeclareSymbolFontAlphabet{\mathit}    {letters}
%\DeclareSymbolFontAlphabet{\mathrm}    {operators}
%\DeclareSymbolFontAlphabet{\mathsf}    {letters}



\end{document}


Editar

Fuente heredada típica:

una lista de glifos

Las letras variantes provienen de un archivo de fuente con Ucodificación (="desconocida"), es decir, una disposición personalizada de glifos, algo similar conceptualmente al Área de uso privado de Unicode.

estás codificando

mientras que las letras "normales" provienen de un archivo de fuente de 128 espacios con una de las codificaciones heredadas ( OML)

oml

y símbolos de la OMScodificación:

oms

y así sucesivamente para negrita, etc.... (El código imprime las distintas tablas).

El arevmathpaquete funciona según lo diseñado.

La "solución" probablemente sería utilizar paquetes compatibles con Unicode que puedan cambiar las fuentes según el compilador que utilice, o profundizar en el unicode-mathpaquete directamente y compilarlo con xelatex/lualatex (¿o tal vez reescribirlo arevmath? - se mantuvo por última vez en 2006).


Miniejemplo de importación de símbolos usando Unicode-Math

Digamos que tenemos un conjunto de fuentes matemáticas Unicode para elegir (sans está marcado):

lista de fuentes

Y digamos que queremos usar la fuente TeX Gyre Schola Math, pero reemplazando sus símbolos alfanuméricos "redondo a" sin cursiva con los de la fuente Asana-Math.

asana

(Tenga en cuenta que los símbolos de entrada directa y los símbolos de macro con nombre están normalizados al estilo de negrita y al estilo matemático actualmente vigentes, básicamente en formato vertical o en cursiva).

Aquí está TeX Gyre Schola Math configurada como fuente matemática, con su estilo configurado en ISO, para mostrar las cursivas.

escuela

La range=opción se utiliza para seleccionar qué símbolo(s) importar. Los pondremos rojos para resaltarlos.

importado

(Tenga en cuenta que range={sfit,bfsfit}importará sin cursiva y negrita sin cursiva para mayúsculas latinas, minúsculas latinas, mayúsculas griegas, minúsculas griegas y dígitos; range=puede tomar parámetros para restringir la importación a solo uno o una combinación de ellos, o incluso solo a individuos individuales glifos.)

Hazlo texdoc unicode-mathpara más detalles.

MWE

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana-Math}[Colour=brown]
\setmainfont{Noto Serif}
\usepackage{xparse}



% maths

\newfontfamily\asanamath{Asana}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/asana-math/,
UprightFont =*-Math,
]


\newfontfamily\firamathregular{FiraMath}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/firamath/,
UprightFont =*-Regular,
]

\newfontfamily\gfsneohellenicmath{GFSNeohellenicMath}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/gfsneohellenicmath/,
UprightFont =GFSNeohellenicMath,
]

\newfontfamily\latinmodernmath{latinmodern}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/lm-math/,
UprightFont =*-math,
]

\newfontfamily\libertinusmath{LibertinusMath}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/,
UprightFont =*-Regular,
]

\newfontfamily\stixmath{STIXMath}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/stix/,
UprightFont =*-Regular,
]

\newfontfamily\stixiimath{STIX2Math}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/stix2-otf/,
UprightFont =STIX2Math,
]

\newfontfamily\texgyrebonummath{texgyrebonum}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/tex-gyre-math/,
UprightFont =*-math,
]
%
\newfontfamily\texgyredejavumath{texgyredejavu}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/tex-gyre-math/,
UprightFont =*-math,
]
%
\newfontfamily\texgyrepagellamath{texgyrepagella}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/tex-gyre-math/,
UprightFont =*-math,
]
%
\newfontfamily\texgyrescholamath{texgyreschola}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/tex-gyre-math/,
UprightFont =*-math,
]
%
\newfontfamily\texgyretermesmath{texgyretermes}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/tex-gyre-math/,
UprightFont =*-math,
]
%
\newfontfamily\xitsmathbold{XITSMath}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/xits/,
UprightFont =*-Bold,
]
%
\newfontfamily\xitsmathregular{XITSMath}[Extension=.otf,Path=C:/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/xits/,
UprightFont =*-Regular,
]







%-------------------------------------------------------------
\ExplSyntaxOn



        \cs_generate_variant:Nn 
            \seq_gset_split:Nnn 
            { cno }


\tl_new:N \g_fc_namespace_tl




%------------------
    \cs_set:Npn \fc_funcsymbolcompare:n #1 { 
    % 1=font switch name

   \tl_set:Nx
    \l_tmpa_tl
    {
                #1
        }
    \use:c
        { \tl_use:N \g_tmpa_tl } % sample name taking font name as parameter
            { \tl_use:N \l_tmpa_tl } % font name from seq
            { \tl_use:N \g_tmpb_tl } % symbol
}


%------------------
    \cs_set:Npn \fc_funcprintesc:n #1 { 
    % 1=string
\exp_args:NNf   \str_set:Nn \l_tmpa_str { #1 }
                        \group_begin:
                        \color{blue} 
                        \usefont{T1}{zi4}{b}{n} 
                        \large
                        \textbackslash
                        {\str_use:N \l_tmpa_str}
                        \group_end:
                        
}

%------------------
    \cs_set:Npn \fc_funcprint:n #1 { 
    % 1=string
\exp_args:NNf   \str_set:Nn \l_tmpa_str { #1 }
                        \str_remove_all:Nn \l_tmpa_str {\protect}
\exp_args:NNxx
                        \str_replace_all:Nnn 
                                \l_tmpa_str 
                                {\space\space\c_left_brace_str} 
                                {\c_left_brace_str}
\exp_args:NNxx
                        \str_replace_all:Nnn 
                                \l_tmpa_str 
                                {\space\c_left_brace_str} 
                                {\c_left_brace_str}

                        \group_begin:
                        \color{blue} 
                        \usefont{T1}{zi4}{b}{n} 
                        \large

                        {\str_use:N \l_tmpa_str}

                        \group_end:
                        
}









%****************************************************
%* utility commands
%****************************************************
%--------------------
\newcommand\mfssamplewidth{0.5in}
\NewDocumentCommand { \psymcmp } { m m } { 
% 1=font name
% 2=symbol(s)
            \use:c { #1 }
            \tex_par:D
            \colorbox
                    {blue!7}
                    {
                        \makebox[\mfssamplewidth][c]{\large #2}
                    } 
        {\usefont{T1}{lmr}{m}{n} \ #1} 

}


%****************************************************
%* main commands
%****************************************************
%--------------------
\NewDocumentCommand { \mfsloadaseq } { o m +m } { 
% 1=namespace
% 2=seq name
% 3=data

                \IfNoValueTF { #1 } 
                        { \tl_clear:N \g_fc_namespace_tl } 
                        { \tl_gset:Nn \g_fc_namespace_tl { #1 } }


    \cs_if_free:cT
            { g_fc_rwe \g_fc_namespace_tl #2 _seq }
            { \seq_new:c
                    { g_fc_rwe \g_fc_namespace_tl #2 _seq } 
            }
    \seq_gclear:c 
            { g_fc_rwe \g_fc_namespace_tl #2 _seq } 
    \seq_gset_split:cno 
            { g_fc_rwe \g_fc_namespace_tl #2 _seq } 
            { , } 
            { #3 }



}



%****************************************************
%*
%****************************************************
%--------------------
\NewDocumentCommand { \mfssymbolcompare } { o m m m } { 
% 1=namespace
% 2=seq name
% 3=sample name
% 4=symbol

                \IfNoValueTF { #1 } 
                        { \tl_clear:N \g_fc_namespace_tl } 
                        { \tl_gset:Nn \g_fc_namespace_tl { #1 } }

        \tl_gset:Nn \g_tmpa_tl { #3 } 
        \tl_gset:Nn \g_tmpb_tl { #4 } 


        \group_begin:               
            \exp_args:Nx
            \seq_map_function:cN 
                    { g_fc_rwe \g_fc_namespace_tl #2 _seq } 
                    \fc_funcsymbolcompare:n
        \group_end:


}


%****************************************************
%*
%****************************************************
%-------------------- Meta



\tl_new:N \l_myparmb_tl
%-------------------- MetaC
\NewDocumentCommand \mmc { s m } { % 1=run, 2 = text
                        \tl_set:Nn \l_myparmb_tl { #2 }


                \IfBooleanTF { #1 } 
            {
                    \fc_funcprint:n { \tl_use:N \l_myparmb_tl }
                    \space $\mapsto$ \space  \l_myparmb_tl
                } 
            {
                    \fc_funcprintesc:n { \tl_use:N \l_myparmb_tl }
                } 

}





%-------------------- xMetaV
\NewDocumentCommand \xmmv { s O{\texttt} m } { % 1 = font, 2 = text
\tl_set:Nn \l_tmpa_tl { #2 {  \tl_to_str:n {#3} } 
        \IfBooleanT {#1} { \space $\mapsto$\space #3 }
          }
\tl_use:N \l_tmpa_tl

}



\ExplSyntaxOff


\newcommand\mtable[1]{% 1-(text)font for mmode
\begin{tabular}{lll}
\rowcolor{brown!15}
generic macros
& specific macros
& direct input
\\
\mmc*{$\symsfup{a}x$}
& \mmc*{$\msansa x$}
& \xmmv*[#1]{$

información relacionada