wie übergebe ich Abschnittsnummern in Pythontex an Python?

wie übergebe ich Abschnittsnummern in Pythontex an Python?

Ich schreibe einige Parameter mit Pythontex in JSON-Dateien, möchte aber Kontextinformationen in Form von Abschnittsnummern hinzufügen (z. B. \thesection oder \thesubsubsection, vielleicht auch die Seitenzahl oder andere Zähler).

Gibt es eine einfache Möglichkeit, die Werte der Abschnittszähler an Python zu übergeben?

  • Josef

Antwort1

Dies kann auf verschiedene Weise erfolgen. Hier ist ein Ansatz. Einen anderen Ansatz finden Sie \setpythontexcontextin der Pythontex-Dokumentation.

Die Pythontex-Befehle \pycsind dafür gedacht, Code wortwörtlich an Python zu senden. Der Trick dabei ist, ihn vollständig zu erweitern, \thesectionbevor er in einer Python-Variable gespeichert wird.

\documentclass{article}
\usepackage{pythontex}
\makeatletter
\newcommand{\sectopy}{%
  \edef\sectopy@val{\thesection}%
  \expandafter\sectopy@i\expandafter{\sectopy@val}}
\def\sectopy@i#1{\pyc{section = #1}}
\makeatother

\begin{document}

\section{Section}

\sectopy

The section is: \py{section}

\end{document} 

verwandte Informationen