diff --git a/autoload/SpaceVim/layers/lang.vim b/autoload/SpaceVim/layers/lang/extra.vim
similarity index 56%
rename from autoload/SpaceVim/layers/lang.vim
rename to autoload/SpaceVim/layers/lang/extra.vim
index ebf10f402..d73355815 100644
--- a/autoload/SpaceVim/layers/lang.vim
+++ b/autoload/SpaceVim/layers/lang/extra.vim
@@ -1,27 +1,22 @@
 "=============================================================================
-" lang.vim --- SpaceVim lang layer
-" Copyright (c) 2016-2017 Wang Shidong & Contributors
-" Author: Wang Shidong < wsdjeg at 163.com >
-" URL: https://spacevim.org
-" License: GPLv3
-"=============================================================================
+ " extra.vim --- lang#extra layer for SpaceVim
+ " Copyright (c) 2016-2017 Wang Shidong & Contributors
+ " Author: Wang Shidong < wsdjeg at 163.com >
+ " URL: https://spacevim.org
+ " License: GPLv3
+ "=============================================================================
 
-function! SpaceVim#layers#lang#plugins() abort
+
+ function! SpaceVim#layers#lang#extra#plugins() abort
     let plugins = [
                 \ ['digitaltoad/vim-jade',                   { 'on_ft' : ['jade']}],
                 \ ['juvenn/mustache.vim',                    { 'on_ft' : ['mustache']}],
                 \ ['kchmck/vim-coffee-script',               { 'on_ft' : ['coffee']}],
-                \ ['elixir-lang/vim-elixir',                 { 'on_ft' : 'elixir'}],
                 \ ['PotatoesMaster/i3-vim-syntax',           { 'on_ft' : 'i3'}],
                 \ ['isundil/vim-irssi-syntax',               { 'on_ft' : 'irssi'}],
-                \ ['lervag/vimtex',                          { 'on_ft' : 'tex'}],
                 \ ['vimperator/vimperator.vim',              { 'on_ft' : 'vimperator'}],
-                \ ['voxpupuli/vim-puppet',                   {'on_ft' : 'puppet'}],
                 \ ['peterhoeg/vim-qml',                      { 'on_ft' : 'qml'}],
                 \ ['cespare/vim-toml',                      { 'on_ft' : 'toml'}],
                 \ ] 
     return plugins
-endfunction
-
-function! SpaceVim#layers#lang#config() abort
-endfunction
+ endfunction
diff --git a/autoload/SpaceVim/layers/lang/latex.vim b/autoload/SpaceVim/layers/lang/latex.vim
new file mode 100644
index 000000000..02d676725
--- /dev/null
+++ b/autoload/SpaceVim/layers/lang/latex.vim
@@ -0,0 +1,88 @@
+"=============================================================================
+" latex.vim --- lang#latex layer for SpaceVim
+" Copyright (c) 2016-2017 Wang Shidong & Contributors
+" Author: Wang Shidong < wsdjeg at 163.com >
+" URL: https://spacevim.org
+" License: GPLv3
+"=============================================================================
+
+
+function! SpaceVim#layers#lang#latex#plugins() abort
+  let plugins = []
+  call add(plugins, ['lervag/vimtex', {'merged' : 0}])
+  return plugins
+endfunction
+
+function! SpaceVim#layers#lang#latex#config() abort
+  let g:tex_flavor = 'latex'
+  call SpaceVim#mapping#space#regesit_lang_mappings('tex', function('s:language_specified_mappings'))
+endfunction
+
+function! s:language_specified_mappings() abort
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','i'],
+        \ '<plug>(vimtex-info)',
+        \ 'vimtex-info', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','I'],
+        \ '<plug>(vimtex-info-full)',
+        \ 'vimtex-info-full', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','t'],
+        \ '<plug>(vimtex-toc-open)',
+        \ 'vimtex-toc-open', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','T'],
+        \ '<plug>(vimtex-toc-toggle)',
+        \ 'vimtex-toc-toggle', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','y'],
+        \ '<plug>(vimtex-labels-open)',
+        \ 'vimtex-labels-open', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','Y'],
+        \ '<plug>(vimtex-labels-toggle)',
+        \ 'vimtex-labels-toggle', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','v'],
+        \ '<plug>(vimtex-view)',
+        \ 'vimtex-view', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','r'],
+        \ '<plug>(vimtex-reverse-search)',
+        \ 'vimtex-reverse-search', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','l'],
+        \ '<plug>(vimtex-compile)',
+        \ 'vimtex-compile', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','L'],
+        \ '<plug>(vimtex-compile-selected)',
+        \ 'vimtex-compile-selected', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','k'],
+        \ '<plug>(vimtex-stop)',
+        \ 'vimtex-stop', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','K'],
+        \ '<plug>(vimtex-stop-all)',
+        \ 'vimtex-stop-all', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','e'],
+        \ '<plug>(vimtex-errors)',
+        \ 'vimtex-errors', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','o'],
+        \ '<plug>(vimtex-compile-output)',
+        \ 'vimtex-compile-output', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','g'],
+        \ '<plug>(vimtex-status)',
+        \ 'vimtex-status', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','G'],
+        \ '<plug>(vimtex-status-all)',
+        \ 'vimtex-status-all', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','c'],
+        \ '<plug>(vimtex-clean)',
+        \ 'vimtex-clean', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','C'],
+        \ '<plug>(vimtex-clean-full)',
+        \ 'vimtex-clean-full', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','m'],
+        \ '<plug>(vimtex-imaps-list)',
+        \ 'vimtex-imaps-list', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','x'],
+        \ '<plug>(vimtex-reload)',
+        \ 'vimtex-reload', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','X'],
+        \ '<plug>(vimtex-reload-state)',
+        \ 'vimtex-reload-state', 0)
+  call SpaceVim#mapping#space#langSPC('nmap', ['l','s'],
+        \ '<plug>(vimtex-toggle-main)',
+        \ 'vimtex-toggle-main', 0)
+endfunction
diff --git a/docs/cn/layers/index.md b/docs/cn/layers/index.md
index 8c6895c27..d3574c9ae 100644
--- a/docs/cn/layers/index.md
+++ b/docs/cn/layers/index.md
@@ -78,6 +78,7 @@ Vim 插件以及相关配置。而 SpaceVim 是以模块的方式来组织和管
 | [lang#elixir](lang/elixir/)                           | 这一模块为 elixir 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                |
 | [lang#elm](lang/elm/)                                 | 这一模块为 elm 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                   |
 | [lang#erlang](lang/erlang/)                           | 这一模块为 erlang 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                |
+| [lang#extra](lang/extra/)                             | 该模块主要为一些不常见的语言添加语法支持,主要包括语法高亮、对齐等特性                                                                    |
 | [lang#fsharp](lang/fsharp/)                           | 这一模块为 fsharp 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                |
 | [lang#go](lang/go/)                                   | 这一模块为 go 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                    |
 | [lang#haskell](lang/haskell/)                         | 这一模块为 haskell 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                               |
@@ -85,6 +86,7 @@ Vim 插件以及相关配置。而 SpaceVim 是以模块的方式来组织和管
 | [lang#java](lang/java/)                               | 这一模块为 java 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                  |
 | [lang#javascript](lang/javascript/)                   | 这一模块为 javascript 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                            |
 | [lang#julia](lang/julia/)                             | 这一模块为 julia 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                 |
+| [lang#latex](lang/latex/)                             | 这一模块为 latex 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                 |
 | [lang#lisp](lang/lisp/)                               | 这一模块为 lisp 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                  |
 | [lang#lua](lang/lua/)                                 | 这一模块为 lua 开发提供支持,包括代码补全、语法检查、代码格式化等特性。                                                                   |
 | [lang#markdown](lang/markdown/)                       | 这一模块为 markdown 编辑提供支持,包括格式化、自动生成文章目录、代码块等特性。                                                            |
diff --git a/docs/cn/layers/lang/extra.md b/docs/cn/layers/lang/extra.md
new file mode 100644
index 000000000..710a4b11d
--- /dev/null
+++ b/docs/cn/layers/lang/extra.md
@@ -0,0 +1,41 @@
+---
+title: "SpaceVim lang#extra 模块"
+description: "该模块主要为一些不常见的语言添加语法支持,主要包括语法高亮、对齐等特性"
+lang: cn
+---
+
+# [Available Layers](../../) >> lang#extra
+
+<!-- vim-markdown-toc GFM -->
+
+- [模块简介](#模块简介)
+- [包含的语言](#包含的语言)
+- [启用模块](#启用模块)
+
+<!-- vim-markdown-toc -->
+
+## 模块简介
+
+该模块主要为 SpaceVim 添加一些额外的语言支持,仅仅包括简单的语法高亮及对齐等功能。
+
+## 包含的语言
+
+| 语言                | 特性                         |
+| ------------------- | ---------------------------- |
+| i3 config           | 语法高亮                     |
+| qml                 | 语法高亮                     |
+| toml                | 语法高亮                     |
+| coffee script       | 语法高亮                     |
+| irssi config        | 语法高亮                     |
+| vimperator config   | 语法高亮                     |
+| Pug (formerly Jade) | 语法高亮, 代码对齐           |
+| mustache            | 语法高亮, 括号跳转, 文本对象 |
+
+## 启用模块
+
+可通过在配置文件内加入如下配置来启用该模块:
+
+```toml
+[[layers]]
+  name = "lang#extra"
+```
diff --git a/docs/cn/layers/lang/latex.md b/docs/cn/layers/lang/latex.md
new file mode 100644
index 000000000..cf658680f
--- /dev/null
+++ b/docs/cn/layers/lang/latex.md
@@ -0,0 +1,66 @@
+---
+title: "SpaceVim lang#latex 模块"
+description: "这一模块为 latex 开发提供支持,包括代码补全、语法检查、代码格式化等特性。"
+lang: cn
+---
+
+# [可用模块](../../) >> lang#latex
+
+<!-- vim-markdown-toc GFM -->
+
+- [模块简介](#模块简介)
+- [功能特性](#功能特性)
+- [启用模块](#启用模块)
+- [快捷键](#快捷键)
+
+<!-- vim-markdown-toc -->
+
+## 模块简介
+
+这一模块为 SpaceVim 提供了 latex 开发支持,包括代码补全、语法检查、以及代码格式化等特性。
+
+主要包含插件:
+
+- [vimtex](https://github.com/lervag/vimtex)
+
+## 功能特性
+
+- 代码补全
+- 语法高亮
+- 文档查询
+
+## 启用模块
+
+可通过在配置文件内加入如下配置来启用该模块:
+
+```toml
+[[layers]]
+  name = "lang#latex"
+```
+
+## 快捷键
+
+| 按键      | 描述                    |
+| --------- | ----------------------- |
+| `SPC l i` | vimtex-info             |
+| `SPC l I` | vimtex-info-full        |
+| `SPC l t` | vimtex-toc-open         |
+| `SPC l T` | vimtex-toc-toggle       |
+| `SPC l y` | vimtex-labels-open      |
+| `SPC l Y` | vimtex-labels-toggle    |
+| `SPC l v` | vimtex-view             |
+| `SPC l r` | vimtex-reverse-search   |
+| `SPC l l` | vimtex-compile          |
+| `SPC l L` | vimtex-compile-selected |
+| `SPC l k` | vimtex-stop             |
+| `SPC l K` | vimtex-stop-all         |
+| `SPC l e` | vimtex-errors           |
+| `SPC l o` | vimtex-compile-output   |
+| `SPC l g` | vimtex-status           |
+| `SPC l G` | vimtex-status-all       |
+| `SPC l c` | vimtex-clean            |
+| `SPC l C` | vimtex-clean-full       |
+| `SPC l m` | vimtex-imaps-list       |
+| `SPC l x` | vimtex-reload           |
+| `SPC l X` | vimtex-reload-state     |
+| `SPC l s` | vimtex-toggle-main      |
diff --git a/docs/cn/layers/tools.md b/docs/cn/layers/tools.md
index 8efb4919b..99eb00729 100644
--- a/docs/cn/layers/tools.md
+++ b/docs/cn/layers/tools.md
@@ -1,6 +1,7 @@
 ---
 title: "SpaceVim tools 模块"
 description: "集成多种常用工具,包括日历、计算器、等等多种工具类插件,该模块针对 vim8 以及 neovim 提供了更好的插件选择。"
+lang: cn
 ---
 
 # [可用模块](../) >> tools
diff --git a/docs/layers/index.md b/docs/layers/index.md
index 5dc2dfc77..aae1e1f6e 100644
--- a/docs/layers/index.md
+++ b/docs/layers/index.md
@@ -77,6 +77,7 @@ enable = false
 | [lang#elixir](lang/elixir/)           | This layer is for elixir development, provide autocompletion, syntax checking, code format for elixir file.                                                         |
 | [lang#elm](lang/elm/)                 | This layer is for elm development, provide autocompletion, syntax checking, code format for elm file.                                                               |
 | [lang#erlang](lang/erlang/)           | This layer is for erlang development, provide autocompletion, syntax checking, code format for erlang file.                                                         |
+| [lang#extra](lang/extra/)             | This layer adds extra language support to SpaceVim                                                                                                                  |
 | [lang#fsharp](lang/fsharp/)           | This layer adds fsharp language support to SpaceVim                                                                                                                 |
 | [lang#go](lang/go/)                   | This layer is for golang development. It also provides additional language-specific key mappings.                                                                   |
 | [lang#haskell](lang/haskell/)         | haskell language support for SpaceVim, includes code completion, syntax checking, jumping to definition, also provides language server protocol support for haskell |
@@ -85,6 +86,7 @@ enable = false
 | [lang#javascript](lang/javascript/)   | This layer is for JaveScript development                                                                                                                            |
 | [lang#julia](lang/julia/)             | This layer is for julia development, provide autocompletion, syntax checking and code formatting                                                                    |
 | [lang#kotlin](lang/kotlin/)           | This layer adds kotlin language support to SpaceVim                                                                                                                 |
+| [lang#latex](lang/latex/)             | This layer provides support for writing LaTeX documents, including syntax highlighting, code completion, formatting etc.                                            |
 | [lang#lisp](lang/lisp/)               | This layer is for lisp development, provide autocompletion, syntax checking, code format for lisp file.                                                             |
 | [lang#lua](lang/lua/)                 | This layer is for lua development, provide autocompletion, syntax checking, code format for lua file.                                                               |
 | [lang#markdown](lang/markdown/)       | Edit markdown within vim, autopreview markdown in the default browser, with this layer you can also format markdown file.                                           |
diff --git a/docs/layers/lang/extra.md b/docs/layers/lang/extra.md
new file mode 100644
index 000000000..b604db3f5
--- /dev/null
+++ b/docs/layers/lang/extra.md
@@ -0,0 +1,40 @@
+---
+title: "SpaceVim lang#extra layer"
+description: "This layer adds extra language support to SpaceVim"
+---
+
+# [Available Layers](../../) >> lang#extra
+
+<!-- vim-markdown-toc GFM -->
+
+- [Description](#description)
+- [Included languages](#included-languages)
+- [Install](#install)
+
+<!-- vim-markdown-toc -->
+
+## Description
+
+This layer adds many extra language support for less common languages to SpaceVim.
+
+## Included languages
+
+| language            | features                                                |
+| ------------------- | ------------------------------------------------------- |
+| i3 config           | syntax highlighting                                     |
+| qml                 | syntax highlighting                                     |
+| toml                | syntax highlighting                                     |
+| coffee script       | syntax highlighting                                     |
+| irssi config        | syntax highlighting                                     |
+| vimperator config   | syntax highlighting                                     |
+| Pug (formerly Jade) | syntax highlighting, indent                             |
+| mustache            | syntax highlighting, matchit, section movement mappings |
+
+## Install
+
+To use this configuration layer, update custom configuration file with:
+
+```toml
+[[layers]]
+  name = "lang#extra"
+```
diff --git a/docs/layers/lang/latex.md b/docs/layers/lang/latex.md
new file mode 100644
index 000000000..1881f45c3
--- /dev/null
+++ b/docs/layers/lang/latex.md
@@ -0,0 +1,61 @@
+---
+title: "SpaceVim lang#latex layer"
+description: "This layer provides support for writing LaTeX documents, including syntax highlighting, code completion, formatting etc."
+---
+
+# [Available Layers](../../) >> lang#latex
+
+<!-- vim-markdown-toc GFM -->
+
+- [Description](#description)
+- [Features](#features)
+- [Install](#install)
+- [Key bindings](#key-bindings)
+
+<!-- vim-markdown-toc -->
+
+## Description
+
+This layer is for latex development. [vimtex](https://github.com/lervag/vimtex) is incuded in this layer.
+
+## Features
+
+- Code completion
+- Syntax highlighting
+- Syntax lint
+
+## Install
+
+To use this configuration layer, update custom configuration file with:
+
+```toml
+[[layers]]
+  name = "lang#latex"
+```
+
+## Key bindings
+
+| Key binding | Description             |
+| ----------- | ----------------------- |
+| `SPC l i`   | vimtex-info             |
+| `SPC l I`   | vimtex-info-full        |
+| `SPC l t`   | vimtex-toc-open         |
+| `SPC l T`   | vimtex-toc-toggle       |
+| `SPC l y`   | vimtex-labels-open      |
+| `SPC l Y`   | vimtex-labels-toggle    |
+| `SPC l v`   | vimtex-view             |
+| `SPC l r`   | vimtex-reverse-search   |
+| `SPC l l`   | vimtex-compile          |
+| `SPC l L`   | vimtex-compile-selected |
+| `SPC l k`   | vimtex-stop             |
+| `SPC l K`   | vimtex-stop-all         |
+| `SPC l e`   | vimtex-errors           |
+| `SPC l o`   | vimtex-compile-output   |
+| `SPC l g`   | vimtex-status           |
+| `SPC l G`   | vimtex-status-all       |
+| `SPC l c`   | vimtex-clean            |
+| `SPC l C`   | vimtex-clean-full       |
+| `SPC l m`   | vimtex-imaps-list       |
+| `SPC l x`   | vimtex-reload           |
+| `SPC l X`   | vimtex-reload-state     |
+| `SPC l s`   | vimtex-toggle-main      |
diff --git a/wiki/en/Following-HEAD.md b/wiki/en/Following-HEAD.md
index aa9ddc940..3dc6b1417 100644
--- a/wiki/en/Following-HEAD.md
+++ b/wiki/en/Following-HEAD.md
@@ -29,6 +29,7 @@ The next release is v0.9.0.
 - Add `lang#fsharp` layer ([#2081](https://github.com/SpaceVim/SpaceVim/pull/2081))
 - Add `lang#plantuml` layer ([#2085](https://github.com/SpaceVim/SpaceVim/pull/2085))
 - Add `lang#elm` layer, improve REPL highlight ([#2088](https://github.com/SpaceVim/SpaceVim/pull/2088))
+- Add `lang#latex` and `lang#extra` layer ([#2133](https://github.com/SpaceVim/SpaceVim/pull/2133))
 
 ### Improvement