LaTeX高亮整理Stata代码(时变空间权重矩阵)(整理版)

3 篇文章 1 订阅

最近打算用LaTeX整理一下之前的Stata代码,发现搜了一晚上教程怎么都不能高亮显示,找了一圈之后终于做出来了,现简单整理如下。

  1. 设置listings-stata.tex文件
    首先要新建一个.tex文件。主宏包依然是\usepackage{listings},但是由于这个宏包没有Stata语言的高亮设置,所以需要人为定义一个.tex文件,相当于一个自编函数,之后调用即可。listings-stata仅作文件名,可以根据自身喜好进行修改。listings-stata.tex文件内容如下,将下述代码复制粘贴至空.tex文件中即可。
\usepackage{listings}              % 导入代码宏包listings
\usepackage[dvipsnames]{xcolor}    % 导入颜色宏包xcolor
\usepackage{fontspec}              % 导入字体宏包fontspec

% 设置字体为Consolars
\setmonofont{Consolas}
% 定义新高亮语言Stata
\lstdefinelanguage{Stata}{
	morekeywords={var, mat},       % 定义var,mat等字段为关键词
	morecomment=[l]{//},           % 定义//之后的部分为注释
	morecomment=[s]{/*}{*/},       % 定义/*与*/之间的部分为注释
	morecomment=[f]{*},            % 定义*之后的部分为注释
	morestring=[s]{`}{'},          % 定义`与'之间的部分为字符串
	morestring=[s]{"}{"},          % 定义"与"之间的部分为字符串
	morestring=[s]{"`}{'"},        % 定义"`与'"之间的部分为字符串
	morestring=[s]{`"`}{'"'}       % 定义`"`与'"'之间的部分为字符串
}

\lstset{
	language=Stata,                % 设置代码语言为Stata
	basicstyle=\ttfamily,          % 设置字体字母族
	commentstyle=\color{gray},     % 设置注释颜色
	keywordstyle=\color{blue},     % 设置关键词颜色
	stringstyle=\color{BrickRed},  % 设置字符串颜色
	tabsize=6,
	frame=trBL,                    % 设置边框格式
	framesep=2em,                  % 设置边框与代码边距
	flexiblecolumns=true	       % 紧凑
}
  1. 进行排版
    接下来直接进行排版即可,注意排版环境为XeLaTeX。
% ! XeLaTeX
\documentclass{ctexart}          % 文档环境为ctexart
\usepackage{geometry}            % 导入页面设置宏包geometry
\geometry{left=2cm, top=1.5cm}   % 设置页边距参数
\input{listings-stata.tex}       % 导入前面设定好的listings-stata.tex文件
\begin{document}
\begin{lstlisting}
/* 时变空间权重矩阵 */
clear
// 设定日志文件
log using Data_plus.log, replace
// 加入因变量
foreach var in first_ind second_ind third_ind trade_all forinv_trade_all{
// 加入时变矩阵
foreach mat in peo gdp{
clear all
frame create `mat'
frame `mat': use `mat'.dta
// 导入数据
use Data_all.dta,clear
// 面板设定
xtset city year
// 1. 时变空间权重矩阵SAR模型
nwxtregress `var' creative coordination environmental open share, ///
            dvarlag(`mat', frame(`mat') id(year ID1 ID2) timesparse) seed(1234)
// 计算空间溢出效应
estat impact
// 2. 时变空间权重矩阵SDM模型
frame `mat': putmata `mat' = (year ID1 ID2 `mat'), replace
nwxtregress `var' creative coordination environmental open share, ///
            dvarlag(`mat', mata timesparse) ivarlag(`mat': creative coordination ///
			environmental open share, mata timesparse) seed(1234)
// 计算空间溢出效应
estat impact
}
}
log close
\end{lstlisting}
\end{document}
  1. 结果如下。
    在这里插入图片描述
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值