[petsc-dev] Manual figures are messed up

Barry Smith bsmith at mcs.anl.gov
Thu Oct 8 13:39:23 CDT 2015


> On Oct 8, 2015, at 1:07 PM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> 
> It works fine on my workstation with the current tex file.
> 
> \begin{verbatim} is defined as a token at the beginning of the script. For the '}' match, maybe we can define a separate flag if begin{verbatim} is active and turn off the check on '}'.

   Yes I think you need a different flag.

   Cool, if you get it working working we can stick it in the repository.

    Thanks

   Barry

> 
> Stefano
> 
> Il 08/ott/2015 08:50 PM, "Barry Smith" <bsmith at mcs.anl.gov> ha scritto:
> 
>    I can't image this would work because \\begin{verbatim} is not a token. Plus if decrease for each } you will exit the verbatim "safe" zone as soon as you hit a }
> 
>   Barry
> 
> > On Oct 8, 2015, at 9:54 AM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> >
> > What about the patch in attachment?
> >
> > 2015-10-08 1:54 GMT+03:00 Barry Smith <bsmith at mcs.anl.gov>:
> >
> > > On Sep 30, 2015, at 7:46 AM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> > >
> > > I just noticed that Figures 19 and 20 in the manual (current release and master) are messed up. The htmlmap process seems not to work properly.
> >
> > The tool /bin/maint/mapnameslatex.py is what looks through the tokens in the .tex files and replaces PETSc functions etc with an href. Unfortunately it is simple minded. It should turn off replacement when it detects a \begin{verbatim} and turn it back on when it hits the \end{verbatim} here is the entire engine
> >
> >     while 1:
> >         token = lex.token()       # Get a token
> >         if not token: break        # No more tokens
> >         if token.type == 'NEWLINE':
> >             print text
> >             text = ''
> >         else:
> >             # \href cannot be used in many places in Latex
> >             if token.value in ['\\href{','\\findex{','\\sindex{','\\subsection{','\\chapter{','\\section{','\\caption{','\\trl{']:
> >                 bracket = bracket + 1;
> >             if bracket == 0:
> >                 value = token.value
> >                 if mappedstring.has_key(value):
> >                     mvalue = mappedstring[value].replace('_','\\_')
> >                     value = '\\href{'+'http://www.mcs.anl.gov/petsc/petsc-'+version+'/docs/'+mappedlink[value]+'}{'+mvalue+'}\\findex{'+value+'}'
> >             else:
> >                 value = token.value
> >             if token.value[0] == '}' and bracket:
> >                 bracket = bracket - 1;
> >             text = text+value
> >
> > You want to take a crack at fixing it? Because I don't really feel like it :-(
> >
> >   Barry
> >
> >
> >
> > >
> > > --
> > > Stefano
> >
> >
> >
> >
> > --
> > Stefano
> > <patch_manual>
> 




More information about the petsc-dev mailing list