
minted options
tcolorbox リストにオプションを 1つと 1 つtcolorbox
同時に渡す方法を教えてくださいpythoncode
。つまり、以下の MWE で にminted options
示すように、一部のオプションを に渡し、に示すように、一部のオプションを に渡したいのです。#1
tcolorbox
#2
\documentclass{book}
\usepackage[left=1.00in, right=1.00in, top=1.00in, bottom=1.00in]{geometry}
\usepackage{amsmath}
\usepackage{tcolorbox}
\tcbuselibrary{minted,skins,breakable}
\usepackage{hyperref}
\hypersetup{ %
pdfborder = {0 0 0},
colorlinks=true,
}
\newtcblisting{pythoncode}[2][]{
listing engine=minted,
breakable,
colback=bg,
colframe=black!70,
listing only,
minted style=colorful,
minted language=python,
minted options={linenos=true,numbersep=3mm,texcl=true,#1},
left=5mm,enhanced,
overlay={\begin{tcbclipinterior}\fill[black!25] (frame.south west)
rectangle ([xshift=5mm]frame.north west);\end{tcbclipinterior}},
#2,
}
\begin{document}
\section{Python example}
\begin{pythoncode}[colback=red!5!white,colframe=red!75!black,title=My nice heading]
# indent your Python code to put into an email
import glob
# glob supports Unix style pathname extensions
python_files = glob.glob('*.py')
for file_name in sorted(python_files):
print ' ------' + file_name
with open(file_name) as f:
for line in f:
print ' ' + line.rstrip()
print
\end{pythoncode}
\end{document}
答え1
pythoncode
あなたがやったことは小さな変更で動作します。次のように環境にオプションを渡す必要があります
\begin{pythoncode}[linenos=true,]{colback=red!5!white,colframe=red!75!black,title=My nice heading}
オプションtcolorbox
(つまり、 ) を必須にしたので、オプションは 内に入るpythoncode
のに対し、オプションは中括弧で囲む必要があります。minted
brakets
\documentclass{book}
\usepackage[left=1.00in, right=1.00in, top=1.00in, bottom=1.00in]{geometry}
\usepackage{amsmath}
\usepackage{tcolorbox}
\tcbuselibrary{minted,skins,breakable}
\usepackage{hyperref}
\hypersetup{ %
pdfborder = {0 0 0},
colorlinks=true,
}
\newtcblisting{pythoncode}[2][]{
listing engine=minted,
breakable,
colback=bg,
colframe=black!70,
listing only,
minted style=colorful,
minted language=python,
minted options={numbersep=3mm,texcl=true,#1},
left=5mm,enhanced,
overlay={\begin{tcbclipinterior}\fill[black!25] (frame.south west)
rectangle ([xshift=5mm]frame.north west);\end{tcbclipinterior}},
#2,
}
\begin{document}
\section{Python example}
\begin{pythoncode}[linenos=true,]{colback=red!5!white,colframe=red!75!black,title=My nice heading}
# indent your Python code to put into an email
import glob
# glob supports Unix style pathname extensions
python_files = glob.glob('*.py')
for file_name in sorted(python_files):
print ' ------' + file_name
with open(file_name) as f:
for line in f:
print ' ' + line.rstrip()
print
\end{pythoncode}
\end{document}
詳細:
定義すると
\newtcblisting{pythoncode}[2][]{
環境に引数が 2 つあるということですねpythoncode
。 を空にすると[]
、最初の引数がoptional
デフォルト値なしになります。オプションの引数は 内で使用するbrackets
か、単に省略することができます。省略した場合はデフォルト値 (ここでは none) が使用されます。2 番目の引数は必須で、中括弧で囲みます。値を指定しない場合は、 を使用します{}
(最初の引数では何も使用する必要がないのとは異なります)。したがって、オプションがない場合は を使用する必要があります。
\begin{pythoncode}{}
一番下の行は[2][]
、引数が 2 つあり、最初の引数はオプションで、デフォルトがあることを意味しますnone
。