initial source import
diff --git a/doc/tools/texinputs/ltxmarkup.sty b/doc/tools/texinputs/ltxmarkup.sty
new file mode 100644
index 0000000..d461d70
--- /dev/null
+++ b/doc/tools/texinputs/ltxmarkup.sty
@@ -0,0 +1,40 @@
+% Created by Fred L. Drake, Jr. <fdrake@acm.org>, as part of the
+% Python Documentation Project.
+%
+% Define some simple markup for the LaTeX command documentation:
+
+\ProvidesPackage{ltxmarkup}
+\RequirePackage{python}      % fulllineitems environment
+
+% These two macros are used in constructing the last parameter to the
+% envdesc and macrodesc environments.
+
+\newcommand{\py@ltx@optparam}[1]{{[}\var{#1}{]}}
+\newcommand{\py@ltx@param}[1]{\{\var{#1}\}}
+
+\newenvironment{envdesc}[2]{
+  \begin{fulllineitems}
+    \item[\code{\e begin\{{\bfseries #1}\}{%
+      \let\op=\py@ltx@optparam%
+      \let\p=\py@ltx@param%
+      \let\unspecified=\py@unspecified%
+      \let\moreargs=\py@moreargs%
+         #2}}]
+    \item[\code{\e end\{{\bfseries #1}\}}]
+    \index{#1 environment@\idxcode{#1} environment}
+    \index{environments!#1@\idxcode{#1}}
+}{\end{fulllineitems}}
+
+\newenvironment{macrodesc}[2]{
+  \begin{fulllineitems}
+    \item[\code{{\e\bfseries#1}{%
+      \let\op=\py@ltx@optparam%
+      \let\p=\py@ltx@param%
+      \let\unspecified=\py@unspecified%
+      \let\moreargs=\py@moreargs%
+      #2}}]
+    \index{#1@\idxcode{\e #1}}
+}{\end{fulllineitems}}
+
+\newcommand{\env}[1]{\code{#1}}
+\newcommand{\macro}[1]{\code{\e#1}}