diff --git a/abbrev.json b/abbrev.json new file mode 100644 index 0000000..3b923b6 --- /dev/null +++ b/abbrev.json @@ -0,0 +1,36 @@ +{ + "env": [ + { "alias": "alignenv", "target": "align" }, + { "alias": "arrayenv", "target": "array" }, + { "alias": "casesenv", "target": "cases" }, + { "alias": "emptyenv", "target": "" }, + { "alias": "enumenv", "target": "enumerate" }, + { "alias": "equi", "target": "equation" }, + { "alias": "figenv", "target": "figure" }, + { "alias": "gatherenv", "target": "gather" }, + { "alias": "itemenv", "target": "itemize" }, + { "alias": "minienv", "target": "minipage" }, + { "alias": "split", "target": "split" }, + { "alias": "tableenv", "target": "table" }, + { "alias": "tabularenv", "target": "tabular" } + ], + "math": [ + { "alias": "prs", "target": "\\left(\\right)?\\i" }, + { "alias": "/", "target": "\\frac{}{}" }, + { "alias": "inv", "target": "\\frac{1}{}i" }, + { "alias": "txt", "target": "\\text{}i" }, + { "alias": "bks", "target": "\\left{\\right}?\\i" } + ], + "generic": [ + { "alias": "cpt", "target": "\\caption{}i" }, + { "alias": "itm", "target": "\\item{}i" }, + { "alias": "lbl", "target": "\\label{}i" }, + { "alias": "sec", "target": "\\section{}i" }, + { "alias": "ssec", "target": "\\subsection{}i" }, + { "alias": "sssec", "target": "\\subsubsection{}i" }, + { "alias": "tbf", "target": "\\textbf{}i" }, + { "alias": "tit", "target": "\\textit{}i" }, + { "alias": "trm", "target": "\\textrm{}i" }, + { "alias": "ttt", "target": "\\texttt{}i" } + ] +} diff --git a/flake.lock b/flake.lock index c76edaa..18ec98f 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "eskk-vim": { "flake": false, "locked": { - "lastModified": 1717933058, - "narHash": "sha256-7nPzxCbKHBwplrTCsO4SxdFe/VK0VMHWDspWvVJvwLU=", + "lastModified": 1778495889, + "narHash": "sha256-1R/ChmsdtSXMEMMtKuyXgX7oe7ZE0a8gdx3sC9s6wp0=", "owner": "vim-skk", "repo": "eskk.vim", - "rev": "e530575790cca5d6603b8ab984298459ecf3c0c0", + "rev": "131a290d5305b9bf06426cfe32065f97e23d471c", "type": "github" }, "original": { @@ -36,11 +36,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1775423009, - "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", + "lastModified": 1779560665, + "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", "owner": "nixos", "repo": "nixpkgs", - "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e6c2640..da52268 100644 --- a/flake.nix +++ b/flake.nix @@ -17,152 +17,11 @@ pkgs = import nixpkgs { inherit system; config = {}; - overlays = [ - (final: prev: { - vimPlugins = prev.vimPlugins // { - vim-eskk = prev.vimUtils.buildVimPlugin { - name = "vim-eskk"; - src = eskk-vim; - }; - }; - }) - ]; + overlays = import ./nix/overlay.nix { inherit pkgs; eskk-vim-src = eskk-vim; }; }; - vimWithTex = pkgs.vim-full.customize { - name = "vim-with-tex"; - vimrcConfig = { - packages.vimWithTexPackage = 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': "~/.config/eskk/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 :call latex_eskk_toggle() - autocmd User eskk-enable-post lmap l (eskk:disable) - augroup END - - imap jk (eskk:toggle) - cmap jk (eskk:toggle) - - imap jj - - augroup autosource - source vim/generic-envs.vim - source vim/generic.vim - augroup END - ''; - }; - }; - - texEnv = 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 - - # Math - amsmath - amsfonts - unicode-math - mathtools - lualatex-math - - # Graphics - graphics - wrapfig - caption - here - pgf - circuitikz - - # Tools - latexmk - subfiles - enumitem - hyperref - float - framed - tabularray - footmisc - listings - xcolor - xstring - xpatch - blindtext - multirow - etoolbox - ] ++ [ ps.import ]); + vimWithTex = import ./nix/vim.nix { inherit pkgs; lib = pkgs.lib; }; + texEnv = import ./nix/latex.nix { inherit pkgs; }; in { devShells.default = pkgs.stdenv.mkDerivation { diff --git a/nix/latex.nix b/nix/latex.nix new file mode 100644 index 0000000..c635e41 --- /dev/null +++ b/nix/latex.nix @@ -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 ]) diff --git a/nix/overlay.nix b/nix/overlay.nix new file mode 100644 index 0000000..c3967a6 --- /dev/null +++ b/nix/overlay.nix @@ -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 + ''; + }; + }) +] diff --git a/nix/vim.nix b/nix/vim.nix new file mode 100644 index 0000000..6217f28 --- /dev/null +++ b/nix/vim.nix @@ -0,0 +1,94 @@ +{ pkgs, lib, ... }: +let + abbrevJSON = lib.importJSON ../abbrev.json; + toEnvAbbrev = aj: + lib.concatLines (map (e: + "iabbrev ${e.alias} \\begin{${e.target}}\\end{${e.target}}ki" + ) aj.env); + toMathAbbrev = aj: + lib.concatLines (map (e: + "iabbrev m${e.alias} ${e.target}" + ) aj.math); + toGenericAbbrev = aj: + lib.concatLines (map (e: + "iabbrev ${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 :call latex_eskk_toggle() + autocmd User eskk-enable-post lmap l (eskk:disable) + augroup END + + imap jk (eskk:toggle) + cmap jk (eskk:toggle) + + imap jj + + augroup latex_abbr + ${toEnvAbbrev abbrevJSON} + + ${toGenericAbbrev abbrevJSON} + + ${toMathAbbrev abbrevJSON} + augroup END + ''; + }; +} diff --git a/out/test.pdf b/out/test.pdf new file mode 100644 index 0000000..cb1e696 Binary files /dev/null and b/out/test.pdf differ diff --git a/out/test.synctex.gz b/out/test.synctex.gz new file mode 100644 index 0000000..a9f0717 Binary files /dev/null and b/out/test.synctex.gz differ diff --git a/tex/depD-experiment.sty b/tex/depD-experiment.sty new file mode 100644 index 0000000..98a3e7c --- /dev/null +++ b/tex/depD-experiment.sty @@ -0,0 +1,7 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{depD-experiment} + +\usepackage{preamble} +\usepackage{experiment-title} +\usepackage{depD-bib} +\usepackage{depD-format} diff --git a/tex/depD-format.sty b/tex/depD-format.sty new file mode 100644 index 0000000..961cd12 --- /dev/null +++ b/tex/depD-format.sty @@ -0,0 +1,25 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{depD-format} + +\usepackage{cleveref} + +\renewcommand\figurename{Fig. } +\renewcommand\tablename{Table } +\renewcommand\theequation{\thesection-\arabic{equation}} +\renewcommand\thefigure{\thesection-\arabic{figure}} +\renewcommand\thetable{\thesection-\arabic{table}} + +\crefdefaultlabelformat{#1} +\crefname{figure}{Fig.}{Fig.} +\Crefname{figure}{Fig.}{Fig.} +\crefname{table}{Table}{Tables} +\Crefname{table}{Table}{Tables} +\crefname{equation}{Eq.}{Eq.} +\Crefname{equation}{Eq.}{Eq.} +\creflabelformat{equation}{(#1)} + +\newcommand\resetrefcounter{ + \setcounter{equation}{0} + \setcounter{figure}{0} + \setcounter{table}{0} +} diff --git a/tex/detailed-title.sty b/tex/detailed-title.sty index 010120f..c76dde9 100644 --- a/tex/detailed-title.sty +++ b/tex/detailed-title.sty @@ -1,7 +1,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{detailedTitle} -\usepackage{tex/coms} +\usepackage{coms} \newcommand{\detailedtitle}{ \begin{titlepage} diff --git a/tex/experiment-title.sty b/tex/experiment-title.sty index 0cb81d2..5bf3fbb 100644 --- a/tex/experiment-title.sty +++ b/tex/experiment-title.sty @@ -1,7 +1,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{experimentTitle} -\usepackage{tex/coms} +\usepackage{coms} \usepackage{multirow} \usepackage{array} \usepackage{etoolbox} @@ -16,10 +16,10 @@ \newcommand{\researchercs}[1]{ \ifthenelse{\isodd{\theresearchercount}} { - & {\underline{(\theresearchercount) #1}} + & {\underline{(\theresearchercount)\quad #1}} } { - & {\underline{(\theresearchercount) #1}} \@arraycr + & {\underline{(\theresearchercount)\quad #1}} \@arraycr } \stepcounter{researchercount} } @@ -66,18 +66,18 @@ \vspace{1em} - \hspace{-8.525pt}\begin{tabular}{ lp{5em}p{5em} } + \hspace{-8.525pt}\begin{tabular}{ lp{8em}p{8em} } \ifthenelse{\isundefined{\researchers}}{ - \multirow[t]{3}{7.3125em}{共同実験者:} & {なし} & \\ + \multirow[t]{3}{8em}{共同実験者:} & {なし} & \\ }{ - \multirow[t]{3}{7.3125em}{共同実験者:} \forlistloop{\researchercs}{\researchers} + \multirow[t]{3}{8em}{共同実験者:} \forlistloop{\researchercs}{\researchers} } \end{tabular} \vspace{5em} - \hspace{-6pt}\begin{tabular}{ lp{5em} } - \multirow[t]{3}{7.3125em}{実験実施日:} \forlistloop{\expdatecs}{\expdates} + \hspace{-6pt}\begin{tabular}{ lp{8em} } + \multirow[t]{3}{8em}{実験実施日:} \forlistloop{\expdatecs}{\expdates} \end{tabular} \end{flushleft} \end{titlepage} diff --git a/tex/simple-title.sty b/tex/simple-title.sty index 153d8d7..8e1ea15 100644 --- a/tex/simple-title.sty +++ b/tex/simple-title.sty @@ -1,7 +1,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{simpleTitle} -\usepackage{tex/coms} +\usepackage{coms} \newcommand{\simpletitle}{ \begin{titlepage}