You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
4.4 KiB
172 lines
4.4 KiB
%%%% 设置listings宏包用来粘贴源代码
|
|
%% 方便粘贴源代码,部分代码高亮功能
|
|
\usepackage{listings}
|
|
\usepackage{color}
|
|
|
|
\DeclareCaptionFont{red}{\color{red}}
|
|
|
|
%% 所要粘贴代码的编程语言
|
|
\lstloadlanguages{{[LaTeX]TeX}, {[ISO]C++}, {Java}, {Ruby}, {Python}, {Scala}}
|
|
|
|
%% 设置listings宏包的一些全局样式
|
|
%% 参考http://hi.baidu.com/shawpinlee/blog/item/9ec431cbae28e41cbe09e6e4.html
|
|
\lstset{
|
|
numberbychapter=true,
|
|
breakatwhitespace=true,
|
|
showstringspaces=false, %% 设定是否显示代码之间的空格符号
|
|
basicstyle=\footnotesize\ttfamily, %% 设定字体大小\tiny, \scriptsize, \footnotesize, \small, \Large等等
|
|
keywordstyle=\bfseries,
|
|
commentstyle=\color{red!50!green!50!blue!50},
|
|
escapechar=`, %% 中文逃逸字符,用于中英混排
|
|
xleftmargin=1.5em,xrightmargin=0em, aboveskip=1em,
|
|
breaklines, %% 这条命令可以让LaTeX自动将长的代码行换行排版
|
|
extendedchars=false, %% 这一条命令可以解决代码跨页时,章节标题,页眉等汉字不显示的问题
|
|
frameround=fttt,
|
|
captionpos=top,
|
|
belowcaptionskip=1em
|
|
}
|
|
|
|
\lstdefinestyle{numbers}{
|
|
numbers=left,
|
|
numberstyle=\tiny,
|
|
stepnumber=1,
|
|
numbersep=1em
|
|
}
|
|
|
|
\lstdefinestyle{C++}{
|
|
language=C++,
|
|
texcl=true,
|
|
prebreak=\textbackslash,
|
|
breakindent=1em,
|
|
keywordstyle=\color{blue!70}, %% 关键字高亮
|
|
commentstyle=\color{red!50!blue!},
|
|
morekeywords={alignas, alignof, char16_t, char32_t, constexpr, decltype, noexcept, nullptr, static_assert, thread_local, override, OVERRIDE, INTERFACE, ABSTRACT, DEFINE_ROLE, ROLE, HAS_ROLE, USE_ROLE}
|
|
style=numbers,
|
|
%frame=leftline, %% 给代码加框
|
|
%framerule=2pt,
|
|
%rulesep=5pt
|
|
}
|
|
|
|
\lstnewenvironment{c++}[1][]
|
|
{\setstretch{1}
|
|
\lstset{style=C++, #1}}
|
|
{}
|
|
|
|
\definecolor{mygreen}{rgb}{0,0.6,0}
|
|
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
|
|
\definecolor{mymauve}{rgb}{0.58,0,0.82}
|
|
\lstdefinestyle{Lua} {
|
|
language={[5.3]Lua},
|
|
texcl=true,
|
|
prebreak=\textbackslash,
|
|
breakindent=1em,
|
|
upquote=true,
|
|
keywordstyle=\bfseries\color{blue},
|
|
stringstyle=\color{mymauve},
|
|
commentstyle=\color{mygray},
|
|
morekeywords={}
|
|
style=numbers,
|
|
}
|
|
|
|
\lstnewenvironment{lua}[1][]
|
|
{\setstretch{1}
|
|
\lstset{style=Lua, #1}}
|
|
{}
|
|
|
|
\lstdefinestyle{Bash} {
|
|
language=Bash,
|
|
texcl=true,
|
|
xleftmargin=2em,
|
|
breaklines=true,
|
|
prebreak=\textbackslash,
|
|
breakindent=1em,
|
|
keywordstyle=\footnotesize\ttfamily\color{blue},
|
|
commentstyle=\footnotesize\ttfamily\color{cyan!90},
|
|
morekeywords={}
|
|
style=numbers,
|
|
}
|
|
|
|
\lstnewenvironment{bash}[1][]
|
|
{\setstretch{1}
|
|
\lstset{style=Bash, #1}}
|
|
{}
|
|
|
|
%\captionsetup[lstlisting]{textfont=red}
|
|
%{labelfont=bf, singlelinecheck=off, labelsep=space, textfont=red}
|
|
|
|
\lstdefinestyle{Java}{
|
|
language=Java,
|
|
texcl=true,
|
|
prebreak=\textbackslash,
|
|
breakindent=1em,
|
|
keywordstyle=\bfseries\color{blue!70}, %% 关键字高亮
|
|
morekeywords={}
|
|
style=numbers,
|
|
%frame=leftline, %% 给代码加框
|
|
%framerule=2pt,
|
|
%rulesep=5pt
|
|
}
|
|
|
|
\lstnewenvironment{java}[1][]
|
|
{\setstretch{1}
|
|
\lstset{style=Java, #1}}
|
|
{}
|
|
|
|
\lstdefinestyle{Ruby}{
|
|
language=Java,
|
|
texcl=true,
|
|
prebreak=\textbackslash,
|
|
breakindent=1em,
|
|
keywordstyle=\bfseries, %% 关键字高亮
|
|
morekeywords={}
|
|
style=numbers,
|
|
%frame=leftline, %% 给代码加框
|
|
%framerule=2pt,
|
|
%rulesep=5pt
|
|
}
|
|
|
|
\lstnewenvironment{ruby}[1][]
|
|
{\setstretch{1}
|
|
\lstset{style=Ruby, #1}}
|
|
{}
|
|
|
|
\lstdefinestyle{Python}{
|
|
language=Python,
|
|
texcl=true,
|
|
prebreak=\textbackslash,
|
|
breakindent=1em,
|
|
keywordstyle=\bfseries, %% 关键字高亮
|
|
morekeywords={}
|
|
style=numbers,
|
|
%frame=leftline, %% 给代码加框
|
|
%framerule=2pt,
|
|
%rulesep=5pt
|
|
}
|
|
|
|
\lstnewenvironment{python}[1][]
|
|
{\setstretch{1}
|
|
\lstset{style=Python, #1}}
|
|
{}
|
|
|
|
\lstdefinestyle{Scala}{
|
|
language=Scala,
|
|
texcl=true,
|
|
prebreak=\textbackslash,
|
|
breakindent=1em,
|
|
keywordstyle=\bfseries, %% 关键字高亮
|
|
morekeywords={}
|
|
style=numbers,
|
|
%frame=leftline, %% 给代码加框
|
|
%framerule=2pt,
|
|
%rulesep=5pt
|
|
}
|
|
|
|
\lstnewenvironment{scala}[1][]
|
|
{\setstretch{1}
|
|
\lstset{style=Scala, #1}}
|
|
{}
|
|
|
|
\renewcommand{\lstlistingname}{示例代码}
|
|
\renewcommand\thefigure{\thechapter-\arabic{figure}}
|
|
|
|
\newcommand\refcode[1]{{\itshape \lstlistingname\ascii{\ref{code:#1}(第\pageref{code:#1}页)}}}
|
|
|