码迷,mamicode.com
首页 > 其他好文 > 详细

TeX技巧

时间:2019-09-11 11:55:31      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:more   put   soft   cts   inf   NPU   mon   Agile   hello   

1. \lstdefinestyle

参考 https://blog.csdn.net/ProgramChangesWorld/article/details/52142313

我们在使用listings的时候,需要设置语言和样式。用\lstset会设置全局的变量,如果我们文章中有多种代码,那么就需要\lstdefinestyle,设置多种样式,在使用的时候选择对应的样式。

% system=ubuntu
%soft=Tex Live2015
% complie=XeLaTeX
\documentclass[a4paper,UTF8]{article}
\usepackage{listings}
\usepackage{ctex}
\usepackage{color}
\definecolor{keywordcolor}{rgb}{0.8,0.1,0.5}
\definecolor{webgreen}{rgb}{0,.5,0}
\definecolor{bgcolor}{rgb}{0.92,0.92,0.92}

\lstdefinestyle{styleJ}{
    language=[AspectJ]Java,
    keywordstyle=\color{keywordcolor}\bfseries, 
    commentstyle=\color{blue} \textit, 
    showstringspaces=false,
    numbers=left,
    numberstyle=\small
}
\lstdefinestyle{styleP}{
    language=Python,
    numbers=right, 
    frame=single,
    numberstyle=\small ,
}
\begin{document}
\begin{lstlisting}[style=styleJ]
public int sum(int n){
    int sum = 0;
    for(int i=0;i<n;i++){  //开始的
        sum += i;         
    }
    return sum;
}
\end{lstlisting}

\begin{lstlisting}[style=styleP]
def fun():
    print(你好,世界) #我是注释
\end{lstlisting}

\end{document}

技术图片

 

 

可以看到使用lstdefinestyle定义了两个样式,styleJ和styleP,分别是java和python的样式,在使用lstlisting环境的时候调设置了这两个样式。

如果不想把代码放在.tex文件里,也可以把代码放在单独的文件,然后使用下面的命令即可:

\lstinputlisting[style=styleJ]{code.java}

 2. \listings样式

参考 https://tex.stackexchange.com/questions/68091/how-do-i-add-syntax-coloring-to-my-c-source-code-in-beamer

\documentclass{beamer}
 \setbeamercovered{transparent}
\usepackage{listings}

\begin{document}

% Using typewriter font: \ttfamily inside \lstset
\begin{frame}[fragile]
\frametitle{Inserting source code}
\lstset{language=C++,
                basicstyle=\ttfamily,
                keywordstyle=\color{blue}\ttfamily,
                stringstyle=\color{red}\ttfamily,
                commentstyle=\color{green}\ttfamily,
                morecomment=[l][\color{magenta}]{\#}
}
\begin{lstlisting}
    #include<stdio.h>
    #include<iostream>
    // A comment
    int main(void)
    {
    printf("Hello World\n");
    return 0;
    }
\end{lstlisting}
\end{frame}

\begin{frame}[fragile]
\frametitle{Inserting source code without setting typewriter}
\lstset{language=C++,
                keywordstyle=\color{blue},
                stringstyle=\color{red},
                commentstyle=\color{green},
                morecomment=[l][\color{magenta}]{\#}
}
\begin{lstlisting}
    #include<stdio.h>
    #include<iostream>
    // A comment
    int main(void)
    {
    printf("Hello World\n");
    return 0;
    }
\end{lstlisting}
\end{frame}
\end{document}

技术图片

 

 

 技术图片

 

 

 第一种使用了\ttfamily,这个是一种打印机字体。

参考 https://www.tug.org/pracjourn/2006-1/schmidt/schmidt.pdf

https://tug.org/FontCatalogue/typewriterfonts.html

 

\ttfamilyselects a monospaced (“typewriter”) font family

 

TeX技巧

标签:more   put   soft   cts   inf   NPU   mon   Agile   hello   

原文地址:https://www.cnblogs.com/studywithallofyou/p/11505083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!