精华内容
下载资源
问答
  • 2021-05-10 18:00:29

    写在前面

    本文提供了一种在Win10上配置vim+latex环境的选择。

    使用Windows Terminal作为终端运行Vim时,SumatraPDF的反向搜索总是会弹出新终端,或者弹出后立即关闭并且焦点仍然留在SumatraPDF窗口。我通过修改其中用到的几条命令从某种程度上解决了这个问题。

    如果对WT、vim的安装和配置比较熟悉可以直接查看第5节反向搜索。


    效果演示

    1. Windows Terminal安装与配置

    可以直接从Win10商店安装Windows Terminal。

    Windows Terminal提供了对Powershell、CMD、WSL等命令行工具和shell的封装,可以通过一份json文件对其配色方案、背景图片、字体字号、默认终端等进行配置。
    具体方法可以参考微软官方提供的文档Windows Terminal安装与配置

    2. Windows环境下安装Vim

    可以直接从Vim官网的下载页下载windows版本的Vim安装包并按照指引进行安装。

    Win10环境下Vim的默认配置文件在$HOME\_vimrc路径。在上一步安装好的WT中输入

    vim $HOME\_vimrc
    

    PowerShell会自动识别$HOME变量并展开。Vim的配置方法与Linux环境下一致。

    也可以在Vim中使用:version命令查看Vim的相关路径,并用:echo $HOME或者:echo $VIM查看变量代表的绝对路径。

    3. Vim插件与vimtex

    可以使用vim-plug等插件对vim插件进行管理。vim-plug的Github页面提供了Win10环境下的安装和配置方法。

    Vim8之后,Vim也内置了一个方便的插件管理器:
    只需要将各个插件文件夹放在 $HOME\vimfiles\pack\XXX\start\路径下即可。其中XXX可以是用户自己选择的名称,用于对各式各样的插件做分类。(当然也可以都放一块
    具体可以参考:vim8原生内置(naive)插件安装

    用上述方法安装插件vimtex

    4. SumatraPDF以及正向搜索配置

    下载并安装SumatraPDF并设置环境变量。

    在Vim中使用:h vimtex_viewer_sumatrapdf命令查看vimtex的帮助文档的SumatraPDF一节,介绍了如何配置SumatraPDF作为vimlatex的pdf预览器。
    简单来说就是将下列代码放入_vimrc文件:

    let g:vimtex_view_general_viewer = 'SumatraPDF'
    let g:vimtex_view_general_options
        \ = '-reuse-instance -forward-search @tex @line @pdf'
    let g:vimtex_view_general_options_latexmk = '-reuse-instance'
    

    此时正向搜索应该已经配置完毕。当用Vim打开.tex文件后,使用<leader>ll进行编译和预览。<leader>lv可以跳转到.tex文件当前行对应的pdf部分。

    5. 反向搜索

    vimtex作者提供的反向搜索配置方法在我的环境下不起作用。

    为了实现从PDF预览器到Vim的反向搜索,需要vim拥有+clientserver特性(应该都有,可以通过:version查看)。Windows环境下的Vim在运行时会自动启动一个Vim服务器。可以通过在_vimrc文件中设置、或者启动项--servername XXX来保证服务器运行。

    SumatraPDF的反向搜索原理是,双击pdf后执行某段PowerShell命令。这段命令可以在SumatraPDF的设置->选项->设置反向搜索命令行中进行设置。

    具体设置
    可以将SumatraPDF执行的这段命令设置为wt -w 0 vim --servername VIMTEX --remote-silent +%l %f
    其中wt指Windows Terminal,需要配置环境变量保证PowerShell能找到路径。-w指定运行该命令的终端窗口,0表示当前窗口。这样双击PDF后才不会弹出新终端。

    --servername为Vim指定这条命令发送到的服务器,我这里指定的服务器时VIMTEX。并且在每次使用vim写Tex文件时,都用vim --servername VIMTEX的方式显式地指定同一个服务器名。如果服务器名称不匹配,双击后也会弹出新终端。

    我没有想到可以自动获取对应服务器名的好方法。
    vimtex作者的方法是在_vimrc中对g:vimtex_view_general_options选项进行进一步配置,在vim脚本中可以通过v:servername这个变量直接获取对应的服务器名。但是或许是因为Windows Terminal的原因,这个配置g:vimtex_view_general_options的方法在我的系统没有效果。

    vimtex项目的一个issue里似乎有人编写了一个python脚本执行上述操作,并让SumatraPDF调用该脚本。不过这个方法有些过于繁琐了。

    我这里直接指定服务器名为VIMTEX,相对比较简单地解决了这个问题。

    可以在PowerShell中编辑$PROFILE文件,为vim --servername VIMTEX设置别名:

    function vimt([string]$path)
    {
        vim "$path" --servername VIMTEX
    }
    

    之后就可以用vimt [+ 文件/文件夹]命令编辑LaTeX,享受丝滑的前后向搜索体验了。

    简单总结

    在运行vim时直接指定服务器名,并在SumatraPDF的反向搜索设置中使用这个名称,解决了服务器名不匹配导致弹出新终端窗口的问题。

    但总的来说并不是这个问题最根本的解决方法。我很好奇有没有能够直接在PowerShell命令中获取对应VIM服务器名称的方法。

    更多相关内容
  • Vimtex vimtex是适用于LaTeX文件的现代和文件类型和语法插件。 目录 要求 vimtex要求Vim版本8.0.1453或neovim版本0.4.3。 vimtex 1.0发行后,要求于2020年7月更新。 如果您坚持使用较旧的Vim或neovim,则不应使用...
  • coc-vimtex Tex完成源使用 。 安装 在您的vim / neovim中,运行命令: :CocInstall coc-vimtex 或将此插件的文件夹添加到vim的运行时路径。 选件 coc.source.vimtex.disableSyntaxes禁用的语法名称。 coc.source....
  • vimtex 一个用于编辑LaTeX文件的现代vim插件
  • vimtex_latexmk_option='pdf -pdflatex="xelatex -synctex=1 \%S \%O" -verbose -file-line-error -interaction=nonstopmode' 28 "阅读器配置 包含正反查找功能 29 "let g:vimtex_view_method='sumatra' 30 let g:...

    先说一个前提条件:git自带的vim安装在<git_install_dir>Git/usr/share/vim/ 文件夹内,而vimrc文件在<git_install_dir>Git/etc/文件夹内

    关于git bash 中的vim与 windows下的vim 几点区别:

        1、git bash中的vim 无法在 cmd中运行。在git bash中调用的vim是安装git时的vim ,git bash 无法调用windows下的vim。

        2、git bash 命令与 cmd 不同 与powershell几乎相同

    几个必要工具链接::

    Vim插件管理vim-plughttps://github.com/junegunn/vim-plug

    Vim上的LaTeX插件vimtexhttps://github.com/lervag/vimtex

    管理Vim片段工具ultisnipshttps://github.com/SirVer/ultisnips

    自动补全工具 YouCompleteMe https://github.com/Valloric/YouCompleteMe

    窗口平铺管理器bspwmhttps://github.com/baskerville/bspwm

    pdf阅读软件SumatraPDFhttps://www.sumatrapdfreader.org/download-free-pdf-viewer.html

    语法检查syntastic:  https://github.com/vim-syntastic/syntastic

    单词自动补全 neocomplcache:  https://github.com/Shougo/neocomplcache.vim

    latex和pdf联动 vim-latex-live-preview  :https://github.com/xuhdev/vim-latex-live-preview

     

    vim的设置一般放在/etc/vimrc文件中(windows10在<vin_install_dir>/vim/_vimrc文件中),不过,建议不要修改它。可以修改~/.vimrc文件(windows10  ~/_vimrc文件)(默认不存在,可以自己新建一个),写入所希望的设置。

     

    vim-plug是Vim插件管理器,其只有一个VimL文件plug.vim,只需要将其下载到~/.vim/autoload目录下即可,

    在window  gitbash环境下将plug.vim复制到<git_install_dir>Git/usr/share/vim/vim82/autoload/文件夹内

    (如果是windos 下vim,将其复制在<vin_install_dir>/vim/vim82/autoload/文件夹内)

    如果网络不好连不上git 可以提前将对应的宏包在其他地方下载下来,然后按照下面方法之一:

    • Extract the file and put files in your Vim directory (usually ~/.vim/ or Program Files/Vim/vimfiles on Windows).
    • 先运行一遍PlugInstall,当\vim82\plugged\文件夹内出现对应的宏包文件夹后,将对应的宏包解压到对应的plugged文件夹内。plugged文件夹是在_vimrc文件内定义的,见下面的代码段第一行

    在_vimrc文件中写入以下内容:

    call plug#begin('C:\Program Files (x86)\Vim\vim82\plugged')                                                               
      Plug 'lervag/vimtex'                                                                                                    
      Plug 'xuhdev/vim-latex-live-preview',{'for':'tex'}
    call plug#end()

    按ESC 进入vim命令模式,在vim 命令模式中输入 :PlugStatus 可以看到会弹出一个窗口, 这个窗口显示插件还未安装(下图是已经安装成功的状态)

    输入 :PlugInstall 安装,结束后显示安装结束

    基本配置结束后再次增加功能 此处参考https://castel.dev/post/lecture-notes-1/

     6   call plug#begin('C:\Program Files (x86)\Vim\vim82\plugged')   
     7   Plug 'lervag/vimtex'
     8   let g:vimtex_latexmk_option='pdf -pdflatex="xelatex -synctex=1 \%S \%O" -verbose -file-line-error -interaction=nonstopmode'
     9   let g:tex_flaver='latex' 
    10   let g:vimtex_view_method='sumatra' 
    11   let g:vimtex_quickfix_mode=0  
    12   set conceallevel=1 
    13   let g:tex_conceal='abdmg' 
    14   Plug 'xuhdev/vim-latex-live-preview',{'for':'tex'} 
    15 call plug#end()    

     vimtex 还可以这么设置 来源:https://zhuanlan.zhihu.com/p/150967557

    " use vimtex as default compiler
    let g:vimtex_compiler_latexmk_engines={'_':'-xelatex'}
    let g:vimtex_compiler_latexrun_engines={'_':'xelatex'}

    第8行设置latex的编译器为xelatex以支持中文

    第10行 设置pdf阅读器为SumatraPDF:https://www.sumatrapdfreader.org/free-pdf-reader.html

    最后两行 set conceallevel=1与 let  g:tex_conceal='abdmg',设置隐藏。隐藏功能可以 实现非光标所在行的LaTex代码 隐藏或被其他的字符代替。通过隐藏\[,\],$,可以更好的概览文档。这个功能也将\bigcap 替换为∩,\in替换为∈,等等,下图来自大牛的示例

    关于vim显示中文乱码问题: 详细解释可以看这篇文章https://www.cnblogs.com/freewater/archive/2011/08/26/2154602.html

    在_vimrc 文件中加入以下命令

    1 set nu  
    2 set encoding=utf-8  
    3 set fileencodings=usc-bos,utf-8,cp936 
    4 set fileencoding=gb2312
    5 set termencoding=utf-8   

     

    这是参考https://blog.csdn.net/Null_0_lluN/article/details/108456462这篇文章更新的_vimrc 文件

    1 set nu  
    2 set encoding=utf-8  
    3 set fileencodings=usc-bos,utf-8,cp936  
    4 set fileencoding=gb2312 
    5 set termencoding=utf-8     
    6 call plug#begin('C:\Program Files (x86)\Vim\vim82\plugged')   
    7   Plug 'lervag/vimtex'  
    8   let g:tex_flaver='latex'  
    9   let g:vimtex_texcount_custom_arg='-ch -total'     
    10   "映射VimtexCountWords! 使\lw命令可统计中英文字符的个数  
    11   au FileType tex map <buffer> <silent> <leader>lw :VimtexCountWords! <CR><CR>  
    12   let g:Tex_ViewRule_pdf = 'D:\SumatraPDF\sumatra.exe' 
    13   "下面对LaTex的编译引擎进行设置,默认的编译方式为-xelatex     
    14   "“vimtex提供了magic comments 来为文件设置编译方式 
    15   "i.e.在tex文件开头输入 % !TEX program =xelatex    
    16   "即指定xelatex编译器编译文件         
    17   let g:vimtex_compiler_latexmk_engines = {    
    18                           \'_'                  : '-xelatex',    
    19                           \'pdflatex'           : '-pdf',          
    20                           \'dvipdfex'           : '-pdfdvi',  
    21                           \'lualatex'           : '-lualatex',    
    22                           \'xelatex'            : '-xelatex',   
    23                           \'context (pdftex)'   : '-pdf -pdflatex=texexec',  
    24                           \'context (luatex)'   : '-pdf -pdflatex=context',  
    25                           \'context (xetex)'    : '-pdf -pdflatex=''texexec --xtx''', 
    26                           \}         
    27   let g:vimtex_latexmk_option='pdf -pdflatex="xelatex -synctex=1 \%S \%O" -verbose -file-line-error -interaction=nonstopmode'            
    28   "阅读器配置 包含正反查找功能         
    29   "let g:vimtex_view_method='sumatra'   
    30   let g:vimtex_view_general_viewer = 'D:\SumatraPDF\SumatraPDF.exe'  
    31   let g:vimtex_view_general_options_latexmk = '-reuse-instance'  
    32   let g:vimtex_quickfix_mode=0       
    33   "set conceallevel=1    
    34   "let g:tex_conceal='abdmg'   
    35   "Plug 'xuhdev/vim-latex-live-preview',{'for':'tex'}  
    36 call plug#end()  
    ~                         

    添加UltiSnips,下面代码从UltiSnips官网获得

     40   Plug 'SirVer/ultisnips'
    41   Plug 'honza/vim-snippets'  
    42   let g:UltiSnipsExpandTrigger="<tab>"   
    43   let g:UltiSnipsJumpForwardTrigger="<c-b>"   
    44   let g:UltiSnipsJumpBackwardTrigger="<c-z>"      
    45                                                     
    46   " If you want :UltiSnipsEdit to split your window.     
    47   let g:UltiSnipsEditSplit="vertical" 

    :so %重新加载一下, 然后用:PlugInstall命令安装插件. 重启vim

    添加syntastic

    set statusline+=%#warningmsg#
    set statusline+=%{SyntasticStatuslineFlag()}
    set statusline+=%*
    
    let g:syntastic_always_populate_loc_list = 1
    let g:syntastic_auto_loc_list = 1
    let g:syntastic_check_on_open = 1
    let g:syntastic_check_on_wq = 0

    添加vim-latex-live-preview

    未完待续 

    使用git时偶尔会用到一点vim,但看了这篇文章后https://castel.dev/post/lecture-notes-1/,就十分想系统的学习一下vim,同时最近也在学习LaTex,因此入坑vim+vimtex,从入坑到现在已经四天了 这几天大部分精力都用来学习一些vim的操作以及如何配置vim,边学习边记录(vim 笔记:https://blog.csdn.net/guchaono1/article/details/114658232)。目前的配置已经足以让我继续后续工作,因此这个配置暂时就做到这里了, 以后如果有需要再继续更新

    2021.3.12

     

    手动分割,添加一些方便使用的功能------------------------------------------------------------------------------------------------------------------------------------

    nerdtree  vim下的文件管理工具:https://github.com/preservim/nerdtree

    参考:https://blog.csdn.net/zghforever/article/details/107546026

    vim-airline      :    https://github.com/vim-airline/vim-airline      https://github.com/vim-airline/vim-airline-themes

     

    展开全文
  • VimTeX+Vim:带你愉快地编辑LaTeX文件

    千次阅读 2020-09-07 21:17:14
    本文介绍Vim 配置VimTeX写LaTeX文档的技巧, 基础操作与高阶配置以及一些相关的操作。

    • 笔者采用的环境为Windows 10+gvim+TeXLive2020
    • 本文主要参考vimtex的使用说明vimtex.txt
    • 在此,向vimtex的开发者@lervag致以谢意,感谢他开发维护了如此amazing的插件

    预览
    更新日志:

    • 2022/04/13: 采用VimtexInverseSearch进行反向搜索

    1. 什么是vimtex1

    • vimtex是一款现代化的vim/gvim编辑器插件,方便LaTeX用户在vim编辑器下编辑,编译LaTeX文件,生成pdf文件。
    • 特性
      • 它最大的特点就是增加了vim/gvim对LaTeX文件的编译支持(一定程度上也简化了一些编译操作),使得我们不需要用命令行来编译tex源文件
      • 提供了一系列LaTeX文件的编译方式(latexrun,latexmk 等 )的支持,内置了一些快捷键映射,当然也可以自行配置编译方式
      • 支持tex语法高亮, 提供pdf阅读器的接口(如可以调用sumatra pdf阅读器预览生成的latex文件)。
      • 支持pdf文件的反向搜索(反向搜索源代码),精确到行
      • 支持部分文件编译:选中某个tex文件的完整片段,只编译选中的代码片段,方便用户调试latex code
      • 统计tex文件中中西文字符的个数(其实是调用了TeXlive发行版中已经打包好的texcount脚本)
      • 支持在每个section之中快速跳转
      • 一些有用的映射,如tsf 将光标处分式在横排分式和竖排分式之间切换;cse改变光标周围的环境名称;]]自动补全右括号或环境名…(这个可以帮助我们完成括号匹配)

    2. 安装

    如果您采用vim-plug管理vim插件,直接在.vimrc文件中添加

    Plug 'lervag/vimtex'
    

    然后normal模式下运行:PlugInstall即可安装成功

    3. 开始你的配置

    • 我采用的是latexmk管理我的tex文件编译+Sumatra PDF预览pdf编译结果

    • 在此贴上我的vimrc配置文件23
      Note:(E:\Latex\SumatraPDF\SumatraPDF.exe 需要根据你的sumatra安装路径进行更改)

    自VimTeX-commit f9fd179/tag v2.8 之后,增加了:VimtexInverseSearch支持反向搜索

    VimTeX now works even better with inverse search from viewers:

    • I’ve added :VimtexInverseSearch that can be used by the viewer specific configuration to communicate with VimTeX in a “server agnostic” manner. See :help vimtex-synctex-inverse-search for more info.
    • The documentation on configuration of inverse search with viewers has been rewritten.
    "LaTeX配置
    let g:tex_flavor='latex'
    let g:vimtex_texcount_custom_arg=' -ch -total'
    "映射VimtexCountWords!\lw 在命令模式下enter此命令可统计中英文字符的个数
    au FileType tex map <buffer> <silent>  <leader>lw :VimtexCountWords!  <CR><CR>
    let g:Tex_ViewRule_pdf = 'E:\Latex\SumatraPDF\SumatraPDF.exe -reuse-instance -inverse-search "gvim -c \":RemoteOpen +\%l \%f\""'
    
    "这里是LaTeX编译引擎的设置,这里默认LaTeX编译方式为-pdf(pdfLaTeX),
    "vimtex提供了magic comments来为文件设置编译方式
    "例如,我在tex文件开头输入 % !TEX program = xelatex   即指定-xelatex (xelatex)编译文件
    let g:vimtex_compiler_latexmk_engines = {
        \ '_'                : '-pdf',
        \ 'pdflatex'         : '-pdf',
        \ 'dvipdfex'         : '-pdfdvi',
        \ 'lualatex'         : '-lualatex',
        \ 'xelatex'          : '-xelatex',
        \ 'context (pdftex)' : '-pdf -pdflatex=texexec',
        \ 'context (luatex)' : '-pdf -pdflatex=context',
        \ 'context (xetex)'  : '-pdf -pdflatex=''texexec --xtx''',
        \}
    "这里是设置latexmk工具的可选参数
    let g:vimtex_compiler_latexmk = {
        \ 'build_dir' : '',
        \ 'callback' : 1,
        \ 'continuous' : 1,
        \ 'executable' : 'latexmk',
        \ 'hooks' : [],
        \ 'options' : [
        \   '-verbose',
        \   '-file-line-error',
        \   '-shell-escape',
        \   '-synctex=1',
        \   '-interaction=nonstopmode',
        \ ],
        \}
    
    " 阅读器相关的配置 包含正反向查找功能 仅供参考
    let g:vimtex_view_general_viewer = 'E:\LaTeX\SumatraPDF\SumatraPDF.exe' "这里放置你的sumatrapdf 安装路径
    let g:vimtex_view_general_options_latexmk = '-reuse-instance'
    let g:vimtex_view_general_options
         \ = ' -reuse-instance -forward-search @tex @line @pdf'
         \ . ' -inverse-search "' . 'cmd /c start /min \"\" '  . exepath(v:progpath)
         \ . ' -v --not-a-term -T dumb -c  \"VimtexInverseSearch %l ''%f''\""' "for vim/gvim
    
    
    
    "编译过程中忽略警告信息
    let g:vimtex_quickfix_open_on_warning=0
    
    

    4. Hello World

    用vim/gvim打开一个文件,然后输入

    % !TEX program = xelatex
    \documentclass{article}
    \usepackage{ctex}
    \begin{document}
        Hello,LaTeX{} World!
    
        你好,世界!
    \end{document}
    
    • 然后,<esc>进入normal模式,:w保存,输入\ll等待一小会,就可得到一个perfect的pdf文档
    • Note:由于latexmk的特性(一旦检测到tex源文件或者相关文件的更改,就可自动编译的)。也就是说,后续修改文件,添加文字,我们只要:w保存,
      之后等待vim状态栏下方回显出vimtex: Compilation completed字样,接着输入\lv就可查看更新后的pdf文档。

    5. 用法

    5.1. 基本用法

    按键效果工作模式
    \livimtex-info(文件信息)n
    \ltvimtex-toc-open(打开目录)n
    \llvimtex-compile(编译文件)n
    \lvvimtex-view(查看pdf文档)n
    \livimtex-imap-list(查看insert 模式下已定义的映射)n
    Kvim-doc-package(查看宏包信息)n

    5.2. imaps映射4

    imaps list

    • 举例来说, 如果你想输入 \infty, 那么在插入模式下,只需要输入 `+ 8 就行了 (因为8躺下了就是 ∞ \infty

    5.3. 模块编辑


    -cse:change surrounding environment
    比如在一个 align周围(注意是将光标调整到align周围或环境内部),我们按下按键cse,在命令行就会出现

    Change surrounding environment:align
    >[光标]
    

    的提示,然后我们在光标处输入equation,那么这个环境就会变成

    \begin{equation}
    ...
    \end{equation}
    

    • tsd:toggle surrounding delimiter,互换括号,这个命令经常被用到
      • (..光标..)\left(..光标\right..)之间切换
      • [..光标..]\left[..光标..\right]
      • \{..光标..\}\left\{..光标..\right\}

    • ]],自动补全右括号,右环境.%自动配对光标处的另一个括号
    ({[78光标
    -一次]]->({[78]光标
    -2]]->({[78]}光标
    ....................
    \begin{equation}
    a^2+b^2=c^2
    光标
    -]]->
    \begin{equation}
    a^2+b^2=c^2
    \end{equation}光标
    

    • 常用的textobj模块,这些可以和y(复制),d(删除)及c(修改)搭配使用(详情请查看5)
    • ic,ac:Text object for commands
    • id,ad:Text object for delimiters
    • ae,ie:Text object for environments
    • a$,i$:Text object for inline math

    • 如:
    ..(78787光标8ui)..
    -di(-->(光标)
    .........
    ..(78787光标8ui)..
    -da(-->..光标..
    

    Note:a.包括文字两侧的环境,括号,$等,i.仅仅包括被包围起来的文字。


    6. vimtex的哲学

    • vimtex并不试图将vim变成一个完全的LaTeX IDE(这样可能会拖慢vim/gvim的加载速度)
      • 几乎不提供LaTeX片段支持,因为有更好的插件实现:ultisnips+vim-snippets
      • vimtex是模块化的,你可以选择关掉那些你不喜欢的功能(例如文件折叠)

    7. 进阶操作

    • ultisnips+vim-snippets可实现tex片段补全,以及编辑LaTeX文件的速度6
    • 当然为了实现上面飞一般的操作, 也许你需要安装python环境以及sympypackage
    • 后续,学习学习再补充

    1. vimtex/README ↩︎

    2. latexmk.pdf ↩︎

    3. Is there any plan for the ``magic comments’’ ↩︎

    4. Vim Latex 的使用和配置技巧 (二) ↩︎

    5. vimtex文档说明 ↩︎

    6. 世界上最好的编辑器Vim:1700多页数学笔记是如何实时完成的 ↩︎

    展开全文
  • ubuntu20.04下vim+vimtex编写latex的利器

    千次阅读 2020-06-01 13:35:33
    ubuntu20.04下vim+vimtex编写latex的利器安装中文环境的latex套件vimtex的安装与配置安装vimtexPDF阅读器 zathura 之所以推荐vimtex编写latex是因为,vimtex属于实时编译预览的插件,使用起来更加方便。 vimtex   ...

    之所以推荐vimtex编写latex是因为,vimtex属于实时编译预览的插件,使用起来更加方便。

    • vimtex   实时编译,并预览
    • vim-latex   只是编译和预览,并不能实时呈现,需要每次 “\ll”"\lv"
    • latex-live-preview   可以实时预览,但是不能编译生成pdf文档

    而vimtex 基本上可以说是 vim-latex 和 latex-live-preview的综合,只需要一次 “\ll” ,更新内容后,记得保存,保存后就会刷新pdf文档。但是在当前目录下生成的中间文件有点多,有强迫症的同学会看着不舒服。

    Latex的学习,请参考我的另外文章:

    在开始正文之前,请看下效果图(左边是vim,右边是zathura)
    在这里插入图片描述
    系统环境

    • ubuntu20.04
    • i3wm,平铺式桌面管理器(我喜爱i3wm的简洁,比ubuntu原生自带的用着舒服)

    安装中文环境的latex套件

    既然要编写latex文档,那么编译套件必不可少。

    或许有的同学会疑惑,不是要使用vimtex编写latex文档吗,为什么要安装latex套件?其实我刚开始接触的时候也会有这样的疑惑,

    能看到本文的同学,应该大部分都多少会点c语言吧,这里以ubuntu下C语言编程为例来回答上述疑惑:C语言的编写使用的是文本编辑工具(例如vim,gedit等),编译使用的是gcc。

    • latex套件   就好比是gcc编译套件
    • vimtex   就好比文本编辑工具

    安装命令如下:

    sudo apt-get install texlive-latex-base latex-cjk-all texlive-latex-extra
    sudo apt-get install texlive-xetex texlive-publishers
    

    这里面的部分介绍,请参考我的另外一篇文章(ubuntu20.04下vim+vim-latex+latex-live-preview编写中文latex文档)中的 “安装中文环境的latex套件” 部分,这里不再累述。

    vimtex的安装与配置

    本文使用vim-plug插件管理器安装vimtex,如果不会使用vim-plug的同学,可以参考我的另外一篇文章(ubuntu20.04安装之后需要做的事),这里不再累述。

    安装vimtex

    编辑你本地的vimrc文件,录入如下代码

    call plug#begin('~/.vim/plugged')
    Plug 'lervag/vimtex'
    call plug#end()
    

    之后在命令行模式下输入:“PlugInstall”,即可安装vimtex,安装完成后会有finish标志,请注意查看。

    注意,安装完vimtex插件后,也要安装vimtex的编辑器 “latexmk”

    sudo apt-get install latexmk
    

    PDF阅读器 zathura

    vmtex推荐的pdf阅读器是zathura,这里也使用zathura。

    “注意”:ubuntu14.04 对要求的zathura的支持不够完整,若有想在ubuntu14.04下实现该环境的同学,请使用其他的pdf阅读器,比如 “okular”

    sudo apt-get install zathura xdotool
    
    • xdotool   是zathura必须的一个模块

    vimtex 与 zathura的配置

    打开自己的vimrc文件,录入如下配置(包括安装vimtex的配置)

    filetype indent on
    
    call plug#begin('~/.vim/plugged')
    Plug 'lervag/vimtex'
    call plug#end()
    
    " vimtex配置
    "
    let g:tex_flavor='latex'
    let g:vimtex_view_method='zathura'
    let g:vimtex_quickfix_mode=0
    set conceallevel=1
    let g:tex_conceal='abdmg'
    " 对中文的支持
    let g:Tex_CompileRule_pdf = 'xelatex -synctex=1 --interaction=nonstopmode $*'
    

    安装conceal需要的插件

    有没有被只有的动图惊艳到
    在这里插入图片描述
    里面会把一些latex语法替换成相应的符号,并隐藏语法和 [,],$等,其实这个实时替换是通过如下两个插件实现的,但是有一点,并不是所有的语法都能预览替换,但是也能替换一大部分。

    call plug#begin('~/.vim/plugged')
    Plug 'KeitaNakamura/tex-conceal.vim', {'for': 'tex'}
    Plug 'wjakob/wjakob.vim'
    call plug#end()
    

    vimrc配置

    安装完相应插件后,需要把插件配置起来,如下是我的完整配置

    filetype indent on
    set number
    
    call plug#begin('~/.vim/plugged')
    Plug 'lervag/vimtex'
    Plug 'KeitaNakamura/tex-conceal.vim', {'for': 'tex'}
    Plug 'wjakob/wjakob.vim'
    call plug#end()
    
    " vimtex配置
    "
    let g:tex_flavor='latex'
    let g:vimtex_view_method='zathura'
    let g:vimtex_quickfix_mode=0
    
    " 对中文的支持
    let g:Tex_CompileRule_pdf = 'xelatex -synctex=1 --interaction=nonstopmode $*'
    let g:vimtex_compiler_latexmk_engines = {'_':'-xelatex'}
    let g:vimtex_compiler_latexrun_engines ={'_':'xelatex'}
    
    set conceallevel=2   #这里建议写成2,写1时替换后的效果不好看
    let g:tex_conceal='abdmg'
    

    注意: 在vimrc中配好插件后,记得使用 “PlugInstall” 命令安装插件。

    一个例子

    用vim编写test.tex文件,录入如下内容后保存

    %! Tex program = xelatex
    \documentclass{article}
    \usepackage[UTF8]{ctex}
    \begin{document}
    
    你好,china \\
    
    
    $f^{(n)}(z) $
    
    $\sqrt{x} $
    
    $\underbrace{a+b+\cdots+z}_{26} $
    
    $\pm $
    
    $\sum \bigcup \bigvee \bigwedge \prod \coprod $
    
    feichanghao
    
    \end{document}
    

    说明: 上述中的 “$ … $” 是开启行内数学模式,用于和文本合在一起使用。也可以使用 “ \ [ … \ ] ” ,使用 “\ [ … \ ]” 的格式如下:

    \[
    $\sqrt{x} 
    \]
    

    使用 “\ll” 命令编译该文件时,就会生成如效果图版的pdf文件。

    又一个例子

    latex使用tikzpicture 来绘制各种数学图形,其使用的包是 “\usepackage{tikz}”

    %! Tex program = xelatex
    \documentclass{article}
    \usepackage[UTF8]{ctex}
    \usepackage{tikz}
    \begin{document}
      \begin{figure}
        \begin{tikzpicture}
          \draw[->](-1.2,0)--(1.2,0)node[left,below,font=\tiny]{$x$};
          \draw[->](0,-0.2)--(0,1.2)node[right,font=\tiny]{$y$};
          \draw[dashed](-1.2,1)--(1.2,1);
          \foreach \x in {-1,-0.5,0,0.5,1}{\draw(\x,0)--(\x,0.05)node[below,outer sep=2pt,font=\tiny]at(\x,0){\x};}
          \foreach \y in {0.5,1}{\draw(0,\y)--(0.05,\y)node[left,outer sep=2pt,font=\tiny]at(0,\y){\y};}
          \draw[color=red ,domain=-1.2:1.2]plot(\x,{1/(1+(e^(-1*(\x))))});
        \end{tikzpicture}
      \end{figure}
    该图的表达式是:
    \[
    sigmoid(x) = \frac{1}{1 + e^{-x}}
    \]
    \end{document}
    

    使用 “\ll” 命令编译该文件时,就会生成如下效果图版的pdf文件。
    在这里插入图片描述
    这个绘制数学图形的实现,主要是参考 uncle_gy 的《Latex 绘制函数图像》,十分感谢。

    Snippets安装与配置

    参考网上大神所述,下面给出我自己的相关配置

    安装与配置

    我还是使用的vim-plug做的插件安装

    call plug#begin('~/.vim/plugged')
    Plug 'SirVer/ultisnips'
    Plug 'keelii/vim-snippets'  "这是别人的片段库,你也可以配置自己的,也可以根据这个来改
    call plug#end()
    
    " 片段配置,输入关键字后,按tab键补全片段
    let g:UltiSnipsExpandTrigger = '<tab>'
    let g:UltiSnipsJumpForwardTrigger = '<tab>'
    let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
    

    使用

    keelii的片段库中没有 tex.snippets 文件,而这个文件是latex 文档需要的片段路,命名规则是
    根据文件后缀名来加载,tex文件就加载 tex.snippets。

    tex.snippets 文件位置: ~/.vim/plugged/vim-snippets/UltiSnips ,我的配置如下:

    priority -50 
    
    snippet today "Date"
    `date +%F`
    endsnippet
    
    snippet box "Box"
    `!p snip.rv = '┌' + '─' * (len(t[1]) + 2) + '┐'`$1`!p snip.rv = '└' + '─' * (len(t[1]) + 2) + '┘'`
    $0
    endsnippet
    
    snippet beg "begin{} / end{}" bA
    \begin{$1}
            $0
    \end{$1}
    endsnippet
    
    snippet mk "Math" wA
    $${1}$`!p
    if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']:
        snip.rv = ' ' 
    else:
        snip.rv = ''
    `$2
    endsnippet
    
    snippet dm "Math" wA
    \[
    $1
    \] $0
    endsnippet
    

    上面的这些片段是参考国外小哥配置的,我们也可以根据自己的需要,在里面增删自己需要的配置。

    小结

    至此,算是把vim编写latex文档的配置工作完成了,也就是说可以初步达到《1700页数学笔记火了》文章描述的工作环境了,或许在编写的过程中,大家需要自己的代码片段快捷键,也都可以自己手动配置。

    注意,也可以把英文关键字,替换为中文字符哦,如果有需要的话,也可以使用 Snippets 配置中文编程语言的开发环境。

    下一步的计划是编写一篇《Latex入门教程》,有需要的同学,敬请期待啊……

    参考资料

    1. https://blog.csdn.net/uncle_gy/article/details/78856164
    2. https://keelii.com/2018/08/26/vim-plugin-ultisnips-advanced-tips/
    展开全文
  • 折腾了很久终于从坑里爬了出来,记录一下,后人可免踩坑vimtex是vim中使用latex的最好插件(个人认为)vim-live-preview是实时预览插件1.vimtex配置1.1安装插件使用vundle,不会的自行百度Plugin'lervag/vimtex'1.2...
  • 本文记录了笔者为了在Ubuntu18.04上使用vim编写latex文档,而进行的vimtex配置过程。笔者所用vim的其他基础配置课参见本人以前的博客:https://blog.csdn.net/qyhaill/article/details/99701566 本文参考了vimtex的...
  • VimTeX VimTeX is a modern Vim and Neovim filetype and syntax plugin for LaTeX files. Table of contents Requirements Installation Configuration Quick Start Screenshots and GIFs Features Other ...
  • Plug 'lervag/vimtex' "帮助写latex let g:vimtex_latexmk_options='-pdf -pdflatex="xelatex -synctex=1 \%S \%O" -verbose -file-line-error -interaction=nonstopmode' let g:tex_flavor='latex' let g:vimtex_...
  • mac + vim + vimtex + latexmk + zathura = 神器

    千次阅读 2019-04-20 17:11:02
    之前因为 tex 编译比较繁琐,所以就...最近看到了一个 blog https://castel.dev/post/lecture-notes-1/ 让我知道了mac + vim + vimtex + latexmk + zathura 这个组合。 配置完成之后,当我看到在 vim 里面写完东西 ...
  • vimtex vimtex is a Vim plugin that provides support for writing LaTeX documents. It is based on LaTeX-Box and it shares a similar goal: to provide a simple and lightweight LaTeX plugin. It has been ...
  • vimtex环境配置

    千次阅读 2019-05-27 20:17:58
    安装vimtex https://github.com/lervag/vimtex 安装vim-latex-live-preview https://github.com/xuhdev/vim-latex-live-preview 安装适配的pdf阅读器,本人安装了Zathura 测试安装 新建一个空目录,在其中新.....
  • Vimtex插件的imap映射

    2021-12-25 10:52:19
    Vimtex插件的imap映射问题Vimtex插件的imap映射minnvimrc文件Vimtex插件的imap映射列表 Vimtex插件的imap映射 对于Vimtex插件的imap命令使用,之前我得tex文档在Vim上无法使用。我一度怀疑是否Vimtex中根本就不存在...
  • 问题遇到的现象和发生背景 vimtex在windows上编译pdf找不到perl 问题相关代码,请勿粘贴截图 运行结果及报错内容 我的解答思路和尝试过的方法 猜测可能是默认路径问题,但不知道怎么改 我想要达到的结果 能够正常...
  • latexmk 首先安装mac集成的basictex,然后终端输入 sudo tlmgr update --self --repository http://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet sudo tlmgr install ... 中文编译失败 开头加上%! Tex
  • 使用 Vim 编写 Tex 文档

    2021-12-03 15:05:06
    autocmd BufWritePost *.tex call vimtex#toc#refresh() augroup END PDF 的预览和定位 设置预览 PDF 的工具是 Zathura 阅读器,在 Linux 系统下推荐这个阅读器: let g:vimtex_view_general_viewer = 'zathura' ...
  • vimtex vimtex是一个Vim插件,为编写LaTeX文档提供支持。 它基于LaTeX-Box,并具有相似的目标:提供一个简单轻巧的LaTeX插件。 vimtex是一个Vim插件,为编写LaTeX文档提供支持。 它基于LaTeX-Box,并具有相似的目标...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 123
精华内容 49
关键字:

vimtex