[cstex] Ještě jeden problém s \_

Zdenek Wagner zdenek.wagner at gmail.com
Wed Aug 26 14:59:39 CEST 2009


2009/8/26 "Procházka Lukáš Ing. - Pontex s. r. o." <LPr at pontex.cz>:
> Dobrý den,
>
> řeším ještě jeden problém s interpretací znaku "_".
>
> Pokouším se vyrobit makro:
>
> \def\LOF#1#2{\subsubsection*{Výpis souboru #1:}\VerbatimInput{#2/#1}}
>
> Tj. takové, které napíše jakýsi napdpis "Výpis souboru:" a potom jej
> vylistuje pomocí \Verbatiminput (fancyvrb.sty).
>
> Paramtery, které se předávají, je #1 - jméno souboru, #2 - cesta k němu.
>
\documentclass{article}
\usepackage{fancyvrb}
\def\LOF{\begingroup \catcode`\_=13 \doLOF}
\def\doLOF#1#2{\endgroup \backslashed \section{#1}\begingroup
    \uLetter \VerbatimInput{#2/#1}\endgroup}
{\catcode`\_13
\expandafter}\expandafter\def\noexpand_{\MyUnderscore}
\def\backslashed{\let\MyUnderscore\_}
\def\uLetter{\let\MyUnderscore_}
\begin{document}
\LOF{a_b.txt}{./}
\end{document}

Tohle mi funguje.

> Problém ovšem je, že jménem souboru je "_Bm1.bat" (a cesta např.
> "C:\Test\Be-v12"), takže volání:
>
> \LOF{_Bm1.bat}{C:/Test/Be-12} kolabuje s hláškou:
>
> ! Missing $ inserted.
> <inserted text>
>               $
> l.89  }
>
> Podobně \LOF{\_Bm1.bat}{C:/Test/Be-12} nefunguje:
>
> ! FancyVerb Error:
>  No verbatim file X:/Users/LPr/Public/Beam.1-3/../\protect \unhbox \voidb at x
> \k
> ern .06em\vbox {\hrule width.3em}Bm1.bat
> .
> \FV at Error ... {FancyVerb Error:
> \space \space #1
> }
>
> l.89  }
>
> Zkrátka - kvůli \section potřebuji předávat \_Bm1.bat, kvůli \Verbatiminput
> _Bm1.bat.
>
> Podotýkám, že znak "_" (i "-" kvůli \shorthandoff{-}) se nemusí vyskytovat
> pouze na prvním místě, ale kdekoli ve jméně souboru nebo cesty.
>
> Neřešil někdy někdo podobný problém? Jak to vyřešit?
>
> Zdravím
>
> Lukáš Procházka
>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz



More information about the csTeX mailing list