Ergebnis 1 bis 3 von 3

Thema: pst-barcode mit luacode function

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.09.2006
    Beiträge
    21

    pst-barcode mit luacode function

    Hallo,

    ich möchte einen Data-Matrix-Code für einen Kalendereintrag erstellen (siehe auch http://de.wikipedia.org/wiki/ICalendar). Dabei soll jedoch der Termineintrag mit einer Lua-Funktion berechnet werden (im Beispiel der Einfachheit halber bei DTEND das aktuelle Datum und die aktuelle Uhrzeit mit der Lua-Funktion Termin()).

    In der jetzigen Form funktioniert das nicht. Im QR-Code steht nicht DTEND:20170317T120000 sondern DTEND:{Termin()}. Feststellen lässt sich das z. B. mit dem Barcodescanner eines Smartphones.

    Wie kann das Problem gelöst werden?

    Code:
    \RequirePackage{luatex85}
    \RequirePackage{ifluatex}
    
    \documentclass[12pt]{article}
    \ifluatex\usepackage{fontspec}\fi
    
    \usepackage{shellesc, auto-pst-pdf}
    \usepackage{pst-barcode}
    \usepackage{luacode}
    
    \begin{document}
    
    \begin{luacode}
    function Termin()
    	return(os.date("\%Y\%m\%dT\%H\%M\%S"))
    end
    \end{luacode}
    
    Dieser Termin soll als DTEND eingetragen werden:
    \directlua{tex.print{Termin()}}\\
    
    Data-Matrix-Code für den Kalendereintrag:\\
    
    \begin{pspicture}%
    \psbarcode{%
    BEGIN:VCALENDAR^^J%
    VERSION:2.0^^J%
    BEGIN:VEVENT^^J%
    SUMMARY:Name^^J%
    DESCRIPTION:Beschreibung^^J%
    DTSTART:20170317T120000^^J%
    DTEND:\directlua{Termin()}^^J%
    LOCATION:Ort^^J%
    END:VEVENT^^J%
    END:VCALENDAR%
    }{height=1 width=1}{qrcode}%
    \end{pspicture}
    
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.008
    Das kann nicht funktionieren. Das Bild wird doch mit latex+dvips gemacht, und da sind die lua-Befehle nicht definiert.

    Lass das lieber mit auto-pst-pdf und benutze das qrcode-Paket.

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.09.2006
    Beiträge
    21
    Du hast recht, das kann nicht funktionieren, da kein luatex ausgeführt wird. Da muss erst jemand unbeteiligtes kommen. Vielen Dank.

    Ich mache es also mit dem qrcode-Paket. Und es geht wunderbar ;-)

    Code:
    \documentclass{article}
    
    \usepackage{fontspec}
    \usepackage{qrcode}
    \usepackage{luacode}
    
    \begin{document}
    
    \begin{luacode}
    function Termin()
    	return tex.print{os.date("\%Y\%m\%dT\%H\%M\%S")}
    end
    \end{luacode}
    
    Dieser Termin soll als DTEND eingetragen werden:
    \directlua{Termin()}\\
    
    Data-Matrix-Code für den Kalendereintrag:\\
    
    \qrcode[height=1in]{
    BEGIN:VCALENDAR
    BEGIN:VEVENT
    VERSION:2.0
    SUMMARY:Name
    DESCRIPTION:Beschreibung
    DTSTART:20170317T120000
    DTEND:\directlua{Termin()}
    LOCATION:Ort
    END:VEVENT
    END:VCALENDAR
    }
    
    \end{document}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •