Hinzufügen eines Standardarguments zu einem benutzerdefinierten Befehl

Hinzufügen eines Standardarguments zu einem benutzerdefinierten Befehl

Ich verwende das Listings-Paket, um Python-Code anzuzeigen, aber ich kann anscheinend kein optionales Argument angeben, das die vom Algorithmus verwendete Schriftgröße angibt. Y möchte, dass der Algorithmus in normaler Größe gedruckt wird, aber wenn ich einen Parameter an die pythonUmgebung übergebe, soll stattdessen die neue Schriftgröße verwendet werden. Ich habe viele Beiträge darüber gesehen, wie das \newcommandfunktioniert, aber ich scheine es nicht zum Laufen zu bringen (ich habe gesehenDasUndDaszum Beispiel). Der Code, mit dem ich angefangen habe, ist dieser:

\documentclass{article}

\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{listings}

\newcommand\pythonstyle{\lstset{language=Python,
  basicstyle=\ttfamily\normalsize,
  showstringspaces=false,
  emph={ClassName},          % Custom highlighting
  morekeywords={>, >=, <, <=, ==, !=, __init__, __new__, __lt__, __eq__, __ne__, __le__, __ge__, __gt__, __repr__, __str__, __del__, __format__, __hash__, __bool__}
}}
% Python environment
\lstnewenvironment{python}[1][mathescape]
{
\pythonstyle
\lstset{#1}
}
{}

\begin{document}

\begin{python}
def hi(s):
    print("how are you?")
\end{python}

\end{document}

Antwort1

Ich würde dies nicht tun, da die Lösung der Frage bereits die Verwendung von z. B. unterstützt. \begin{python}[\basicstyle=\ttfamily\Huge]Dennoch:

\documentclass{article}

\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{listings}

\newcommand\pythonstyle[1][\normalsize]{\lstset{language=Python,
  basicstyle=\ttfamily#1,
  showstringspaces=false,
  emph={ClassName},          % Custom highlighting
  morekeywords={>, >=, <, <=, ==, !=, __init__, __new__, __lt__, __eq__, __ne__, __le__, __ge__, __gt__, __repr__, __str__, __del__, __format__, __hash__, __bool__}
}}
% Python environment
\lstnewenvironment{python}[1][\normalsize]
{
\pythonstyle[#1]
}
{}

\begin{document}

\begin{python}
def hi(s):
    print("how are you?")
\end{python}

\begin{python}[\Huge]
def hi(s):
    print("how are you?")
\end{python}


\end{document}

verwandte Informationen