
Мотивация
Я использую пакетплантумлдля построения диаграмм uml. К сожалению, стиль по умолчанию plantuml (инструмента) уродлив, и мне нужно определить пользовательский стиль в каждой среде plantuml. Чтобы избежать частого повторения определения стиля, я хочу определить пользовательскую среду, которая использует среду plantuml и уже включает стиль. К сожалению, я получаю некоторые ошибки (подробности ниже).
Обходной путь найден — решение больше не требуется
Я обнаружил, что plantuml поддерживает темы. Они содержат все необходимые мне стили и могут быть добавлены в одну строку, что приемлемо для меня, даже если они повторяются. В учебных целях мне все еще были бы интересны идеи, но они мне больше не нужны для решения исходной проблемы.
MWE со стандартным использованием 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}
Мой подход
\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}
Ошибка
Ошибка FancyVerb: посторонний ввод ` @startuml skinparam sequence { ParticipantBorderColor blac k ParticipantBackgroundColor white } ' между \begin{plantuml}[<key=value>] и концом строки
Дальнейшие идеи
Заключение определения окружения в makeatletter/makeatother не сработало, хотя, возможно, оно мне понадобится в любом случае, когда исходная проблема будет исправлена?