Benutzerdefinierte Umgebung führt zu „Fremdeingaben“

Benutzerdefinierte Umgebung führt zu „Fremdeingaben“

Motivation

Ich verwende das PaketPflanzenumlum UML-Diagramme zu zeichnen. Leider ist der Standardstil von Plantuml (dem Tool) hässlich und ich muss in jeder Plantuml-Umgebung einen benutzerdefinierten Stil definieren. Um die Stildefinition nicht oft wiederholen zu müssen, möchte ich eine benutzerdefinierte Umgebung definieren, die die Plantuml-Umgebung verwendet und den Stil bereits enthält. Leider erhalte ich einige Fehler (Details weiter unten).

Workaround gefunden – keine Lösung mehr erforderlich

Ich habe herausgefunden, dass plantuml Themes unterstützt. Diese enthalten alle von mir benötigten Stilelemente und können in einer Zeile hinzugefügt werden – was für mich akzeptabel ist, auch wenn es wiederholt wird. Zu Lernzwecken wäre ich immer noch an Ideen interessiert, aber ich brauche sie nicht mehr, um das ursprüngliche Problem zu lösen.

MWE mit Standardverwendung von Plantuml

\documentclass{scrbook}
\usepackage{plantuml}

\begin{document}

\begin{plantuml}
    @startuml % required by plantuml (the tool, not the package)
    skinparam sequence { % style definition
        ParticipantBorderColor black
        ParticipantBackgroundColor white
    }

    Alice -> Bob: test % diagram content
    @enduml
\end{plantuml}

\end{document}

Mein Ansatz

\documentclass{scrbook}
\usepackage{plantuml}

% environment definition
\newenvironment{bplantuml}{
\begin{plantuml}
@startuml
skinparam sequence {
ParticipantBorderColor black
ParticipantBackgroundColor white
}
}{
@enduml
\end{plantuml}
}

\begin{document}

% usage
\begin{bplantuml}
    Alice -> Bob: test
\end{bplantuml}

\end{document}

Fehler

FancyVerb-Fehler: Überflüssige Eingabe ` @startuml skinparam sequence { ParticipantBorderColor schwarz ParticipantBackgroundColor weiß } ' zwischen \begin{plantuml}[<key=value>] und Zeilenende

Weitere Ideen

Das Umgeben der Umgebungsdefinition mit makeatletter/makeatother hat nicht funktioniert. Vielleicht brauche ich es aber trotzdem, wenn das ursprüngliche Problem behoben ist?

verwandte Informationen