本次给大家分享的主要内容:如何在Beamer中插入代码片?
将围绕\usepackage{minted}
宏包进行讲述,挑一些最常用的部分给大家展现。
效果
代码片
\usepackage{minted}
\usemintedstyle{manni}
%-------------------------------
\begin{frame}[fragile]{代码环境}
\begin{minted}{python}
import numpy as np
def incmatrix(genl1,genl2):
m = len(genl1)
n = len(genl2)
M = None #to become the incidence matrix
VT = np.zeros((n*m,1), int) #dummy variable
#compute the bitwise xor matrix
M1 = bitxormatrix(genl1)
M2 = np.triu(bitxormatrix(genl2),1)
return M
\end{minted}
\end{frame}
代码解读
\usepackage{minted}
引入minted
宏包;
\begin{frame}[fragile]
后面一定要跟上[fragile]
,否则渲染不出来代码;
\begin{minted}{python}...\end{minted}
表示进行Python语言代码编写,minted
宏包支持很多编程语言,主流的都可以渲染;
宏包内置有很多种代码风格可供我们选择,可在网址查询所有风格:
https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted
以上代码我用了\usemintedstyle{manni}
风格渲染,下图是部分内置代码风格截图:
效果
代码片
\definecolor{LightGray}{gray}{0.9}
%---------------------------------
\begin{frame}[fragile]{代码环境1}
\begin{minted}
[
frame=lines,
framesep=2mm,
baselinestretch=1.2,
bgcolor=LightGray,
fontsize=\footnotesize,
]
{python}
import numpy as np
def incmatrix(genl1,genl2):
m = len(genl1)
n = len(genl2)
M = None #to become the incidence matrix
VT = np.zeros((n*m,1), int) #dummy variable
#compute the bitwise xor matrix
M1 = bitxormatrix(genl1)
M2 = np.triu(bitxormatrix(genl2),1)
return M
\end{minted}
\end{frame}
代码解读
\definecolor{LightGray}{gray}{0.9}
定义颜色灰度值;
\begin{minted}
后面[ ]
中的内容可以添加一些可选参数供自己定制;
frame=lines
代码片上下边框线;
framesep=2mm
代码距边框线的距离;
baselinestretch=1.2
代码片里面代码行间距;
bgcolor=LightGray
代码片背景颜色设置为之前设置好的LightGray
;
fontsize=\footnotesize
代码字体大小设置为\footnotesize
大小。
效果
代码片
\begin{frame}[fragile]{代码环境2}
\begin{block}{Code}
\begin{minted}{python}
import numpy as np
def incmatrix(genl1,genl2):
m = len(genl1)
n = len(genl2)
M = None #to become the incidence matrix
VT = np.zeros((n*m,1), int) #dummy variable
#compute the bitwise xor matrix
M1 = bitxormatrix(genl1)
M2 = np.triu(bitxormatrix(genl2),1)
return M
\end{minted}
\end{block}
\end{frame}
代码解读
将代码片放置\block
环境中,可以为该环境起一个自己喜欢的标题,最后的效果也比较好看;
在\block
环境中,可不用用户自己定制,本身就很好看。
效果
代码片
\begin{frame}{One-line code}
One-line code \mintinline{python}{print(x**2)}
\mint{python}|import|
\end{frame}
代码解读
\mintinline{python}{...}
行内代码;
\mint{python}|...|
文本内的代码另起一行。