[tex-live] several bug reports (beamer, hyperref, listings)

Qing Lee sobenlee at gmail.com
Sat Jun 28 13:12:35 CEST 2014


On 2014-06-28 at 05:33:40 +0800 GMT, Norbert Preining wrote:
> Hi everyone,
>
> I will try to contact upupstream, but for now a collection of broken
> things with the current status, all was working before (2013) AFAIR:
>
>
> * beamer and unhbox
> ===================
> ! Missing { inserted.
> <to be read again>
>                     \unhbox
> l.5 \end{frame}
>
> ?
>
> \documentclass{beamer}
> \begin{document}
> \begin{frame}
>   a$^\mbox{b}$
> \end{frame}
> \end{document}
>
>
> * hyperref
> ==========
> ! Package keyval Error: pagelabels undefined.
>
> See the keyval package documentation for explanation.
> Type  H <return>  for immediate help.
>   ...
>
> l.4319 \ProcessKeyvalOptions{Hyp}
>
> ?
>
>
> \documentclass[hyperref={pagelabels=false}]{beamer}
> \begin{document}
> \end{document}
>
>
>
> * listings
> ==========
> ! Missing { inserted.
> <inserted text>
>                  {
> l.7 \end{tabular}
>
> ?
>
> \documentclass{article}
> \usepackage{listings}
> \newcommand\foo{\lstinline{t}}
> \begin{document}
> \begin{tabular}{l}
> \foo
> \end{tabular}
> \end{document}
>

It seems that listings used brace trick in a wrong way since 2014/03/04 v1.5c:

     \newcommand\lstinline[1][]{%
         \leavevmode\bgroup % \hbox\bgroup --> \bgroup
           \def\lst at boxpos{b}%
           \lsthk at PreSet\lstset{flexiblecolumns,#1}%
           \lsthk at TextStyle
           \@ifnextchar\bgroup{%
     %    \end{macrocode}
     % \lstthanks{Luc~Van~Eycken}{Luc.VanEycken at esat.kuleuven.be}{2014/01/22}
     % reported, that the experimental implementation of |\lstinline| with
     % braces instead of characters surrounding the source code resulted in an
     % error if used in a tabular environment. He found that this error comes
     % from the master counter (cf. appendix D (Dirty Tricks), item 5. (Brace
     % hacks), of the TeXbook (p. 385-386)). Adding the following line remedies
     % the wrong behaviour.
     %    \begin{macrocode}
             \ifnum`{=0}\fi%
             \afterassignment\lst at InlineG \let\@let at token}%
                              \lstinline@}

A quick fix is

     \makeatletter
     \renewcommand\lstinline[1][]{%
         \leavevmode\bgroup % \hbox\bgroup --> \bgroup
           \def\lst at boxpos{b}%
           \lsthk at PreSet\lstset{flexiblecolumns,#1}%
           \lsthk at TextStyle
           \ifnum\iffalse{\fi`}=\z@\fi
           \@ifnextchar\bgroup{%
             \ifnum`{=\z@}\fi%
             \afterassignment\lst at InlineG \let\@let at token}{%
             \ifnum`{=\z@}\fi\lstinline@}}
     \makeatother
  
Details: http://tex.stackexchange.com/a/10371


Qing Lee



More information about the tex-live mailing list