]> gitweb.michael.orlitzky.com - mjotex.git/blobdiff - mjo-listing.tex
TODO: remove it, all done for now.
[mjotex.git] / mjo-listing.tex
index aa24b5cc5cadda0490b34277afc43ccb9f9cbe7a..cf3fc582a1d1e7fa8aefb8a62e7488477ade3dbf 100644 (file)
 %   x
 %   \end{tcblisting}
 %
-\usepackage{listings}
-\usepackage{tcolorbox}
+\ifx\havemjolisting\undefined
+\def\havemjolisting{1}
+
+
+\ifx\lstset\undefined
+  \usepackage{listings}
+\fi
+
+\ifx\tcbuselibrary\undefined
+  \usepackage{tcolorbox}
+\fi
 
 % Tell tcolorbox to use ``listings'' within the boxes.
 \tcbuselibrary{listings}
@@ -27,7 +36,8 @@
 \lstset{%
   basicstyle=\ttfamily\small,
   columns=fullflexible,
-  keepspaces=true
+  keepspaces=true,
+  showstringspaces=false
 }
 
 % Define a style for interactive sage prompt listings.
   keywordstyle=\color{brilliantlavender},
   stringstyle=\color{brilliantgreen}
 }
+
+
+% Input a SageMath example code listing from a file. You generally
+% want these to be in separate files so that the build system can test
+% them automatically.
+%
+% The sole argument is the "name" of the listing, which ultimately
+% just identifies a file named "sage_listings/<name>.listing".
+\newcommand*{\sagelisting}[1]{\tcbinputlisting{listing only,%
+               colback=codebg,%
+               coltext=codefg,%
+               left=2em,%
+               listing options={language=sage,style=sage},%
+               listing file=sage_listings/#1.listing}}
+
+
+\fi