Back to index

wims  3.65+svn20090927
Defines | Functions | Variables
mathfonts.c File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define texsize_no   (sizeof(texsize_list)/sizeof(texsize_list[0]))

Functions

void fix_tex_size (void)
char * mathfont (char *fontname)

Variables

char * middle_fonts
char * mathfont_dir = "mathfonts"
int texsize_list [] = {63,69,76,83,91,100,109,120,131,144,158,173}
int texbasesize = 6
int usertexsize = -1
int current_tex_size

Define Documentation

#define texsize_no   (sizeof(texsize_list)/sizeof(texsize_list[0]))

Definition at line 41 of file mathfonts.c.


Function Documentation

void fix_tex_size ( void  )

Definition at line 45 of file mathfonts.c.

{
    char buf[64],*p; int i,ts;
    ts=texbasesize;
    if(usertexsize>=0) ts=usertexsize+1;
    if(getwimstexsize) p=getvar("wims_texsize"); else p=NULL;
    if(p!=NULL && *p!=0) {
       i=evalue(p);
       if(i>=-5 && i<=5) ts+=i;
    }
    if(ts<0) ts=0;
    if(ts>=texsize_no) ts=texsize_no-1;    
    current_tex_size=texsize_list[ts];
    snprintf(buf,sizeof(buf),"%d",current_tex_size);
    setenv("texgif_density",buf,1);
}

Here is the call graph for this function:

Here is the caller graph for this function:

char* mathfont ( char *  fontname)

Definition at line 63 of file mathfonts.c.

{
    char buf1[MAX_LINELEN+1],buf2[MAX_LINELEN+1];
    struct stat st;

    if(fontname[0]=='\\') fontname++;
    else if(strncmp(fontname,mathfont_prefix,strlen(mathfont_prefix))==0) 
      fontname+=strlen(mathfont_prefix);
    if(strlen(fontname)==1 /* && strchr("xyz",fontname[0])==NULL */) {
       char c=fontname[0];
       if(!isalpha(c)) {
           buf2[0]=c;buf2[1]=0;
       }
       else {
           char *pp;
           if(c=='f') pp="&nbsp;"; else pp="";
           snprintf(buf2,sizeof(buf2),"<i>%c</i>%s",c,pp);
       }
    }
    else {
#ifdef CASE_INSENSITIVE_FS
       char *underscore;
       fix_tex_size(); underscore="";
           {
              char *p, *p2;
              for(p=fontname; *p && !isupper(*p); p++);
              /* verify positionning of capital letter */
              if(*p && p>fontname && *(p+1)!=0) return NULL;
              if(p==fontname && (fontname[1]!=*p || strlen(fontname)!=2)) {
                  for(p2=p+1; *p2 && !isupper(*p2); p2++);
                  if(*p2) return NULL;
              }
              if(*p) underscore="_";
           }
       snprintf(buf1,sizeof(buf1),"%s/%d/%s%s.gif",
               mathfont_dir,current_tex_size,fontname,underscore);
       if(*underscore && stat(buf1,&st)!=0)
         snprintf(buf1,sizeof(buf1),"%s/%d/%s.gif",
                 mathfont_dir,current_tex_size,fontname);
#else
       fix_tex_size();
       snprintf(buf1,sizeof(buf1),"%s/%d/%s.gif",
               mathfont_dir,current_tex_size,fontname);
#endif
       if(stat(buf1,&st)!=0) return NULL;
       snprintf(buf2,sizeof(buf2),",%s,",fontname);
       if(strstr(middle_fonts,buf2)!=NULL) 
         snprintf(buf2,sizeof(buf2),
                 "%s<img src=\"%s%s\" align=middle border=0 \
alt=\"%s\">%s",
                 mathalign_sup1,ref_base,buf1,fontname,mathalign_sup2);
       else
         snprintf(buf2,sizeof(buf2),"<img src=\"%s%s\" vspace=0 border=0 \
alt=\"%s\">",
                 ref_base,buf1,fontname);
    }
    force_setvar("wims_mathfont_",buf2); return getvar("wims_mathfont_");
}

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

Definition at line 43 of file mathfonts.c.

char* mathfont_dir = "mathfonts"

Definition at line 35 of file mathfonts.c.

char* middle_fonts
Initial value:
",y,beta,eta,mu,phi,rho,varphi,psi,\
le,leq,ge,geq,pm,ne,neq,\
subseteq,supseteq,wp,\
int,oint,Vert,\
QQ,\
eufQ,eufz,\
leftpar2,leftpar3,leftpar4,leftpar5,leftpar6,\
leftpar7,leftpar8,leftpar9,leftpar10,leftpar11,leftpar12,\
rightpar2,rightpar3,rightpar4,rightpar5,rightpar6,\
rightpar7,rightpar8,rightpar9,rightpar10,rightpar11,rightpar12,\
leftbrace2,leftbrace3,leftbrace4,leftbrace5,leftbrace6,\
leftbrace7,leftbrace8,leftbrace9,leftbrace10,leftbrace11,leftbrace12,\
rightbrace2,rightbrace3,rightbrace4,rightbrace5,rightbrace6,\
rightbrace7,rightbrace8,rightbrace9,rightbrace10,rightbrace11,rightbrace12,"

Definition at line 19 of file mathfonts.c.

int texbasesize = 6

Definition at line 39 of file mathfonts.c.

int texsize_list[] = {63,69,76,83,91,100,109,120,131,144,158,173}

Definition at line 38 of file mathfonts.c.

int usertexsize = -1

Definition at line 40 of file mathfonts.c.