前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TeX中的代码高亮环境

TeX中的代码高亮环境

作者头像
EltonZheng
发布2021-01-26 10:26:12
7830
发布2021-01-26 10:26:12
举报
文章被收录于专栏:Elton的技术分享博客

\LaTeX 之中,我们可以直接使用\texttt{blabla}调出打字机字体。就现在的应用来讲,打字机字体用在代码类文本的排版比较多。在这背后,我们实际上调用的可能是cmtt12/cmtt10/cmtt9/cmtt8/cmsltt10等字体。如果使用的是XeLaTeX或者LuaLaTeX,那么我们可能是Latin Modern之中的等效字体,也就是说字形相似,但是是另外的字体了。如果我们不太老顽固的话,实际上可以选用一些OpenType格式的打字机字体来丰富一下我们文档的观感。比如最近几年O’Reilly的书中展示代码的字体已经转为Ubuntu Mono了(非Linux环境可从Ubuntu Font Family处下载)。有时候用Consolas也还行。

当然,这都不是重点。重点是代码高亮环境的内容。这是一部分带彩色的内容,受限于现有LaTeX书的印刷环境,在现有的书中讲的都很少。 这部分内容也都很简单了,比如可以看minted vs. texments vs. verbments。我这里只讲一些最基本的例子。

安装pygments

首先我们需要使用python,并安装pygments:

代码语言:javascript
复制
pip install pygments

实例

之后我们准备一个简单的例子,比如(demo.tex):

代码语言:javascript
复制
\documentclass[a4paper]{article}
\usepackage{minted}
\usepackage{xcolor}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
\usepackage[margin=2.5cm]{geometry}
\begin{document}

\begin{minted}[bgcolor=bg]{rust}
fn foo(v1: Vec<i32>, v2: Vec<i32>) -> (Vec<i32>, Vec<i32>, i32) {
    // Do stuff with `v1` and `v2`.
    // Hand back ownership, and the result of our function.
    (v1, v2, 42)
}

let v1 = vec![1, 2, 3];
let v2 = vec![1, 2, 3];

let (v1, v2, answer) = foo(v1, v2);
\end{minted}

\begin{minted}[bgcolor=bg]{go}
import "math"

type Shape interface {
    Area() float64
}

type Square struct { // Note: no "implements" declaration
    side float64
}

func (sq Square) Area() float64 { return sq.side * sq.side }

type Circle struct { // No "implements" declaration here either
    radius float64
}

func (c Circle) Area() float64 { return math.Pi * math.Pow(c.radius, 2) }
\end{minted}

\end{document}

编译

然后,注意,一定要带-shell-escape参数:

代码语言:javascript
复制
xelatex -shell-escape demo.tex

或者

代码语言:javascript
复制
lualatex -shell-escape demo.tex

然后就出现了结果:

文档

更多内容,请参阅文档:

代码语言:javascript
复制
texdoc minted

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装pygments
  • 实例
  • 编译
  • 文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档