update: fileless spawn of LaTeX Environment

This commit is contained in:
2026-05-27 01:38:25 +09:00
parent 9a16caafc9
commit 67f994d7ee
13 changed files with 281 additions and 160 deletions
+61
View File
@@ -0,0 +1,61 @@
{ pkgs, ... }:
pkgs.texliveSmall.withPackages (ps: with ps; [
# Bibliography
biber
bibtex
biblatex
# Japanese Support
babel
babel-japanese
luatexja
ascmac
bxjscls
zxjatype
collection-langjapanese
# Fonts
noto
zxjafont
haranoaji
libertine
latex-fonts
mathfont
newtx
luainputenc
fontspec
type1cm
# Math
amsmath
amsfonts
unicode-math
mathtools
lualatex-math
# Graphics
graphics
wrapfig
caption
here
pgf
circuitikz
# Tools
latexmk
subfiles
enumitem
hyperref
cleveref
float
framed
tabularray
footmisc
listings
xcolor
xstring
xpatch
blindtext
multirow
etoolbox
] ++ [ ps.import pkgs.my-latex-pkgs ])
+39
View File
@@ -0,0 +1,39 @@
{ pkgs, eskk-vim-src }:
[
(final: prev: {
vimPlugins = prev.vimPlugins // {
vim-eskk = prev.vimUtils.buildVimPlugin {
name = "vim-eskk";
src = eskk-vim-src;
};
};
})
(final: prev: {
my-latex-pkgs = prev.stdenvNoCC.mkDerivation {
pname = "my-latex-pkgs";
src = ../tex;
version = "0.0.1";
outputs = [
"tex"
];
nativeBuildInputs = [
(prev.writeShellScript "force-tex-output.sh" ''
out="''${tex-}"
'')
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
path="$tex/tex/latex/my-latex-pkgs"
mkdir -p "$path"
cp *.sty "$path/"
runHook postInstall
'';
};
})
]
+94
View File
@@ -0,0 +1,94 @@
{ pkgs, lib, ... }:
let
abbrevJSON = lib.importJSON ../abbrev.json;
toEnvAbbrev = aj:
lib.concatLines (map (e:
"iabbrev <buffer> ${e.alias} \\begin{${e.target}}<CR><CR>\\end{${e.target}}<Esc>ki"
) aj.env);
toMathAbbrev = aj:
lib.concatLines (map (e:
"iabbrev <buffer> m${e.alias} ${e.target}"
) aj.math);
toGenericAbbrev = aj:
lib.concatLines (map (e:
"iabbrev <buffer> ${e.alias} ${e.target}"
) aj.generic);
in
pkgs.vim-full.customize {
name = "vim";
vimrcConfig = {
packages.myPackages = with pkgs.vimPlugins; {
start = [
vim-eskk
vimtex
];
opt = [];
};
customRC = ''
filetype plugin indent on
set encoding=utf-8
set autoindent
set smartindent
set expandtab
set shiftwidth=4
set tabstop=4
set wrap
set number relativenumber
set nospell
set ruler
set cursorline
set mousehide
syntax enable
let g:vimtex_view_method = 'general'
let g:vimtex_view_general_viewer = 'okular'
let g:vimtex_view_general_options = '--unique file:@pdf\#src:@line@tex'
let g:vimtex_compiler_method = 'latexmk'
let maplocalleader = ","
let g:eskk#directory = "~/.config/eskk"
let g:eskk#dictionary = { 'path': "~/.config/eskk/jisyo", 'sorted': 1, 'encoding': 'utf-8', }
let g:eskk#large_dictionary = { 'path': "${pkgs.skkDictionaries.l}/share/skk/SKK-JISYO.L", 'sorted': 1, 'encoding': 'euc-jp', }
let g:eskk#kakutei_when_unique_candidate = 0
let g:eskk#enable_completion = 0
let g:eskk#no_default_mappings = 1
let g:eskk#keep_state = 0
let g:eskk#egg_like_newline = 1
let g:toggle_latex_eskk = 1
function! s:latex_eskk() abort
if &filetype == 'tex' && g:toggle_latex_eskk ==# 1
call eskk#enable()
endif
endfunction
function! s:latex_eskk_toggle() abort
let g:toggle_latex_eskk = g:toggle_latex_eskk == 1 ? 0 : 1
if g:toggle_latex_eskk ==# 1
echomsg 'LaTeX Japanese Input Enabled'
else
echomsg 'LaTeX Japanese Input Disabled'
endif
endfunction
augroup vimrc_eskk
autocmd!
autocmd Filetype tex nnoremap <buffer><silent> <F1> :call <SID>latex_eskk_toggle()<CR>
autocmd User eskk-enable-post lmap <buffer> l <Plug>(eskk:disable)
augroup END
imap jk <Plug>(eskk:toggle)
cmap jk <Plug>(eskk:toggle)
imap jj <C-]>
augroup latex_abbr
${toEnvAbbrev abbrevJSON}
${toGenericAbbrev abbrevJSON}
${toMathAbbrev abbrevJSON}
augroup END
'';
};
}