Skip to content

Possible best practice in LaTeX #50

Description

@Gabirel

This practice only represents my personal opinion when using SpaceVim.

Mechanism: Latex Support + SpaceVim + CoC + Layer Latex(inside SpaceVim, mainly vimtex) + coc-texlab + Texlab + PDF viewer

Overview

  • Installation
  • SpaceVim Settings
  • CoC Settings
  • Preview
  • Conceal
  • More settings for latex layer

Installation

SpaceVim Settings

In order to enable latex support, we should complete these steps:

  • let SpaceVim install coc for you
  • let coc install coc-texlab
  • enable latex layer

Add these configs into your ~/SpaceVim.d/init.vim to make the aforementioned steps to complete:

" Use coc to auto complete
let g:spacevim_autocomplete_method = 'coc'

" Enable layer: latex
call SpaceVim#layers#load('lang#latex')

" CoC Settings
" {{ coc {{
let g:coc_config_home = '~/.SpaceVim.d/'
let g:coc_global_extensions = [
      \ 'coc-dictionary',
      \ 'coc-word',
      \ 'coc-texlab',
      \ ]
" }} coc }}

If you need full init.vim, check dotfiles for more information.

CoC Settings

  • enable latex support
  • adjust texlab binary path
  • enable texlab to build for us automatically

Add these config into your ~/SpaceVim.d/coc-settings.json

{
  "languageserver": {
    "latex": {
      "command": "/usr/local/bin/texlab",  // put your texlab binary path here
      "filetypes": ["tex", "bib", "plaintex", "context"]
    }
  },
  "texlab.build.onSave": true,
}

Preview

For different PDF viewer, check texlab's previewing documentation for more information.

Personally, I use Skim to forward search on MacOS.
So my settings are updated like this:

{
  "languageserver": {
    "latex": {
      "command": "/usr/local/bin/texlab",
      "filetypes": ["tex", "bib", "plaintex", "context"]
    }
  },
  "coc.source.file.ignoreHidden": false,
  "texlab.build.onSave": true,
  "texlab.build.forwardSearchAfter": true,
  "texlab.forwardSearch.executable": "/Applications/Skim.app/Contents/SharedSupport/displayline",
  "texlab.forwardSearch.args": ["-g", "%l", "%p", "%f"]  //"-g" means I want Skim to stay in the background after executing the forward search
}

Conceal

I really don't like the concealing feature, which makes it hard to write latex.
So, I disable it completely. FYI, check issue-44 for more details.

TL;DR:

let g:vimtex_syntax_conceal_default = 0

More settings for latex layer

Explanation: Latex layer is mainly about vimtex.

  • Disable automatically view since I use texlab with Skim
  • use <leader>v to format paragraph for me
" {{ vimtex {{
" Special setting for latex files
" Use `gggqG` to format long lines in Latex
" Use `gq11j` to wrap the line you're on with the 11 below it
" Use `gqip` or `gqap` to wrap the paragraph
" gg(go to first line), gq(format) to G(the last line)
autocmd FileType tex setlocal colorcolumn=80 textwidth=79 tabstop=2 shiftwidth=2 expandtab
nnoremap <leader>v gqip
" See: http://vimdoc.sourceforge.net/htmldoc/syntax.html#g:tex_conceal
" let g:tex_conceal = "abdg"

" Disable all syntax conceal
let g:vimtex_syntax_conceal_default = 0
" Disable automatic view since I use texlab with skim to preview in background
" personally
let g:vimtex_view_enabled = 0
let g:vimtex_view_automatic = 0
" }} vimtex }}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions