This is the current config based on other repo

This commit is contained in:
Eddie Cueto 2023-06-30 13:57:19 +01:00
parent 6fc158314a
commit e40ec2d945
62 changed files with 20737 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*.json
packer_compiled.lua

182
NOTES.md Normal file
View File

@ -0,0 +1,182 @@
# NOTES
## Features
### Example
1. sessions --> hypcause
2. adjust screen --> build pdf
3. check log
4. check index --> hop to section
5. go to citation --> vimtex menu
6. search all citations --> insert
7. explorer --> open TODO
8. show autolist in action
9. exit vim
10. open new session using explorer
11. create new document
12. use handout template
13. build pdf
14. use snippets
15. use surround
16. open explorer to run system open with s
17. show result
### Introduction
1. new series
1. this video will review why use this config
2. could skip to features in next video
3. writing latex in vim
1. TexShop/TexMaker are too simple
2. Overleaf
1. only slightly better
2. not free
3. forces you to work in the browser
4. but is easy to start with for collaborators
5. Papeeria is more free and permits GitHooks
3. PDE vs IDE
4. why port to lua
1. stay up to date with the community
2. fast
3. lua is better than vimscript
5. overview of series
1. review features
2. installation
3. configuration
4. how to git (including Papeeria)
### LaTeX
1. basics
1. sessions
2. buffers
2. vimtex
1. build
2. view
3. index
4. count
5. error log
6. clean aux
3. citations
1. citations with vimtex
2. citations with telescope
3. context menu
4. bibannotate
5. bibexport
### New Project
1. new project
2. explorer
3. new directory
4. new files
3. templates
4. markdown
2. checklist
3. numbered list
4. bullet list
5. save session
### Snippets and Glossary
1. snippets
2. glossary
### Surround
1. surround
2. preview symbol
### Git
1. lazygit
2. navigate git hunks
### Pandoc
1. pandoc
2. latex -> word
5. latex -> markdown
3. markdown -> word
### Bells and Whistles
1. undo
2. find
3. yank
4. kill lsp
5. toggle illuminate
## Installation
### basics
1. brew
2. mac keys
3. fish
4. dependencies
5. neovim
## customise
1. create fork
2. pull config
3. edit config
4. latex
5. zathura
### zotero
### git
1. pulled instead of forked
2. pushing changes
3. adding SSH
4. adding PAT
5. pulling onto other computers
### terminal
1. alaritty
2. tumx
## Configuration
1. basics
1. file structure
1. init
2. options
3. keymaps
4. plugins
2. options
3. keymaps
1. vim standards
2. new additions in cheatsheet
3. unmapping
4. plugins
5. whichkey
2. change plugins
1. new plugin
2. remove plugin
3. how to learn about existing plugins
4. look up keymaps with <space>fk
5. explore help docs which shift+m and <space>fh
### Git
1. git basics
1. create repo
2. add remote
3. push changes
4. share access
1. GitHub
2. Papeeria
3. Overleaf
5. using branches
6. merge conflicts
7. further information

126
TODO.md Normal file
View File

@ -0,0 +1,126 @@
# TODO
- [ ] config
- [ ] lags
- [ ] github issues
- [ ] consolidate add-ons
- [ ] forks #73
- [ ] thesaurus #69
- [ ] blacktex #67
- [ ] neomutt #65
- [ ] cheat sheet #62
- [ ] zathura themes #51
- [ ] math conceal #48
- [ ] latex snippets #47
- [ ] format plugin #44
- [ ] bare repo #35
- [x] .gitignore #77
- [x] should I create a personal branch?
- [x] exclude local files
- [x] close issue
- [ ] revise snippets
- [ ] check fields
- [ ] check tabs
- [ ] nvim-tree commands not all working
- [ ] indents
- [ ] stop indents when adding brackets
- [ ] add indents inside enumerate
- [ ] test vimtex indent
- [ ] tab stops working in insert mode
- [ ] can't reproduce: check to see if behaviour returns
- [ ] autolist
- [ ] move config out of plugins.lua
- [x] submitted issue
- [ ] move bindings into whichkey
- [x] submitted issue
- [ ] create empty checkbox
- [x] submited issue
- [ ] folding
- [ ] vertical lines extend through wrapped lines
- [x] requires upstream change to nvim
- [x] replace <Tab> with <C-j> in cmd and search
- [x] add recent mac install tip from issues
- [x] toggle lsp: replace kill and load in whichkey with toggle
- [x] submitted issue
- [x] test suggestion
- [x] how to change root directory
- [x] do i need project.nvim?
- [x] alpha: turn off auto create sessions
- [x] created issue
- [x] PdfAnnots: convert from vimscript to lua
- [x] submitted issue
- [x] undo does not work in md after checkmark
- [x] autolist causing problems?
- [x] auto-recalculate does not work after turning off problem code
- [x] WhichKey: checking conflicting keymaps
- [x] treesitter only load md and tex
- [x] shift-m gives error
- [x] indenting
- [x] can't get autolist to work
- [x] tab stops indenting after one tab
- [x] indents on new line in enumerate
- [x] adding braces can cause unwanted indentation
- [x] pandoc
- [x] plugin
- [x] bindings
- [x] WhichKey
- [x] nvim-tree default mappings don't work
- [x] zathura freezes on suspend
- [x] can't close quickfix with space-d
- [x] bibexport does not always work?
- [x] lsp
- [x] import from zotero
- [x] created vimtex issue
- [x] got MWE working
- [x] find bug: .bib is too long
- [x] fix bug
- [x] navigate command and search with <C-j>, <C-k>
- [x] spelling in lsp menu
- [x] errors when starting a line with a backslash
- [x] prevent menu from poping up without entering text
- [x] creating a new line should not trigger lsp menu
- [x] snippets
- [x] update nvim
- [x] backup zotero
- [x] remove zotero
- [x] update arch
- [x] install zotero
- [x] update nvim
- [x] autopairs
- [ ] add single bracket if in open pair
- [x] move through second $
- [x] only add spaces when between two $$
- [x] add brackets regardless of characters following
- [x] back tick should give latex quotes
- [x] skip outside end of pair
- [x] customise latex snippets
- [ ] convert to lua for context dependent snippets
- [x] add snippets
- [x] snippets it and bf adding new line
- [x] snippets for it bf etc
- [x] colors
- [x] make underlining word shading instead
- [x] WhichKey
- [x] sessions
- [x] surround
- [x] git
- [x] vimtex
- [x] decode linter symbols and commands
- [x] vimtex menu check
- [x] add telescope search text through all files in project
- [x] markdown
- [x] turn off certain functions in markdown
- [x] autolist
- [x] no bullet following colon
- [x] sessions in start screen
- [x] ftplugin
- [x] fix errors in tex and md files
- [x] add latex surround objects
- [x] markdown toggle bullets
- [x] need to extend cycle
- [x] lsp no menu without typing
- [x] could refine cmd-commandline plugin which was the problem
- docs
- update cheatsheet
- create intro videos

View File

@ -0,0 +1,20 @@
require("nvim-surround").buffer_setup({
surrounds = {
["e"] = {
add = function()
local env = require("nvim-surround.config").get_input ("Environment: ")
return { { "\\begin{" .. env .. "}" }, { "\\end{" .. env .. "}" } }
end,
},
["b"] = {
add = { "**", "**" },
find = "**.-**",
delete = "^(**)().-(**)()$",
},
["i"] = {
add = { "*", "*" },
find = "*.-*",
delete = "^(*)().-(*)()$",
},
},
})

107
after/ftplugin/tex.lua Normal file
View File

@ -0,0 +1,107 @@
local config = require("nvim-surround.config")
require("nvim-surround").buffer_setup({
surrounds = {
-- ["e"] = {
-- add = function()
-- local env = require("nvim-surround.config").get_input ("Environment: ")
-- return { { "\\begin{" .. env .. "}" }, { "\\end{" .. env .. "}" } }
-- end,
-- },
["Q"] = {
add = { "``", "''" },
find = "%b``.-''",
delete = "^(``)().-('')()$",
},
["q"] = {
add = { "`", "'" },
find = "`.-'",
delete = "^(`)().-(')()$",
},
["b"] = {
add = { "\\textbf{", "}" },
-- add = function()
-- if vim.fn["vimtex#syntax#in_mathzone"]() == 1 then
-- return { { "\\mathbf{" }, { "}" } }
-- end
-- return { { "\\textbf{" }, { "}" } }
-- end,
find = "\\%a-bf%b{}",
delete = "^(\\%a-bf{)().-(})()$",
},
["i"] = {
add = { "\\textit{", "}" },
-- add = function()
-- if vim.fn["vimtex#syntax#in_mathzone"]() == 1 then
-- return { { "\\mathit{" }, { "}" } }
-- end
-- return { { "\\textit{" }, { "}" } }
-- end,
find = "\\%a-it%b{}",
delete = "^(\\%a-it{)().-(})()$",
},
["s"] = {
add = { "\\textsc{", "}" },
find = "\\textsc%b{}",
delete = "^(\\textsc{)().-(})()$",
},
["t"] = {
add = { "\\texttt{", "}" },
-- add = function()
-- if vim.fn["vimtex#syntax#in_mathzone"]() == 1 then
-- return { { "\\mathtt{" }, { "}" } }
-- end
-- return { { "\\texttt{" }, { "}" } }
-- end,
find = "\\%a-tt%b{}",
delete = "^(\\%a-tt{)().-(})()$",
},
["$"] = {
add = { "$", "$" },
-- find = "%b$.-$",
-- delete = "^($)().-($)()$",
},
},
})
-- PdfAnnots
function PdfAnnots()
local ok, pdf = pcall(vim.api.nvim_eval,
"vimtex#context#get().handler.get_actions().entry.file")
if not ok then
vim.notify "No file found"
return
end
local cwd = vim.fn.getcwd()
vim.fn.chdir(vim.b.vimtex.root)
if vim.fn.isdirectory('Annotations') == 0 then
vim.fn.mkdir('Annotations')
end
local md = vim.fn.printf("Annotations/%s.md", vim.fn.fnamemodify(pdf, ":t:r"))
vim.fn.system(vim.fn.printf('pdfannots -o "%s" "%s"', md, pdf))
vim.cmd.split(vim.fn.fnameescape(md))
vim.fn.chdir(cwd)
end
-- -- LSP menu to preserve vimtex citation data
-- require('cmp').setup.buffer {
-- formatting = {
-- format = function(entry, vim_item)
-- vim_item.menu = ({
-- omni = (vim.inspect(vim_item.menu):gsub('%"', "")),
-- buffer = "[Buffer]",
-- -- formatting for other sources
-- })[entry.source.name]
-- return vim_item
-- end,
-- },
-- sources = {
-- { name = 'omni' },
-- { name = 'buffer' },
-- -- other sources
-- },
-- }

60
init.lua Normal file
View File

@ -0,0 +1,60 @@
-- GENERAL
require "user.options"
require "user.keymaps"
require "user.plugins"
require "user.autocommands"
require "user.colorscheme"
require "user.lsp.init"
-- PLUGINS
require "user.autopairs"
require "user.comment"
require "user.impatient"
require "user.surround"
--require "user.yanky"
require "user.undotree"
-- Mappings
require "user.whichkey"
-- Terminal
require "user.toggleterm"
-- File Management
require "user.nvim-tree"
require "user.sessions"
-- Appearance
--require "user.bufferline"
require "user.lualine"
require "user.indentline"
require "user.alpha"
require "user.illuminate"
-- Autocomplete
require "user.cmp"
-- LaTeX
require "user.vimtex"
-- Markdown
require "user.autolist"
-- Snippets
require "user.luasnip"
-- Telescope
require "user.telescope"
require "user.dressing"
-- Treesitter
require "user.treesitter"
-- Git
require "user.gitsigns"

47
lua/user/alpha.lua Normal file
View File

@ -0,0 +1,47 @@
local status_ok, alpha = pcall(require, "alpha")
if not status_ok then
return
end
local dashboard = require("alpha.themes.dashboard")
dashboard.section.header.val = {
[[ ]],
[[ ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ]],
[[ ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ]],
[[ ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ]],
[[ ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ]],
[[ ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ]],
[[ ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]],
[[ ]],
}
dashboard.section.buttons.val = {
-- dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
-- dashboard.button("p", " Find project", ":Telescope projects <CR>"),
-- dashboard.button("t", " Find text", ":Telescope live_grep <CR>"),
-- dashboard.button("d", "✗ Delete session", "<cmd>SessionsManager delete_session<CR>"),
dashboard.button("s", " Sessions", "<cmd>SessionManager load_session<CR>"),
dashboard.button("r", " Recent", ":Telescope oldfiles <CR>"),
dashboard.button("f", " Find", ":Telescope find_files <CR>"),
dashboard.button("c", " Config", ":e $MYVIMRC <CR>"),
dashboard.button("i", " Info", "<cmd>e ~/.config/CheatSheet.md<cr>"),
dashboard.button("q", " Quit", ":qa<CR>"),
}
local function footer()
-- NOTE: requires the fortune-mod package to work
-- local handle = io.popen("fortune")
-- local fortune = handle:read("*a")
-- handle:close()
-- return fortune
return ""
end
dashboard.section.footer.val = footer()
dashboard.section.footer.opts.hl = "Type"
dashboard.section.header.opts.hl = "Include"
dashboard.section.buttons.opts.hl = "Keyword"
dashboard.opts.opts.noautocmd = true
-- vim.cmd([[autocmd User AlphaReady echo 'ready']])
alpha.setup(dashboard.opts)

37
lua/user/autocommands.lua Normal file
View File

@ -0,0 +1,37 @@
vim.cmd [[
augroup _general_settings
autocmd!
autocmd FileType qf,help,man,lspinfo nnoremap <silent> <buffer> q :close<CR>
autocmd TextYankPost * silent!lua require('vim.highlight').on_yank({higroup = 'Visual', timeout = 200})
autocmd BufWinEnter * :set formatoptions-=cro
autocmd FileType qf set nobuflisted
augroup end
augroup _git
autocmd!
autocmd FileType gitcommit setlocal wrap
autocmd FileType gitcommit setlocal spell
augroup end
augroup _markdown
autocmd!
autocmd FileType markdown setlocal wrap
autocmd FileType markdown setlocal spell
augroup end
augroup _auto_resize
autocmd!
autocmd VimResized * tabdo wincmd =
augroup end
augroup _alpha
autocmd!
autocmd User AlphaReady set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2
augroup end
]]
-- Autoformat
-- augroup _lsp
-- autocmd!
-- autocmd BufWritePre * lua vim.lsp.buf.formatting()
-- augroup end

33
lua/user/autolist.lua Normal file
View File

@ -0,0 +1,33 @@
-- local status_ok, autolist = pcall(require, "autolist")
-- if not status_ok then
-- return
-- end
-- return {
-- "gaoDean/autolist.nvim",
-- ft = {
-- "markdown",
-- "text",
-- "tex",
-- "plaintex",
-- },
-- config = function()
-- local autolist = require("autolist")
-- autolist.setup()
-- autolist.create_mapping_hook("i", "<CR>", autolist.new)
-- autolist.create_mapping_hook("i", "<Tab>", autolist.indent)
-- autolist.create_mapping_hook("i", "<S-Tab>", autolist.indent, "<C-D>")
-- autolist.create_mapping_hook("n", "o", autolist.new)
-- autolist.create_mapping_hook("n", "O", autolist.new_before)
-- -- autolist.create_mapping_hook("n", ">>", autolist.indent)
-- -- autolist.create_mapping_hook("n", "<<", autolist.indent)
-- autolist.create_mapping_hook("n", "<leader>r", autolist.force_recalculate)
-- autolist.create_mapping_hook("n", "<leader>x", autolist.invert_entry, "")
-- vim.api.nvim_create_autocmd("TextChanged", {
-- pattern = "-",
-- callback = function()
-- vim.cmd.normal({autolist.force_recalculate(nil, nil), bang = false})
-- end
-- })
-- end,
-- }

85
lua/user/autopairs.lua Normal file
View File

@ -0,0 +1,85 @@
-- Setup nvim-cmp.
local status_ok, npairs = pcall(require, "nvim-autopairs")
if not status_ok then
return
end
npairs.setup {
check_ts = true,
ts_config = {
lua = { "string", "source" },
javascript = { "string", "template_string" },
java = false,
},
disable_filetype = { "TelescopePrompt", "spectre_panel" },
disable_in_macro = true,
disable_in_replace_mode = true,
enable_moveright = true,
ignored_next_char = "",
enable_check_bracket_line = true, --- check bracket in same line
-- enable_afterquote = true, -- add bracket pairs after quote
-- enable_bracket_in_quote = true,
-- enable_abbr = false, -- trigger abbreviation
-- fast_wrap = {
-- map = "<C-l>",
-- chars = { "$", "{", "[", "(", '"', "'" },
-- pattern = string.gsub([=[[%'%"%)%>%]%)%}%,]]=], "%s+", ""),
-- offset = 1, -- Offset from pattern match
-- end_key = "L",
-- keys = "qwertyuiopzxcvbnmasdfghjkl",
-- check_comma = true,
-- highlight = "PmenuSel",
-- highlight_grey = "LineNr",
-- -- highlight = 'Search',
-- -- highlight_grey='Comment'
-- },
}
local npairs = require'nvim-autopairs'
local Rule = require'nvim-autopairs.rule'
local cond = require'nvim-autopairs.conds'
npairs.add_rules({
Rule("`","'","tex"),
Rule("$","$","tex"),
Rule(' ', ' ')
:with_pair(function(opts)
local pair = opts.line:sub(opts.col, opts.col + 1)
return vim.tbl_contains({ '$$', '()', '{}', '[]' }, pair)
end)
:with_move(cond.none())
:with_cr(cond.none())
:with_del(function(opts)
local col = vim.api.nvim_win_get_cursor(0)[2]
local context = opts.line:sub(col - 1, col + 2)
return vim.tbl_contains({ '$ $', '( )', '{ }', '[ ]' }, context)
end),
Rule("$ "," ","tex")
:with_pair(cond.not_after_regex(" "))
:with_del(cond.none()),
Rule("[ "," ","tex")
:with_pair(cond.not_after_regex(" "))
:with_del(cond.none()),
Rule("{ "," ","tex")
:with_pair(cond.not_after_regex(" "))
:with_del(cond.none()),
Rule("( "," ","tex")
:with_pair(cond.not_after_regex(" "))
:with_del(cond.none()),
}
)
require('nvim-autopairs').get_rule('$'):with_move(function(opts)
return opts.char == opts.next_char:sub(1, 1)
end)
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
local cmp_status_ok, cmp = pcall(require, "cmp")
if not cmp_status_ok then
return
end
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } })

168
lua/user/bufferline.lua Normal file
View File

@ -0,0 +1,168 @@
local status_ok, bufferline = pcall(require, "bufferline")
if not status_ok then
return
end
bufferline.setup {
options = {
numbers = "none", -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,
close_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
right_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
-- NOTE: this plugin is designed with this icon in mind,
-- and so changing this is NOT recommended, this is intended
-- as an escape hatch for people who cannot bear it for whatever reason
indicator_icon = nil,
indicator = { style = "icon", icon = ""},
buffer_close_icon = "",
-- buffer_close_icon = '',
modified_icon = "",
close_icon = "",
-- close_icon = '',
left_trunc_marker = "",
right_trunc_marker = "",
--- name_formatter can be used to change the buffer's label in the bufferline.
--- Please note some names can/will break the
--- bufferline so use this at your discretion knowing that it has
--- some limitations that will *NOT* be fixed.
-- name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"
-- -- remove extension from markdown files for example
-- if buf.name:match('%.md') then
-- return vim.fn.fnamemodify(buf.name, ':t:r')
-- end
-- end,
max_name_length = 30,
max_prefix_length = 30, -- prefix used when a buffer is de-duplicated
tab_size = 21,
diagnostics = false, -- | "nvim_lsp" | "coc",
diagnostics_update_in_insert = false,
-- diagnostics_indicator = function(count, level, diagnostics_dict, context)
-- return "("..count..")"
-- end,
-- NOTE: this will be called a lot so don't do any heavy processing here
-- custom_filter = function(buf_number)
-- -- filter out filetypes you don't want to see
-- if vim.bo[buf_number].filetype ~= "<i-dont-want-to-see-this>" then
-- return true
-- end
-- -- filter out by buffer name
-- if vim.fn.bufname(buf_number) ~= "<buffer-name-I-dont-want>" then
-- return true
-- end
-- -- filter out based on arbitrary rules
-- -- e.g. filter out vim wiki buffer from tabline in your work repo
-- if vim.fn.getcwd() == "<work-repo>" and vim.bo[buf_number].filetype ~= "wiki" then
-- return true
-- end
-- end,
offsets = { { filetype = "NvimTree", text = "", padding = 1 } },
show_buffer_icons = true,
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
-- can also be a table containing 2 custom separators
-- [focused and unfocused]. eg: { '|', '|' }
separator_style = "thin", -- | "thick" | "thin" | { 'any', 'any' },
enforce_regular_tabs = true,
always_show_bufferline = true,
-- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
-- -- add custom logic
-- return buffer_a.modified > buffer_b.modified
-- end
},
highlights = {
fill = {
fg = { attribute = "fg", highlight = "#ff0000" },
bg = { attribute = "bg", highlight = "TabLine" },
},
background = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
-- buffer_selected = {
-- fg = {attribute='fg',highlight='#ff0000'},
-- bg = {attribute='bg',highlight='#0000ff'},
-- gui = 'none'
-- },
buffer_visible = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
close_button = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
close_button_visible = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
-- close_button_selected = {
-- fg = {attribute='fg',highlight='TabLineSel'},
-- bg ={attribute='bg',highlight='TabLineSel'}
-- },
tab_selected = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" },
},
tab = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
tab_close = {
-- fg = {attribute='fg',highlight='LspDiagnosticsDefaultError'},
fg = { attribute = "fg", highlight = "TabLineSel" },
bg = { attribute = "bg", highlight = "Normal" },
},
duplicate_selected = {
fg = { attribute = "fg", highlight = "TabLineSel" },
bg = { attribute = "bg", highlight = "TabLineSel" },
underline = true,
},
duplicate_visible = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
underline = true,
},
duplicate = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
underline = true,
},
modified = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
modified_selected = {
fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" },
},
modified_visible = {
fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
separator = {
fg = { attribute = "bg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" },
},
separator_selected = {
fg = { attribute = "bg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" },
},
-- separator_visible = {
-- fg = {attribute='bg',highlight='TabLine'},
-- bg = {attribute='bg',highlight='TabLine'}
-- },
indicator_selected = {
fg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" },
bg = { attribute = "bg", highlight = "Normal" },
},
},
}

197
lua/user/cmp.lua Normal file
View File

@ -0,0 +1,197 @@
local cmp_status_ok, cmp = pcall(require, "cmp")
if not cmp_status_ok then
return
end
local snip_status_ok, luasnip = pcall(require, "luasnip")
if not snip_status_ok then
return
end
local check_backspace = function()
local col = vim.fn.col "." - 1
return col == 0 or vim.fn.getline("."):sub(col, col):match "%s"
end
--   פּ ﯟ   some other good icons
local kind_icons = {
Text = "",
Method = "m",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
}
-- find more here: https://www.nerdfonts.com/cheat-sheet
cmp.setup {
-- preselect = cmp.PreselectMode.None,
completion = {
-- autocomplete = {
-- cmp.TriggerEvent.TextChanged,
-- cmp.TriggerEvent.InsertEnter,
-- },
completeopt = "menu,noselect",
-- completeopt = "menuone,noinsert,noselect",
keyword_length = 1,
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body) -- For `luasnip` users.
end,
},
mapping = {
["<C-k>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
["<C-j>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
["<CR>"] = cmp.mapping.confirm({ select = false }),
-- Set `select` to `false` to only confirm selected
["<Tab>"] = cmp.mapping(function(fallback)
if luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif check_backspace() then
fallback()
else
fallback()
end
end, {
"i",
"s",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
-- if cmp.visible() then
-- cmp.select_prev_item()
if luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, {
"i",
"s",
}),
},
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
-- Kind icons
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
vim_item.menu = ({
-- omni = "[VimTex]",
omni = (vim.inspect(vim_item.menu):gsub('%"', "")),
nvim_lsp = "[LSP]",
luasnip = "[Snippet]",
buffer = "[Buffer]",
spell = "[Spell]",
latex_symbols = "[Symbols]",
cmdline = "[CMD]",
path = "[Path]",
})[entry.source.name]
return vim_item
end,
},
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "omni" },
{ name = "buffer", keyword_length = 3 },
{ name = "spell",
keyword_length = 4,
option = {
keep_all_entries = false,
enable_in_context = function()
return true
end
},
},
{ name = "latex_symbols",
filetype = { "tex", "latex" },
option = { cache = true }, -- avoids reloading each time
},
{ name = "path" },
}),
confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
},
view = {
entries = 'custom',
},
window = {
documentation = {
border = { "", "", "", "", "", "", "", "" },
}
},
performance = {
trigger_debounce_time = 500,
throttle = 550,
fetching_timeout = 80,
},
}
-- TODO zotero import
-- { name = "cmp_zotcite",
-- filetype = { "tex", "latex", "pandoc", "markdown", "rmd", "quarto" },
-- },
-- could use but seems like vimtex has access to .bib
-- `/` cmdline setup.
cmp.setup.cmdline('/', {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{name = 'buffer'}
}
})
-- `:` cmdline setup.
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{name = 'path'},
{name = 'cmdline'}
}
})
-- Toggle cmp entrirely
vim.g.cmptoggle = true -- nvim-cmp off by default if false
local cmp = require('cmp')
cmp.setup {
enabled = function()
return vim.g.cmptoggle
end
}
-- TODO was trying to get <C-j>, <C-k> to work in the command line
-- mapping = cmp.mapping.preset.cmdline({
-- ["<C-j>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
-- ["<C-k>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
-- ["<CR>"] = cmp.mapping.confirm({ select = true }),
-- ['<C-j>'] = cmp.mapping(cmp.mapping.select_next_item()),
-- ['<C-k>'] = cmp.mapping(cmp.mapping.select_prev_item()),
-- }),

37
lua/user/colorscheme.lua Normal file
View File

@ -0,0 +1,37 @@
-- GRUVBOX --
--[[
local colorscheme = "rose-pine"
-- local colorscheme = "gruvbox-baby"
-- OTHER ---
-- local colorscheme = "duskfox"
-- local colorscheme = "melange"
-- local colorscheme = "tokyonight-night"
-- local colorscheme = "onedark"
-- -- style options: dark, darker, cool, deep, warm, warmer, light
-- require('onedark').setup {
-- style = 'dark'
-- }
-- require('onedark').load()
-- GENERAL --
local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
if not status_ok then
return
end
]]--
function ColorSchemes(color)
color = color or "rose-pine"
vim.cmd.colorscheme(color)
--vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
--vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
end
ColorSchemes()

51
lua/user/comment.lua Normal file
View File

@ -0,0 +1,51 @@
local status_ok, comment = pcall(require, "Comment")
if not status_ok then
return
end
comment.setup {
---Add a space b/w comment and the line
padding = true,
---Whether the cursor should stay at its position
sticky = true,
---Lines to be ignored while (un)comment
ignore = nil,
---Function to call before (un)comment
pre_hook = nil,
mappings = {
---Operator-pending mapping; `gcc` `gbc` `gc[count]{motion}` `gb[count]{motion}`
basic = false,
---Extra mapping; `gco`, `gcO`, `gcA`
extra = false,
},
}
---LHS of toggle mappings in NORMAL mode
-- ---Enable keybindings
-- ---NOTE: If given `false` then the plugin won't create any mappings
---Function to call before (un)comment
-- pre_hook = function(ctx)
-- local U = require "Comment.utils"
--
-- local status_utils_ok, utils = pcall(require, "ts_context_commentstring.utils")
-- if not status_utils_ok then
-- return
-- end
--
-- local location = nil
-- if ctx.ctype == U.ctype.block then
-- location = utils.get_cursor_location()
-- elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then
-- location = utils.get_visual_start_location()
-- end
--
-- local status_internals_ok, internals = pcall(require, "ts_context_commentstring.internals")
-- if not status_internals_ok then
-- return
-- end
--
-- return internals.calculate_commentstring {
-- key = ctx.ctype == U.ctype.line and "__default" or "__multiline",
-- location = location,
-- }
-- end,

155
lua/user/dressing.lua Normal file
View File

@ -0,0 +1,155 @@
require('dressing').setup({
input = {
-- Set to false to disable the vim.ui.input implementation
enabled = true,
-- Default prompt string
default_prompt = "Input:",
-- Can be 'left', 'right', or 'center'
prompt_align = "center",
-- When true, <Esc> will close the modal
insert_only = true,
-- When true, input will start in insert mode.
start_in_insert = true,
-- These are passed to nvim_open_win
anchor = "SW",
border = "rounded",
-- 'editor' and 'win' will default to being centered
relative = "cursor",
-- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
prefer_width = 40,
width = nil,
-- min_width and max_width can be a list of mixed types.
-- min_width = {20, 0.2} means "the greater of 20 columns or 20% of total"
max_width = { 140, 0.9 },
min_width = { 20, 0.2 },
-- Window transparency (0-100)
-- winblend = 20, -- causing errors
-- Change default highlight groups (see :help winhl)
-- winhighlight = "", -- causing errors
-- Set to `false` to disable
mappings = {
n = {
["<Esc>"] = "Close",
["<CR>"] = "Confirm",
},
i = {
["<C-c>"] = "Close",
["<CR>"] = "Confirm",
["<Up>"] = "HistoryPrev",
["<Down>"] = "HistoryNext",
},
},
override = function(conf)
-- This is the config that will be passed to nvim_open_win.
-- Change values here to customize the layout
return conf
end,
-- see :help dressing_get_config
get_config = nil,
},
select = {
-- Set to false to disable the vim.ui.select implementation
enabled = true,
-- Priority list of preferred vim.select implementations
backend = { "telescope", "fzf_lua", "fzf", "builtin", "nui" },
-- Trim trailing `:` from prompt
trim_prompt = true,
-- Options for telescope selector
-- These are passed into the telescope picker directly. Can be used like:
-- telescope = require('telescope.themes').get_ivy({...})
telescope = nil,
-- Options for fzf selector
fzf = {
window = {
width = 0.5,
height = 0.4,
},
},
-- Options for fzf_lua selector
fzf_lua = {
winopts = {
width = 0.5,
height = 0.4,
},
},
-- Options for nui Menu
nui = {
position = "50%",
size = nil,
relative = "editor",
border = {
style = "rounded",
},
buf_options = {
swapfile = false,
filetype = "DressingSelect",
},
-- win_options = {
-- winblend = 10, -- might also cause errors
-- },
max_width = 80,
max_height = 40,
min_width = 40,
min_height = 10,
},
-- Options for built-in selector
builtin = {
-- These are passed to nvim_open_win
anchor = "NW",
border = "rounded",
-- 'editor' and 'win' will default to being centered
relative = "editor",
-- Window transparency (0-100)
-- winblend = 10, -- causing errors
-- Change default highlight groups (see :help winhl)
-- winhighlight = "", -- causing errors
-- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
-- the min_ and max_ options can be a list of mixed types.
-- max_width = {140, 0.8} means "the lesser of 140 columns or 80% of total"
width = nil,
max_width = { 140, 0.8 },
min_width = { 40, 0.2 },
height = nil,
max_height = 0.9,
min_height = { 10, 0.2 },
-- Set to `false` to disable
mappings = {
["<Esc>"] = "Close",
["<C-c>"] = "Close",
["<CR>"] = "Confirm",
},
override = function(conf)
-- This is the config that will be passed to nvim_open_win.
-- Change values here to customize the layout
return conf
end,
},
-- Used to override format_item. See :help dressing-format
format_item_override = {},
-- see :help dressing_get_config
get_config = nil,
},
})

48
lua/user/gitsigns.lua Normal file
View File

@ -0,0 +1,48 @@
local status_ok, gitsigns = pcall(require, "gitsigns")
if not status_ok then
return
end
gitsigns.setup {
signs = {
add = { hl = "GitSignsAdd", text = "", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" },
change = { hl = "GitSignsChange", text = "", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
delete = { hl = "GitSignsDelete", text = "", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
topdelete = { hl = "GitSignsDelete", text = "", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
changedelete = { hl = "GitSignsChange", text = "", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
},
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
interval = 1000,
follow_files = true,
},
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
},
current_line_blame_formatter_opts = {
relative_time = false,
},
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000,
preview_config = {
-- Options passed to nvim_open_win
border = "single",
style = "minimal",
relative = "cursor",
row = 0,
col = 1,
},
yadm = {
enable = false,
},
}

3
lua/user/illuminate.lua Normal file
View File

@ -0,0 +1,3 @@
vim.cmd('hi IlluminatedWordText guibg=#504945 gui=bold')
-- vim.cmd('hi IlluminatedWordRead guibg=#ffffff gui=bold')
-- vim.cmd('hi IlluminatedWordWrite guibg=#ffffff gui=bold')

6
lua/user/impatient.lua Normal file
View File

@ -0,0 +1,6 @@
local status_ok, impatient = pcall(require, "impatient")
if not status_ok then
return
end
impatient.enable_profile()

70
lua/user/indentline.lua Normal file
View File

@ -0,0 +1,70 @@
local status_ok, indent_blankline = pcall(require, "indent_blankline")
if not status_ok then
return
end
vim.g.indent_blankline_buftype_exclude = { "terminal", "nofile" }
vim.g.indent_blankline_filetype_exclude = {
"help",
"startify",
"dashboard",
"packer",
"neogitstatus",
"NvimTree",
"Trouble",
}
vim.g.indentLine_enabled = 1
-- vim.g.indent_blankline_char = "│"
vim.g.indent_blankline_char = ""
-- vim.g.indent_blankline_char = "▎"
vim.g.indent_blankline_show_trailing_blankline_indent = false
vim.g.indent_blankline_show_first_indent_level = true
vim.g.indent_blankline_use_treesitter = true
vim.g.indent_blankline_show_current_context = true
vim.g.indent_blankline_context_patterns = {
"class",
"return",
"function",
"method",
"^if",
"^while",
"jsx_element",
"^for",
"^object",
"^table",
"block",
"arguments",
"if_statement",
"else_clause",
"jsx_element",
"jsx_self_closing_element",
"try_statement",
"catch_clause",
"import_statement",
"operation_type",
}
-- HACK: work-around for https://github.com/lukas-reineke/indent-blankline.nvim/issues/59
vim.wo.colorcolumn = "99999"
-- vim.cmd [[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]]
-- vim.cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]]
-- vim.cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]]
-- vim.cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]]
-- vim.cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]]
-- vim.cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]]
-- vim.opt.list = true
-- vim.opt.listchars:append "space:⋅"
-- vim.opt.listchars:append "space:"
-- vim.opt.listchars:append "eol:↴"
indent_blankline.setup({
-- show_end_of_line = true,
-- space_char_blankline = " ",
show_current_context = true,
-- show_current_context_start = true,
-- char_highlight_list = {
-- "IndentBlanklineIndent1",
-- "IndentBlanklineIndent2",
-- "IndentBlanklineIndent3",
-- },
})

146
lua/user/keymaps.lua Normal file
View File

@ -0,0 +1,146 @@
local opts = { noremap = true, silent = true }
local term_opts = { silent = true }
-- Shorten function name
local keymap = vim.api.nvim_set_keymap
--Remap space as leader key
vim.g.mapleader = " "
--vim.g.maplocalleader = " "
--vim.g.maplocalleader = "Bslash"
vim.g.maplocalleader = "\\"
-- Modes
-- normal_mode = "n",
-- insert_mode = "i",
-- visual_mode = "v",
-- visual_block_mode = "x",
-- term_mode = "t",
-- command_mode = "c",
-- NOTE Check mapping with :verbose map ____
-- Unmappings
keymap("n", "<C-z>", "<nop>", opts)
-- Surround
-- vim.keymap.set("v", '<C-s>', 'S', { remap = true }) -- see surround.lua
-- Spelling
vim.keymap.set("n", "<C-s>", function()
require("telescope.builtin").spell_suggest(require("telescope.themes").get_cursor({
previewer = false,
layout_config = {
width = 50,
height = 15,
}
})
)
end, { remap = true })
-- vim.keymap.set("n", "<C-s>", "z=", { remap = true})
-- keymap("n", "<C-s>", "<cmd>Telescope spell_suggest<cr>", { remap = true})
-- Kill search highlights
keymap("n", "<CR>", ":noh<CR>", opts)
-- Find project files
vim.keymap.set("n", "<C-p>", function ()
require('telescope.builtin').find_files(require('telescope.themes').get_dropdown({previewer = false})
)
end, { remap = true })
-- Toggle comments
vim.keymap.set('n', '<C-c>', '<Plug>(comment_toggle_linewise_current)')
vim.keymap.set('x', '<C-c>', '<Plug>(comment_toggle_linewise_visual)')
-- Open help on word
keymap("n", "<S-m>", ':execute "help " . expand("<cword>")<cr>', opts)
-- Fix 'Y', 'E'
keymap("n", "Y", "y$", opts)
keymap("n", "E", "ge", opts)
keymap("v", "Y", "y$", opts)
keymap("v", "E", "ge", opts)
-- Avoid cutting text pasted over
keymap("v", "p", '"_dP', opts)
-- Center cursor
keymap("n", "m", "zz", opts)
keymap("v", "m", "zz", opts)
-- Better window navigation
keymap("n", "<C-h>", "<C-w>h", opts)
keymap("n", "<C-j>", "<C-w>j", opts)
keymap("n", "<C-k>", "<C-w>k", opts)
keymap("n", "<C-l>", "<C-w>l", opts)
-- Resize with arrows
-- keymap("n", "<C-Up>", ":resize -2<CR>", opts)
-- keymap("n", "<C-Down>", ":resize +2<CR>", opts)
keymap("n", "<A-Left>", ":vertical resize -2<CR>", opts)
keymap("n", "<A-Right>", ":vertical resize +2<CR>", opts)
keymap("n", "<A-h>", ":vertical resize -2<CR>", opts)
keymap("n", "<A-l>", ":vertical resize +2<CR>", opts)
-- Navigate buffers
keymap("n", "<BS>", ":bnext<CR>", opts)
keymap("n", "<S-TAB>", ":bprevious<CR>", opts)
-- Drag lines
keymap("n", "<A-j>", "<Esc>:m .+1<CR>==", opts)
keymap("n", "<A-k>", "<Esc>:m .-2<CR>==", opts)
keymap("x", "<A-j>", ":move '>+1<CR>gv-gv", opts)
keymap("x", "<A-k>", ":move '<-2<CR>gv-gv", opts)
keymap("v", "<A-j>", ":m'>+<CR>gv", opts)
keymap("v", "<A-k>", ":m-2<CR>gv", opts)
-- Toggle Terminal
keymap("n", "<c-t>",":ToggleTerm", opts)
--keymap("n", "<c-v>",":ToggleTermSendCurrentLine", opts)
-- Horizontal lime movments --
keymap("n", "<c-u>", "<c-u>zz", opts)
keymap("n", "<c-d>", "<c-d>zz", opts)
-- Horizontal lime movments --
keymap("v", "<S-h>", "g^", opts)
keymap("v", "<S-l>", "g$", opts)
keymap("n", "<S-h>", "g^", opts)
keymap("n", "<S-l>", "g$", opts)
-- Indentation
keymap("v", "<", "<gv", opts)
keymap("v", ">", ">gv", opts)
keymap("n", "<", "<S-v><<esc>", opts)
keymap("n", ">", "<S-v>><esc>", opts)
-- Navigate display lines
keymap("n", "J", "gj", opts)
keymap("n", "K", "gk", opts)
keymap("v", "J", "gj", opts)
keymap("v", "K", "gk", opts)
-- Terminal --
-- Better terminal navigation
-- keymap("t", "<C-h>", "<C-\\><C-N><C-w>h", term_opts)
-- keymap("t", "<C-j>", "<C-\\><C-N><C-w>j", term_opts)
-- keymap("t", "<C-k>", "<C-\\><C-N><C-w>k", term_opts)
-- keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", term_opts)

90
lua/user/lsp/handlers.lua Normal file
View File

@ -0,0 +1,90 @@
local M = {}
local status_cmp_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
if not status_cmp_ok then
return
end
M.capabilities = vim.lsp.protocol.make_client_capabilities()
M.capabilities.textDocument.completion.completionItem.snippetSupport = true
M.capabilities = cmp_nvim_lsp.default_capabilities(M.capabilities)
M.setup = function()
local signs = {
{ name = "DiagnosticSignError", text = "" },
{ name = "DiagnosticSignWarn", text = "" },
{ name = "DiagnosticSignHint", text = "" },
{ name = "DiagnosticSignInfo", text = "" },
}
for _, sign in ipairs(signs) do
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
end
local config = {
virtual_text = false, -- disable virtual text
signs = {
active = signs, -- show signs
},
update_in_insert = true,
underline = true,
severity_sort = true,
float = {
focusable = true,
style = "minimal",
border = "rounded",
source = "always",
header = "",
prefix = "",
},
}
vim.diagnostic.config(config)
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
border = "rounded",
})
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
border = "rounded",
})
end
local function lsp_keymaps(bufnr)
local opts = { noremap = true, silent = true }
local keymap = vim.api.nvim_buf_set_keymap
keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
keymap(bufnr, "n", "N", "<cmd>lua vim.lsp.buf.hover()<CR>", opts)
keymap(bufnr, "n", "gI", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
keymap(bufnr, "n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
-- keymap(bufnr, "n", "gl", "<cmd>lua vim.diagnostic.open_float()<CR>", opts)
-- keymap(bufnr, "n", "<leader>lf", "<cmd>lua vim.lsp.buf.format{ async = true }<cr>", opts)
-- keymap(bufnr, "n", "<leader>li", "<cmd>LspInfo<cr>", opts)
-- keymap(bufnr, "n", "<leader>lI", "<cmd>LspInstallInfo<cr>", opts)
-- keymap(bufnr, "n", "<leader>la", "<cmd>lua vim.lsp.buf.code_action()<cr>", opts)
-- keymap(bufnr, "n", "<leader>lj", "<cmd>lua vim.diagnostic.goto_next({buffer=0})<cr>", opts)
-- keymap(bufnr, "n", "<leader>lk", "<cmd>lua vim.diagnostic.goto_prev({buffer=0})<cr>", opts)
-- keymap(bufnr, "n", "<leader>lr", "<cmd>lua vim.lsp.buf.rename()<cr>", opts)
-- keymap(bufnr, "n", "<leader>ls", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
-- keymap(bufnr, "n", "<leader>lq", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
end
M.on_attach = function(client, bufnr)
if client.name == "tsserver" then -- turns off formatting
client.server_capabilities.documentFormattingProvider = false
end
if client.name == "lua_ls" then -- turns off formatting
client.server_capabilities.documentFormattingProvider = false
end
lsp_keymaps(bufnr)
local status_ok, illuminate = pcall(require, "illuminate")
if not status_ok then
return
end
illuminate.on_attach(client)
end
return M

9
lua/user/lsp/init.lua Normal file
View File

@ -0,0 +1,9 @@
local status_ok, _ = pcall(require, "lspconfig")
if not status_ok then
return
end
require "user.lsp.mason"
-- require "user.lsp.texlab"
require ("user.lsp.handlers").setup()
require "user.lsp.null-ls"

136
lua/user/lsp/mason.lua Normal file
View File

@ -0,0 +1,136 @@
require("mason").setup({
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = ""
}
}
})
require("mason-lspconfig").setup({
-- A list of servers to automatically install if they"re not already installed
--ensure_installed = { "pylsp", "gopls", "lua_ls", "rust_analyzer" },
--ensure_installed = { "pylsp", "lua_ls", "julials", "zls", "ltex", "texlab" },
ensure_installed = { "bashls", "pylsp", "lua_ls", "julials", "ltex", "texlab" },
})
-- Set different settings for different languages" LSP
-- LSP list: https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
-- How to use setup({}): https://github.com/neovim/nvim-lspconfig/wiki/Understanding-setup-%7B%7D
-- - the settings table is sent to the LSP
-- - on_attach: a lua callback function to run after LSP attaches to a given buffer
local lspconfig = require("lspconfig")
-- Customized on_attach function
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
local opts = { noremap = true, silent = true }
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, opts)
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, opts)
-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
local on_attach = function(_, bufnr)
-- Enable completion triggered by <c-x><c-o>
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
-- For Zig
--require("completion").on_attach()
-- See `:help vim.lsp.*` for documentation on any of the below functions
local bufopts = { noremap = true, silent = true, buffer = bufnr }
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts)
vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts)
vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts)
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, bufopts)
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, bufopts)
vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set("n", "<space>wl", function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, bufopts)
vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, bufopts)
vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, bufopts)
vim.keymap.set("n", "gr", vim.lsp.buf.references, bufopts)
vim.keymap.set("n", "<space>f", function() vim.lsp.buf.format { async = true } end, bufopts)
end
-- Configure each language
lspconfig.lua_ls.setup {
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you"re using (most likely LuaJIT in the case of Neovim)
version = "LuaJIT",
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { "vim" },
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
},
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
},
},
}
lspconfig.pylsp.setup({
on_attach = on_attach,
})
--lspconfig.julials.setup{}
--[[
]]--
lspconfig.julials.setup({
--on_attach = on_attach,
--symbol_cache_download = true,
--symbol_server = "https://symbol-server",
on_new_config = function(new_config, _)
local julia = vim.fn.expand("/usr/share/julia/bin/julia")
if require'lspconfig'.util.path.is_file(julia) then
vim.notify("julials loaded?!")
new_config.cmd[1] = julia
end
end
})
lspconfig.texlab.setup({
on_attach = on_attach,
})
lspconfig.ltex.setup({
settings = {
ltex = {
language = "en-GB",
},
},
})
lspconfig.zls.setup({
on_attach = on_attach,
})
lspconfig.bashls.setup({
on_attach = on_attach,
})
-- source: https://rust-analyzer.github.io/manual.html#nvim-lsp
--lspconfig.rust_analyzer.setup({
-- on_attach = on_attach,
-- settings = {
-- ["rust-analyzer"] = {
-- inlayHints = {
-- closingBraceHints = true, -- Whether to show inlay hints after a closing } to indicate what item it belongs to.
-- }
-- }
-- }
--})

24
lua/user/lsp/null-ls.lua Normal file
View File

@ -0,0 +1,24 @@
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
if not null_ls_status_ok then
return
end
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
local formatting = null_ls.builtins.formatting
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
local diagnostics = null_ls.builtins.diagnostics
-- local sources = { null_ls.builtins.diagnostics.cspell, null_ls.builtins.code_actions.cspell }
null_ls.setup({
debug = false,
sources = {
formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
formatting.black.with({ extra_args = { "--fast" } }),
formatting.stylua,
-- null_ls.builtins.diagnostics.cspell,
-- null_ls.builtins.code_actions.cspell,
null_ls.builtins.completion.spell,
-- diagnostics.flake8
},
})

View File

@ -0,0 +1,197 @@
local default_schemas = nil
local status_ok, jsonls_settings = pcall(require, "nlspsettings.jsonls")
if status_ok then
default_schemas = jsonls_settings.get_default_schemas()
end
local schemas = {
{
description = "TypeScript compiler configuration file",
fileMatch = {
"tsconfig.json",
"tsconfig.*.json",
},
url = "https://json.schemastore.org/tsconfig.json",
},
{
description = "Lerna config",
fileMatch = { "lerna.json" },
url = "https://json.schemastore.org/lerna.json",
},
{
description = "Babel configuration",
fileMatch = {
".babelrc.json",
".babelrc",
"babel.config.json",
},
url = "https://json.schemastore.org/babelrc.json",
},
{
description = "ESLint config",
fileMatch = {
".eslintrc.json",
".eslintrc",
},
url = "https://json.schemastore.org/eslintrc.json",
},
{
description = "Bucklescript config",
fileMatch = { "bsconfig.json" },
url = "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/8.2.0/docs/docson/build-schema.json",
},
{
description = "Prettier config",
fileMatch = {
".prettierrc",
".prettierrc.json",
"prettier.config.json",
},
url = "https://json.schemastore.org/prettierrc",
},
{
description = "Vercel Now config",
fileMatch = { "now.json" },
url = "https://json.schemastore.org/now",
},
{
description = "Stylelint config",
fileMatch = {
".stylelintrc",
".stylelintrc.json",
"stylelint.config.json",
},
url = "https://json.schemastore.org/stylelintrc",
},
{
description = "A JSON schema for the ASP.NET LaunchSettings.json files",
fileMatch = { "launchsettings.json" },
url = "https://json.schemastore.org/launchsettings.json",
},
{
description = "Schema for CMake Presets",
fileMatch = {
"CMakePresets.json",
"CMakeUserPresets.json",
},
url = "https://raw.githubusercontent.com/Kitware/CMake/master/Help/manual/presets/schema.json",
},
{
description = "Configuration file as an alternative for configuring your repository in the settings page.",
fileMatch = {
".codeclimate.json",
},
url = "https://json.schemastore.org/codeclimate.json",
},
{
description = "LLVM compilation database",
fileMatch = {
"compile_commands.json",
},
url = "https://json.schemastore.org/compile-commands.json",
},
{
description = "Config file for Command Task Runner",
fileMatch = {
"commands.json",
},
url = "https://json.schemastore.org/commands.json",
},
{
description = "AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment.",
fileMatch = {
"*.cf.json",
"cloudformation.json",
},
url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/cloudformation.schema.json",
},
{
description = "The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application.",
fileMatch = {
"serverless.template",
"*.sam.json",
"sam.json",
},
url = "https://raw.githubusercontent.com/awslabs/goformation/v5.2.9/schema/sam.schema.json",
},
{
description = "Json schema for properties json file for a GitHub Workflow template",
fileMatch = {
".github/workflow-templates/**.properties.json",
},
url = "https://json.schemastore.org/github-workflow-template-properties.json",
},
{
description = "golangci-lint configuration file",
fileMatch = {
".golangci.toml",
".golangci.json",
},
url = "https://json.schemastore.org/golangci-lint.json",
},
{
description = "JSON schema for the JSON Feed format",
fileMatch = {
"feed.json",
},
url = "https://json.schemastore.org/feed.json",
versions = {
["1"] = "https://json.schemastore.org/feed-1.json",
["1.1"] = "https://json.schemastore.org/feed.json",
},
},
{
description = "Packer template JSON configuration",
fileMatch = {
"packer.json",
},
url = "https://json.schemastore.org/packer.json",
},
{
description = "NPM configuration file",
fileMatch = {
"package.json",
},
url = "https://json.schemastore.org/package.json",
},
{
description = "JSON schema for Visual Studio component configuration files",
fileMatch = {
"*.vsconfig",
},
url = "https://json.schemastore.org/vsconfig.json",
},
{
description = "Resume json",
fileMatch = { "resume.json" },
url = "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
},
}
local function extend(tab1, tab2)
for _, value in ipairs(tab2 or {}) do
table.insert(tab1, value)
end
return tab1
end
local extended_schemas = extend(schemas, default_schemas)
local opts = {
settings = {
json = {
schemas = extended_schemas,
},
},
setup = {
commands = {
Format = {
function()
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 })
end,
},
},
},
}
return opts

View File

@ -0,0 +1,9 @@
return {
settings = {
python = {
analysis = {
typeCheckingMode = "off",
},
},
},
}

View File

@ -0,0 +1,16 @@
return {
settings = {
Lua = {
diagnostics = {
globals = { "vim" },
},
workspace = {
library = {
[vim.fn.expand("$VIMRUNTIME/lua")] = true,
[vim.fn.stdpath("config") .. "/lua"] = true,
},
},
},
},
}

93
lua/user/lualine.lua Normal file
View File

@ -0,0 +1,93 @@
local status_ok, lualine = pcall(require, "lualine")
if not status_ok then
return
end
local hide_in_width = function()
return vim.fn.winwidth(0) > 80
end
local diagnostics = {
"diagnostics",
sources = { "nvim_diagnostic" },
sections = { "error", "warn" },
symbols = { error = "", warn = "" },
colored = false,
update_in_insert = false,
always_visible = true,
}
local diff = {
"diff",
colored = false,
symbols = { added = "", modified = "", removed = "" }, -- changes diff symbols
cond = hide_in_width
}
local mode = {
"mode",
fmt = function(str)
return "-- " .. str .. " --"
end,
}
local filetype = {
"filetype",
icons_enabled = false,
icon = nil,
}
local branch = {
"branch",
icons_enabled = true,
icon = "",
}
local location = {
"location",
padding = 0,
}
-- cool function for progress
local progress = function()
local current_line = vim.fn.line(".")
local total_lines = vim.fn.line("$")
local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" }
local line_ratio = current_line / total_lines
local index = math.ceil(line_ratio * #chars)
return chars[index]
end
local spaces = function()
return "spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth")
end
lualine.setup({
options = {
icons_enabled = true,
theme = "auto",
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
disabled_filetypes = { "alpha", "dashboard", "NvimTree", "Outline" },
always_divide_middle = true,
},
sections = {
lualine_a = { branch, diagnostics },
lualine_b = { mode },
lualine_c = {},
-- lualine_x = { "encoding", "fileformat", "filetype" },
lualine_x = { diff, spaces, "encoding", filetype },
lualine_y = { location },
lualine_z = { progress },
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { "filename" },
lualine_x = { "location" },
lualine_y = {},
lualine_z = {},
},
tabline = {},
extensions = {},
})

3
lua/user/luasnip.lua Normal file
View File

@ -0,0 +1,3 @@
local ls = require("luasnip")
require("luasnip.loaders.from_snipmate").load({ paths = "~/.config/nvim/snippets/" })

99
lua/user/nvim-tree.lua Normal file
View File

@ -0,0 +1,99 @@
local status_ok, nvim_tree = pcall(require, "nvim-tree")
if not status_ok then
return
end
local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
if not config_status_ok then
return
end
local tree_cb = nvim_tree_config.nvim_tree_callback
-- vim.g.loaded_netrw = 1
-- vim.g.loaded_netrwPlugin = 1
vim.g.nvim_tree_respect_buf_cwd = 1
nvim_tree.setup {
-- sync_root_with_cwd = true,
-- respect_buf_cwd = true,
-- disable_netrw = true,
-- hijack_netrw = true,
-- respect_buf_cwd = false,
-- update_cwd = false,
actions = {
open_file = {
quit_on_open =true,
},
change_dir = {
enable = true,
global = false,
},
},
git = {
enable = true,
ignore = false,
timeout = 500,
},
filters = {
custom = { ".git" },
},
update_focused_file = {
enable = true,
update_cwd = true,
-- ignore_list = {},
-- update_root = true,
},
renderer = {
root_folder_modifier = ":t",
icons = {
glyphs = {
default = "",
symlink = "",
folder = {
arrow_open = "",
arrow_closed = "",
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
symlink_open = "",
},
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "",
untracked = "U",
deleted = "",
ignored = "",
},
},
},
},
diagnostics = {
enable = true,
show_on_dirs = true,
icons = {
hint = "",
info = "",
warning = "",
error = "",
},
},
--[[
view = {
width = 30,
side = "left",
mappings = {
list = {
{ key = { "l", "<CR>", "o" }, cb = tree_cb "edit" },
{ key = "h", cb = tree_cb "close_node" },
{ key = "v", cb = tree_cb "vsplit" },
},
},
},
]]--
}

77
lua/user/options.lua Normal file
View File

@ -0,0 +1,77 @@
local options = {
spell = true,
spelllang = { 'en_gb' },
backup = false, -- creates a backup file
clipboard = "unnamedplus", -- allows neovim to access the system clipboard
cmdheight = 2, -- more space in the neovim command line for displaying messages
completeopt = { "menuone", "noselect" }, -- mostly just for cmp
conceallevel = 0, -- so that `` is visible in markdown files
fileencoding = "utf-8", -- the encoding written to a file
hlsearch = true, -- highlight all matches on previous search pattern
ignorecase = true, -- ignore case in search patterns
mouse = "a", -- allow the mouse to be used in neovim
pumheight = 10, -- pop up menu height
showmode = false, -- we don't need to see things like -- INSERT -- anymore
showtabline = 2, -- always show tabs
smartcase = true, -- smart case
smartindent = false, -- make indenting smarter again
autoindent = false, -- make indenting smarter again
splitbelow = true, -- force all horizontal splits to go below current window
splitright = true, -- force all vertical splits to go to the right of current window
swapfile = false, -- creates a swapfile
termguicolors = true, -- set term gui colors (most terminals support this)
timeoutlen = 100, -- time to wait for a mapped sequence to complete (in milliseconds)
undofile = true, -- enable persistent undo
updatetime = 300, -- faster completion (4000ms default)
writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
expandtab = true, -- convert tabs to spaces
shiftwidth = 2, -- the number of spaces inserted for each indentation
tabstop = 2, -- insert 2 spaces for a tab
cursorline = true, -- highlight the current line
number = true, -- set numbered lines
relativenumber = true, -- set relative numbered lines
numberwidth = 4, -- set number column width to 2 {default 4}
signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time
wrap = true, -- display lines as one long line
breakindent = true, -- tab wrapped lines
linebreak = true, -- companion to wrap, don't split words
showbreak = " ", -- set indent of wrapped lines
scrolloff = 7, -- minimal number of screen lines to keep above and below the cursor
sidescrolloff = 7, -- minimal number of screen columns either side of cursor if wrap is `false`
guifont = "monospace:h17", -- the font used in graphical neovim applications
}
-- INDENT -- (see also vimtex.lua)
vim.g['tex_flavor'] = 'latex'
vim.g['tex_indent_items'] = 0 -- turn off enumerate indent
vim.g['tex_indent_brace'] = 0 -- turn off brace indent
-- vim.g['tex_indent_and'] = 0 -- whether to align with &
-- vim.g['latex_indent_enabled'] = 0
-- vim.g['vimtex_indent_enabled'] = 0
-- vim.g['did_indent'] = 1
vim.opt.shortmess:append "c"
for k, v in pairs(options) do
vim.opt[k] = v
end
vim.cmd "set whichwrap+=<,>,[,],h,l"
-- vim.cmd [[set iskeyword+=-]] -- unites dashed words
-- CLIPBOARD -- (for yanky)
-- Mac users delete to avoid "target string not available" error
--vim.g.clipboard = {
-- name = "xsel_override",
-- copy = {
-- ["+"] = "xsel --input --clipboard",
-- ["*"] = "xsel --input --primary",
-- },
-- paste = {
-- ["+"] = "xsel --output --clipboard",
-- ["*"] = "xsel --output --primary",
-- },
-- cache_enabled = 1,
--}

180
lua/user/plugins.lua Normal file
View File

@ -0,0 +1,180 @@
local fn = vim.fn
-- Automatically install packer
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(install_path)) > 0 then
PACKER_BOOTSTRAP = fn.system({
"git",
"clone",
"--depth",
"1",
"https://github.com/wbthomason/packer.nvim",
install_path,
})
print("Installing packer close and reopen Neovim...")
vim.cmd([[packadd packer.nvim]])
end
-- Autocommand that reloads neovim whenever you save the plugins.lua file
vim.cmd([[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins.lua source <afile> | PackerSync
augroup end
]])
-- Use a protected call so we don't error out on first use
local status_ok, packer = pcall(require, "packer")
if not status_ok then
return
end
-- Have packer use a popup window
packer.init({
display = {
open_fn = function()
return require("packer.util").float({ border = "rounded" })
end,
},
})
-- Packer
return packer.startup(function(use)
-- Have packer manage itself
use { "wbthomason/packer.nvim" }
-- Useful lua functions used by lots of plugins
use { "nvim-lua/plenary.nvim" }
-- General
use { "windwp/nvim-autopairs" }
use { "numToStr/Comment.nvim" }
use { "lewis6991/impatient.nvim" }
use { "kylechui/nvim-surround" }
use { "mbbill/undotree" } -- Vimscript
-- use { "mg979/vim-visual-multi" } -- Vimscript
use { "glacambre/firenvim" } -- Vimscript
--use { "gbprod/yanky.nvim" }
-- Mappings
use { "folke/which-key.nvim" }
-- Terminal
use { "akinsho/toggleterm.nvim" }
-- File Management
use { "kyazdani42/nvim-tree.lua" }
use { "kyazdani42/nvim-web-devicons" }
use { "Shatur/neovim-session-manager" }
-- Appearance
-- use { "akinsho/bufferline.nvim" }
use { "nvim-lualine/lualine.nvim" }
use { "lukas-reineke/indent-blankline.nvim" }
use { "goolord/alpha-nvim" }
use { "RRethy/vim-illuminate" }
-- Colorschemes
use {
"rose-pine/neovim",
as = "rose-pine",
}
-- use { "ellisonleao/gruvbox.nvim" }
-- use { "luisiacc/gruvbox-baby" }
-- use { "folke/tokyonight.nvim" }
-- use { "lunarvim/darkplus.nvim" }
-- use { "navarasu/onedark.nvim" }
-- use { "savq/melange" }
-- use { "EdenEast/nightfox.nvim" }
-- use { "navarasu/onedark.nvim" }
-- Cmp
use { "hrsh7th/nvim-cmp" }
use { "hrsh7th/cmp-nvim-lsp" }
-- buffer completions
use { "hrsh7th/cmp-buffer" }
-- path completions
use { "hrsh7th/cmp-path" }
-- snippet completions
use { "saadparwaiz1/cmp_luasnip" }
-- command completions
use { "hrsh7th/cmp-cmdline" }
-- spelling completions
use { "f3fora/cmp-spell" }
-- helps Vimtex completions
use { "hrsh7th/cmp-omni" }
-- use { "aspeddro/cmp-pandoc.nvim" }
-- LSP
-- enable LSP
use { "neovim/nvim-lspconfig" }
-- simple to use language server installer
use { "williamboman/mason.nvim", run = ":MasonUpdate" }
use { "williamboman/mason-lspconfig.nvim" }
-- for formatters and linters
use { "jose-elias-alvarez/null-ls.nvim" }
-- LaTeX
use { "lervag/vimtex" } -- essential for LaTeX; Vimscript
use { "kdheepak/cmp-latex-symbols" }
use { "jbyuki/nabla.nvim" } -- show symbols in editor
-- Markdown
use({
"gaoDean/autolist.nvim",
ft = {
"markdown",
"text",
"tex",
"plaintex",
},
config = function()
local autolist = require("autolist")
autolist.setup()
autolist.create_mapping_hook("i", "<CR>", autolist.new)
autolist.create_mapping_hook("i", "<Tab>", autolist.indent)
autolist.create_mapping_hook("i", "<S-Tab>", autolist.indent, "<C-D>")
autolist.create_mapping_hook("n", "o", autolist.new)
autolist.create_mapping_hook("n", "O", autolist.new_before)
-- autolist.create_mapping_hook("n", ">>", autolist.indent)
-- autolist.create_mapping_hook("n", "<<", autolist.indent)
autolist.create_mapping_hook("n", "<leader>r", autolist.force_recalculate)
autolist.create_mapping_hook("n", "<leader>x", autolist.invert_entry, "")
vim.api.nvim_create_autocmd("TextChanged", {
pattern = "-",
callback = function()
vim.cmd.normal({autolist.force_recalculate(nil, nil), bang = false})
end
})
end,
})
-- Snippets
--snippet engine
use { "L3MON4D3/LuaSnip" }
-- a bunch of snippets to use
-- use { "garbas/vim-snipmate" }
-- use { "rafamadriz/friendly-snippets" }
-- Telescope
use { "nvim-telescope/telescope.nvim" }
-- , commit = "76ea9a898d3307244dce3573392dcf2cc38f340f"
use { "stevearc/dressing.nvim" }
use { "nvim-telescope/telescope-bibtex.nvim",
config = function ()
require"telescope".load_extension("bibtex")
end,
}
-- Treesitter
use { "nvim-treesitter/nvim-treesitter" }
-- , commit = "8e763332b7bf7b3a426fd8707b7f5aa85823a5ac"
-- Git
use { "lewis6991/gitsigns.nvim" }
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
if PACKER_BOOTSTRAP then
require("packer").sync()
end
end)

17
lua/user/sessions.lua Normal file
View File

@ -0,0 +1,17 @@
local Path = require('plenary.path')
require('session_manager').setup({
sessions_dir = Path:new(vim.fn.stdpath('data'), 'sessions'), -- The directory where the session files will be saved.
path_replacer = '__', -- The character to which the path separator will be replaced for session files.
colon_replacer = '++', -- The character to which the colon symbol will be replaced for session files.
autoload_mode = require('session_manager.config').AutoloadMode.Disabled, -- Define what to do when Neovim is started without arguments. Possible values: Disabled, CurrentDir, LastSession
autosave_last_session = true, -- Automatically save last session on exit and on session switch.
autosave_ignore_not_normal = true, -- Plugin will not save a session when no buffers are opened, or all of them aren't writable or listed.
autosave_ignore_dirs = {}, -- A list of directories where the session will not be autosaved.
autosave_ignore_filetypes = { -- All buffers of these file types will be closed before the session is saved.
'gitcommit',
},
autosave_ignore_buftypes = {}, -- All buffers of these bufer types will be closed before the session is saved.
autosave_only_in_session = true, -- Always autosaves session. If true, only autosaves after a session is active.
max_path_length = 80, -- Shorten the display path if length exceeds this threshold. Use 0 if don't want to shorten the path at all.
})

22
lua/user/surround.lua Normal file
View File

@ -0,0 +1,22 @@
require("nvim-surround").setup({
keymaps = {
insert = false,
insert_line = false,
normal = false,
normal_cur = false,
normal_line = false,
normal_cur_line = false,
visual = "<S-s>",
visual_line = false,
delete = false,
change = false,
},
aliases = {
["a"] = false,
["b"] = false,
["B"] = false,
["r"] = false,
["q"] = false,
["s"] = false,
},
})

138
lua/user/telescope.lua Normal file
View File

@ -0,0 +1,138 @@
local status_ok, telescope = pcall(require, "telescope")
if not status_ok then
return
end
local actions = require "telescope.actions"
-- local job_opts = {
-- entry_maker = function(entry)
-- local _, _, filename, lnum, col, text = string.find(entry, "([^:]+):(%d+):(.*)")
-- local table = {
-- ordinal = text,
-- display = filename .. ":" .. text
-- }
-- return table
-- end
-- }
--
-- local opts = {
-- finder = finders.new_oneshot_job(rg, job_opts),
-- sorter = sorters.get_generic_fuzzy_sorter(),
-- }
telescope.setup {
defaults = {
prompt_prefix = "",
selection_caret = "",
path_display = { "smart" },
mappings = {
i = {
["<C-n>"] = actions.cycle_history_next,
["<C-p>"] = actions.cycle_history_prev,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
["<C-c>"] = actions.close,
["<Down>"] = actions.move_selection_next,
["<Up>"] = actions.move_selection_previous,
["<CR>"] = actions.select_default,
["<C-x>"] = actions.select_horizontal,
["<C-v>"] = actions.select_vertical,
["<C-t>"] = actions.select_tab,
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
["<PageUp>"] = actions.results_scrolling_up,
["<PageDown>"] = actions.results_scrolling_down,
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
["<C-l>"] = actions.complete_tag,
["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
},
n = {
["<esc>"] = actions.close,
["<CR>"] = actions.select_default,
["<C-x>"] = actions.select_horizontal,
["<C-v>"] = actions.select_vertical,
["<C-t>"] = actions.select_tab,
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
["j"] = actions.move_selection_next,
["k"] = actions.move_selection_previous,
["H"] = actions.move_to_top,
["M"] = actions.move_to_middle,
["L"] = actions.move_to_bottom,
["<Down>"] = actions.move_selection_next,
["<Up>"] = actions.move_selection_previous,
["gg"] = actions.move_to_top,
["G"] = actions.move_to_bottom,
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
["<PageUp>"] = actions.results_scrolling_up,
["<PageDown>"] = actions.results_scrolling_down,
["?"] = actions.which_key,
},
},
},
pickers = {
-- Default configuration for builtin pickers goes here:
-- picker_name = {
-- picker_config_key = value,
-- ...
-- }
-- Now the picker_config_key will be applied every time you call this
-- builtin picker
},
load_extensions = { "yank_history", "bibtex" },
extensions = {
bibtex = {
depth = 1,
-- Depth for the *.bib file
custom_formats = {},
-- Custom format for citation label
format = '',
-- Format to use for citation label.
-- Try to match the filetype by default, or use 'plain'
global_files = {'~/texmf/bibtex/bib/Zotero.bib'},
-- Path to global bibliographies (placed outside of the project)
search_keys = { 'author', 'year', 'title' },
-- Define the search keys to use in the picker
citation_format = '{{author}} ({{year}}), {{title}}.',
-- Template for the formatted citation
citation_trim_firstname = true,
-- Only use initials for the authors first name
citation_max_auth = 2,
-- Max number of authors to write in the formatted citation
-- following authors will be replaced by "et al."
context = false,
-- Context awareness disabled by default
context_fallback = true,
-- Fallback to global/directory .bib files if context not found
-- This setting has no effect if context = false
wrap = false,
-- Wrapping in the preview window is disabled by default
},
-- Your extension configuration goes here:
-- extension_name = {
-- extension_config_key = value,
-- }
-- please take a look at the readme of the extension you want to configure
},
}

72
lua/user/toggleterm.lua Normal file
View File

@ -0,0 +1,72 @@
local status_ok, toggleterm = pcall(require, "toggleterm")
if not status_ok then
return
end
toggleterm.setup({
--size = 20,
size = 8,
open_mapping = [[<c-t>]],
hide_numbers = true,
shade_filetypes = {},
shade_terminals = true,
shading_factor = 2,
start_in_insert = true,
insert_mappings = true,
persist_size = true,
-- direction = 'vertical' | 'horizontal' | 'tab' | 'float'
direction = "horizontal",
close_on_exit = true,
shell = vim.o.shell,
float_opts = {
border = "curved",
winblend = 0,
highlights = {
border = "Normal",
background = "Normal",
},
},
})
function _G.set_terminal_keymaps()
local opts = {noremap = true}
vim.api.nvim_buf_set_keymap(0, 't', '<esc>', [[<C-t><C-n>]], opts)
vim.api.nvim_buf_set_keymap(0, 't', 'jk', [[<C-t><C-n>]], opts)
vim.api.nvim_buf_set_keymap(0, 't', '<C-h>', [[<C-t><C-n><C-W>h]], opts)
vim.api.nvim_buf_set_keymap(0, 't', '<C-j>', [[<C-t><C-n><C-W>j]], opts)
vim.api.nvim_buf_set_keymap(0, 't', '<C-k>', [[<C-t><C-n><C-W>k]], opts)
vim.api.nvim_buf_set_keymap(0, 't', '<C-l>', [[<C-t><C-n><C-W>l]], opts)
end
vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
local Terminal = require("toggleterm.terminal").Terminal
local lazygit = Terminal:new({ cmd = "lazygit", hidden = true })
function _LAZYGIT_TOGGLE()
lazygit:toggle()
end
local node = Terminal:new({ cmd = "node", hidden = true })
function _NODE_TOGGLE()
node:toggle()
end
local ncdu = Terminal:new({ cmd = "ncdu", hidden = true })
function _NCDU_TOGGLE()
ncdu:toggle()
end
local htop = Terminal:new({ cmd = "htop", hidden = true })
function _HTOP_TOGGLE()
htop:toggle()
end
local python = Terminal:new({ cmd = "python", hidden = true })
function _PYTHON_TOGGLE()
python:toggle()
end

33
lua/user/treesitter.lua Normal file
View File

@ -0,0 +1,33 @@
local status_ok, configs = pcall(require, "nvim-treesitter.configs")
if not status_ok then
return
end
configs.setup({
ensure_installed = { -- list "all" or a list of languages
"markdown_inline",
"markdown",
"lua",
"python",
"vim",
"yaml",
--"perl",
"json",
"html",
"vimdoc",
--"haskell",
"gitignore",
"bibtex",
"julia",
},
ignore_install = { "latex" }, -- List of parsers to ignore installing
highlight = {
enable = true, -- false will disable the whole extension
disable = { "css", "latex" }, -- list of language that will be disabled
-- additional_vim_regex_highlighting = { "latex", "markdown" },
},
autopairs = {
enable = true,
},
indent = { enable = true, disable = { "latex", "python", "css", "julia" } },
})

2
lua/user/undotree.lua Normal file
View File

@ -0,0 +1,2 @@
vim.g["undotree_SetFocusWhenToggle"] = true

30
lua/user/vimtex.lua Normal file
View File

@ -0,0 +1,30 @@
-- PDF Viewer:
-- http://manpages.ubuntu.com/manpages/trusty/man5/zathurarc.5.html
vim.g['vimtex_view_method'] = 'zathura'
vim.g['vimtex_quickfix_mode'] =0
-- Ignore mappings
vim.g['vimtex_mappings_enabled'] = 1
-- Auto Indent
vim.g['vimtex_indent_enabled'] = 1
-- Syntax highlighting
vim.g['vimtex_syntax_enabled'] = 1
-- Error suppression:
-- https://github.com/lervag/vimtex/blob/master/doc/vimtex.txt
vim.g['vimtex_log_ignore'] = ({
'Underfull',
'Overfull',
'specifier changed to',
'Token not allowed in a PDF string',
})
--vim.g['vimtex_context_pdf_viewer'] = 'okular'
vim.g['vimtex_context_pdf_viewer'] = 'zathura'
-- vim.g['vimtex_complete_enabled'] = 1
-- vim.g['vimtex_compiler_progname'] = 'nvr'
-- vim.g['vimtex_complete_close_braces'] = 1

209
lua/user/whichkey.lua Normal file
View File

@ -0,0 +1,209 @@
local status_ok, which_key = pcall(require, "which-key")
if not status_ok then
return
end
local setup = {
plugins = {
marks = false, -- shows a list of your marks on ' and `
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
spelling = {
enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions
suggestions = 10, -- how many suggestions should be shown in the list?
},
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
-- No actual key bindings are created
presets = {
operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion
motions = false, -- adds help for motions
text_objects = false, -- help for text objects triggered after entering an operator
windows = false, -- default bindings on <c-w>
nav = false, -- misc bindings to work with windows
z = false, -- bindings for folds, spelling and others prefixed with z
g = false, -- bindings for prefixed with g
},
},
-- add operators that will trigger motion and text object completion
-- to enable native operators, set the preset / operators plugin above
-- operators = { gc = "Comments" },
key_labels = {
-- override the label used to display some keys. It doesn't effect WK in any other way.
-- For example:
-- ["<space>"] = "SPC",
-- ["<CR>"] = "RET",
-- ["<tab>"] = "TAB",
},
icons = {
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
separator = "", -- symbol used between a key and it's label
group = "+", -- symbol prepended to a group
},
popup_mappings = {
scroll_down = "<c-d>", -- binding to scroll down inside the popup
scroll_up = "<c-u>", -- binding to scroll up inside the popup
},
window = {
border = "rounded", -- none, single, double, shadow
position = "bottom", -- bottom, top
margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
winblend = 0,
},
layout = {
height = { min = 4, max = 25 }, -- min and max height of the columns
width = { min = 20, max = 50 }, -- min and max width of the columns
spacing = 3, -- spacing between columns
align = "left", -- align columns left, center or right
},
ignore_missing = true, -- enable this to hide mappings for which you didn't specify a label
hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate
show_help = true, -- show help message on the command line when the popup is visible
triggers = "auto", -- automatically setup triggers
-- triggers = {"<leader>"} -- or specify a list manually
triggers_blacklist = {
-- list of mode / prefixes that should never be hooked by WhichKey
-- this is mostly relevant for key maps that start with a native binding
-- most people should not need to change this
i = { "j", "k" },
v = { "j", "k" },
},
}
local opts = {
mode = "n", -- NORMAL mode
prefix = "<leader>",
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
silent = true, -- use `silent` when creating keymaps
noremap = true, -- use `noremap` when creating keymaps
nowait = true, -- use `nowait` when creating keymaps
}
-- hjknoyz
-- GENERAL MAPPINGS
local mappings = {
["b"] = { "<cmd>VimtexCompile<CR>" , "build" },
["c"] = { "<cmd>VimtexCountWords!<CR>" , "count" },
["d"] = { "<cmd>bdelete!<CR>" , "delete buffer" },
["e"] = { "<cmd>NvimTreeToggle<CR>" , "explorer" },
["i"] = { "<cmd>VimtexTocOpen<CR>" , "index" },
["q"] = { "<cmd>wqa!<CR>" , "quit" },
["r"] = { "" , "reorder" },
-- ["r"] = { "<cmd>lua require('autolist').force_recalculate()<CR>" , "reorder list" },
["u"] = { "<cmd>UndotreeToggle<CR>" , "undo" },
["v"] = { "<cmd>VimtexView<CR>" , "view" },
["w"] = { "<cmd>wa!<CR>" , "write" },
["x"] = { "" , "checkmark" },
-- ["x"] = { "<cmd>lua require('autolist').invert_entry()<CR>" , "checkmark" },
a = {
name = "ACTIONS",
a = { "<cmd>lua PdfAnnots()<CR>", "annotate"},
b = { "<cmd>terminal bibexport -o %:p:r.bib %:p:r.aux<CR>", "bib export"},
c = { "<cmd>VimtexClean<CR>" , "clean aux" },
g = { "<cmd>e ~/.config/nvim/templates/Glossary.tex<CR>", "edit glossary"},
h = { "<cmd>lua _HTOP_TOGGLE()<CR>", "htop" },
i = { "<cmd>IlluminateToggle<CR>" , "illuminate" },
l = { "<cmd>lua vim.g.cmptoggle = not vim.g.cmptoggle<CR>", "LSP"},
p = { '<cmd>lua require("nabla").popup()<CR>', "preview symbols"},
r = { "<cmd>VimtexErrors<CR>" , "report errors" },
s = { "<cmd>e ~/.config/nvim/snippets/tex.snippets<CR>", "edit snippets"},
u = { "<cmd>cd %:p:h<CR>" , "update cwd" },
-- w = { "<cmd>TermExec cmd='pandoc %:p -o %:p:r.docx'<CR>" , "word"},
v = { "<plug>(vimtex-context-menu)" , "vimtex menu" },
},
f = {
name = "FIND",
b = {
"<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})<CR>",
"buffers",
},
c = { "<cmd>Telescope bibtex<CR>" , "citations" },
f = { "<cmd>Telescope live_grep theme=ivy<CR>", "project" },
g = { "<cmd>Telescope git_branches<CR>", "branches" },
h = { "<cmd>Telescope help_tags<CR>", "help" },
k = { "<cmd>Telescope keymaps<CR>", "keymaps" },
-- m = { "<cmd>Telescope man_pages<CR>", "man pages" },
r = { "<cmd>Telescope registers<CR>", "registers" },
t = { "<cmd>Telescope colorscheme<CR>", "theme" },
y = { "<cmd>YankyRingHistory<CR>" , "yanks" },
-- c = { "<cmd>Telescope commands<CR>", "commands" },
-- r = { "<cmd>Telescope oldfiles<CR>", "recent" },
},
g = {
name = "GIT",
g = { "<cmd>lua _LAZYGIT_TOGGLE()<CR>", "lazygit" },
j = { "<cmd>lua require 'gitsigns'.next_hunk()<CR>", "next hunk" },
k = { "<cmd>lua require 'gitsigns'.prev_hunk()<CR>", "prev hunk" },
l = { "<cmd>lua require 'gitsigns'.blame_line()<CR>", "blame" },
p = { "<cmd>lua require 'gitsigns'.preview_hunk()<CR>", "preview hunk" },
r = { "<cmd>lua require 'gitsigns'.reset_hunk()<CR>", "reset hunk" },
s = { "<cmd>lua require 'gitsigns'.stage_hunk()<CR>", "stage hunk" },
u = {
"<cmd>lua require 'gitsigns'.undo_stage_hunk()<CR>", "unstage hunk" },
o = { "<cmd>Telescope git_status<CR>", "open changed file" },
b = { "<cmd>Telescope git_branches<CR>", "checkout branch" },
c = { "<cmd>Telescope git_commits<CR>", "checkout commit" },
d = { "<cmd>Gitsigns diffthis HEAD<CR>", "diff" },
},
m = {
name = "MANAGE SESSIONS",
s = { "<cmd>SessionManager save_current_session<CR>", "save" },
d = { "<cmd>SessionManager delete_session<CR>", "delete" },
l = { "<cmd>SessionManager load_session<CR>", "load" },
},
p = {
name = "PANDOC",
w = { "<cmd>TermExec cmd='pandoc %:p -o %:p:r.docx'<CR>" , "word"},
m = { "<cmd>TermExec cmd='pandoc %:p -o %:p:r.md'<CR>" , "markdown"},
h = { "<cmd>TermExec cmd='pandoc %:p -o %:p:r.html'<CR>" , "html"},
l = { "<cmd>TermExec cmd='pandoc %:p -o %:p:r.tex'<CR>" , "latex"},
p = { "<cmd>TermExec cmd='pandoc %:p -o %:p:r.pdf'<CR>" , "pdf"},
-- x = { "<cmd>echo "run: unoconv -f pdf path-to.docx"" , "word to pdf"},
},
s = {
name = "SURROUND",
s = { "<Plug>(nvim-surround-normal)", "surround" },
d = { "<Plug>(nvim-surround-delete)", "delete" },
c = { "<Plug>(nvim-surround-change)", "change" },
},
t = {
name = "TEMPLATES",
c = { "<cmd>PackerCompile<CR>", "Compile" },
p = {
"<cmd>read ~/.config/nvim/templates/PhilPaper.tex<CR>",
"PhilPaper.tex",
},
l = {
"<cmd>read ~/.config/nvim/templates/Letter.tex<CR>",
"Letter.tex",
},
g = {
"<cmd>read ~/.config/nvim/templates/Glossary.tex<CR>",
"Glossary.tex",
},
h = {
"<cmd>read ~/.config/nvim/templates/HandOut.tex<CR>",
"HandOut.tex",
},
b = {
"<cmd>read ~/.config/nvim/templates/PhilBeamer.tex<CR>",
"PhilBeamer.tex",
},
s = {
"<cmd>read ~/.config/nvim/templates/SubFile.tex<CR>",
"SubFile.tex",
},
r = {
"<cmd>read ~/.config/nvim/templates/Root.tex<CR>",
"Root.tex",
},
m = {
"<cmd>read ~/.config/nvim/templates/MultipleAnswer.tex<CR>",
"MultipleAnswer.tex",
},
},
}
which_key.setup(setup)
which_key.register(mappings, opts)

11
lua/user/yanky.lua Normal file
View File

@ -0,0 +1,11 @@
--require("yanky").setup({
-- ring = {
-- history_length = 100,
-- storage = "shada",
-- sync_with_numbered_registers = true,
-- cancel_event = "update",
-- },
-- system_clipboard = {
-- sync_with_ring = true,
-- },
--})

14976
minimal/minimal.bib Normal file

File diff suppressed because it is too large Load Diff

28
minimal/minimal.lua Normal file
View File

@ -0,0 +1,28 @@
-- vim.opt.runtimepath:prepend "PATH/nvim-lua/plenary.nvim"
-- vim.opt.runtimepath:prepend "PATH/hrsh7th/nvim-cmp"
-- vim.opt.runtimepath:prepend "PATH/hrsh7th/cmp-nvim-lsp"
-- vim.opt.runtimepath:prepend "PATH/hrsh7th/cmp-buffer"
-- vim.opt.runtimepath:prepend "PATH/hrsh7th/cmp-omni"
-- vim.opt.runtimepath:prepend "PATH/neovim/nvim-lspconfig"
-- vim.opt.runtimepath:prepend "PATH/williamboman/mason.nvim"
-- vim.opt.runtimepath:prepend "PATH/williamboman/mason-lspconfig.nvim"
vim.opt.runtimepath:prepend "/home/benjamin/.local/share/nvim/site/pack/packer/start/cmp-omni"
vim.opt.runtimepath:append "/home/benjamin/.local/share/nvim/site/pack/packer/start/cmp-omni/after"
vim.opt.runtimepath:prepend "/home/benjamin/.local/share/nvim/site/pack/packer/start/nvim-cmp"
vim.opt.runtimepath:append "/home/benjamin/.local/share/nvim/site/pack/packer/start/nvim-cmp/after"
vim.opt.runtimepath:prepend "/home/benjamin/.local/share/nvim/site/pack/packer/start/vimtex"
vim.opt.runtimepath:append "/home/benjamin/.local/share/nvim/site/pack/packer/start/vimtex/after"
vim.cmd[[filetype plugin indent on]]
local cmp = require("cmp")
cmp.setup({
sources = cmp.config.sources({
{ name = "omni" },
{ name = "nvim_lsp" },
{ name = "buffer", keyword_length = 3 },
}),
})
vim.g.vimtex_view_method = "zathura"

25
minimal/minimal.tex Normal file
View File

@ -0,0 +1,25 @@
\documentclass[11pt]{article}
\usepackage[a4paper, margin=4cm]{geometry}
\usepackage[english]{babel}
\begin{document}
\title{\sc TITLE}
\author{\it Benjamin Brast-McKie}
\date{\today}
\maketitle
\thispagestyle{empty}
\begin{abstract}
\noindent
ABSTRACT
\end{abstract}
\section{Introduction}\label{Intro}
\cite{Sta}
\bibliographystyle{plain}
\bibliography{minimal}
\thispagestyle{empty}
\end{document}

262
snippets/tex.snippets Normal file
View File

@ -0,0 +1,262 @@
# -- SNIPPETS --
#
# new glossary entry
snippet gloss "Glossary Entry" b
\newglossaryentry{${1:entry}}{
name = {${2:name}},
symbol = {\ensuremath{${3:symbol}}},
description = {${4:description}}
}
#
# custom theorem enviornment
snippet customthm "Custom Theorem" b
\vspace{.1in}
\begin{customthm}{(${1:label})}
${2:claim}
\end{customthm}
\begin{Answer}
${0}
\end{Answer}
#
# framed text enviornment
snippet textbox "Text Box" b
\begin{tcolorbox}
${0}
\end{tcolorbox}
#
# new command
snippet nc "New Command" b
\newcommand{${1:cmd}}[${2:opt}]{${3:realcmd}} ${0}
#
#usepackage
snippet up "Use Package" b
\usepackage[${1:options}]{${2:package}} ${0}
#
# \begin{}...\end{}
snippet begin "Begin End"
\begin{${1:env}}
${2:${VISUAL}}
\end{$1}${0}
#
# Align(ed)
snippet align "Align Env" b
\begin{align${1:ed}}
\label{${2:name}}
${0}
\end{align$1}
#
# Quote
snippet quote "Quotation" b
\vspace{-.1in}
\begin{quote}\singlespacing\small
${0}
\hfill(p.~${1})
\end{quote}
\vspace{.1in}
#
# Labelalign
snippet labelalign "Label Align" b
\vspace{.05in}
\begin{labelalign} %\small\onehalfspacing
\item[${2:\it} ${3:Label:}] ${0}
\end{labelalign}
\vspace{.05in}
#
# Enumerate
snippet enum "Enumerate" b
\begin{enumerate}
\item[${1:\it }${2:Label:}] ${0}
\end{enumerate}
#
# Itemize
snippet item "Itemize" b
\begin{itemize}
\item[${1:\it} ${2:Label:}] ${0}
\end{itemize}
#
#Item
snippet i "Item"
\item[${1:\it} ${2:Label:}] ${0}
#
# Cases
snippet case "Cases"
${1:LHS}=
\begin{cases}
${2:Value}, &\text{ if } ${3:case}\\
${4:Value}, &\text{ otherwise.} ${5:otherwise}.
\end{cases}${0}
#
# Section
snippet sec "Section" b
\section{${1:Name}}%
\label{sec:${2:$1}}
${0}
#
# Sub Section
snippet sub "Sub Section" b
\subsection{${1:Name}}%
\label{sub:${2:$1}}
${0}
#
# Sub Sub Section
snippet ssub "Sub Sub Section" b
\subsubsection{${1:Name}}%
\label{sub:${2:$1}}
${0}
#
# Hyper Section
snippet hsec "Hyper Section" b
\hypsection{${1:Name}}%
\label{sec:${2:$1}}
${0}
#
# Hyper Sub Section
snippet hsub "Hyper Sub Section" b
\hypsubsection{${1:Name}}%
\label{sub:${2:$1}}
${0}
#
# Hyper Sub Sub Section
snippet hssub "Hyper Sub Sub Section" b
\hypsubsubsection{${1:Name}}%
\label{sub:${2:$1}}
${0}
#
#Formating text: italic, bold, underline, small capital, emphase ..
snippet it "Italics" wi
\textit{${1}}${0}
#
snippet tt "Teletype" wi
\texttt{${1}}${0}
#
snippet bf "Bold" wi
\textbf{${1}}${0}
#
snippet sc "Small Caps" wi
\textsc{${1}}${0}
#
snippet tsub "Subscripted" i
\textsubscript{${1}}${0}
#
snippet tsup "Superscripted" i
\textsuperscript{${1}}${0}
#
#Math font
snippet mf "Mathfrak" w
\mathfrak{${1}}${0}
#
snippet mc "Mathcal" w
\mathcal{${1}}${0}
#
snippet ms "Mathscr" w
\mathscr{${1}}${0}
#
#misc
snippet fproof "Footnote Proof" bi
\footnote{\textit{Proof:} ${1:Begin} \qed}${0}
#
snippet lab "Label" wi
\label{${1:LABEL}}${0}
#
snippet fn "Footnote" wi
\footnote{${1:FOOTNOTE}}${0}
#
snippet fig "Figure environment" b
\begin{figure}
\begin{center}
\includegraphics[scale=${1}]{Figures/${2}}
\end{center}
\caption{${3}}
\label{fig:${4}}
\end{figure}
${0}
#
snippet tikz "Tikz environment" b
\begin{figure}[htpb]
\begin{center}
\begin{tikzpicture}[scale=${1:1}, transform shape]
${2}
\end{tikzpicture}
\end{center}
\caption{${3}}%
\label{fig:${4}}
\end{figure}
${0}
snippet lemma "Lemma" bi
\begin{lemma}
${0:${VISUAL}}
\end{lemma}
snippet prop "Proposition" bi
\begin{prop}[$1]
${0:${VISUAL}}
\end{prop}
snippet thrm "Theorem" bi
\begin{theorem}[$1]
${0:${VISUAL}}
\end{theorem}
snippet prf "Proof" bi
\begin{myproof}[$1]
${0:${VISUAL}}
\end{myproof}
snippet def "Definition" bi
\begin{definition}[$1]
${0:${VISUAL}}
\end{definition}
snippet prob "Problem" bi
\begin{problem}[$1]
${0:${VISUAL}}
\end{problem}
snippet corl "Corollary" bi
\begin{corollary}[$1]
${0:${VISUAL}}
\end{corollary}
snippet example "Example" bi
\begin{example}[$1]
${0:${VISUAL}}
\end{example}

144
templates/Glossary.tex Normal file
View File

@ -0,0 +1,144 @@
%%% GLOSSARY %%%
% Add to main file
% \usepackage[automake,nogroupskip,
% postpunc={dot},% full stop after description
% nostyles,% don't load default style packages
% % load glossaries-extra-stylemods.sty and glossary-tree.sty:
% stylemods={tree}
% ]{glossaries-extra}
% % \usepackage{glossary-superragged}
% \loadglsentries{Glossary}
% \newcommand{\g}{\glssymbol*}
% \makeglossaries
% \printglossary[style={index}]
%%% ENTRIES %%%
\newglossaryentry{Q}{% settings:
name = {Operator},
symbol = {\ensuremath{\mathcal{Q}}},
description = {stands for any $n$-place sentential operator.}
}
\newglossaryentry{L}{% settings:
name = {Language},
symbol = {\ensuremath{\mathcal{L}}},
description = {includes a set of sentence letters and operators}
}
\newglossaryentry{part}{% settings:
name = {Proper parthood},
symbol = {\ensuremath{\sqsubset}},
description = {is defined in terms of improper parthood}
}
\newglossaryentry{wfas}{% settings:
name = {Well-formed atomic sentences},
symbol = {\ensuremath{\operatorname{\texttt{wfas}}}},
description = {generated from a stock of sentence letters}
}
\newglossaryentry{wfs}{% settings:
name = {Well-formed sentences},
symbol = {\ensuremath{\operatorname{\texttt{wfs}}}},
description = {generated from a stock of sentence letters}
}
\newglossaryentry{ext}{% settings:
name = {Extensional sentences},
symbol = {\ensuremath{\operatorname{\texttt{ext}}}},
description = {generated from a stock of sentence letters}
}
\newglossaryentry{id}{% settings:
name = {Identity sentences},
symbol = {\ensuremath{\operatorname{\texttt{id}}}},
description = {generated from a stock of sentence letters}
}
\newglossaryentry{nid}{% settings:
name = {Non-identity sentences},
symbol = {\ensuremath{\operatorname{\texttt{nid}}}},
description = {generated from a stock of sentence letters}
}
\newglossaryentry{eq}{% settings:
name = {Equivalence sentences},
symbol = {\ensuremath{\operatorname{\texttt{eq}}}},
description = {generated from a stock of sentence letters}
}
\newglossaryentry{comp}{% settings:
name = {Complexity},
symbol = {\ensuremath{\operatorname{\texttt{comp}}}},
description = {of a sentence}
}
\newglossaryentry{lit}{% settings:
name = {Sentence letters},
symbol = {\ensuremath{\mathbb{L}}},
description = {make up the atoms of the language}
}
\newglossaryentry{glb}{% settings:
name = {Greatest lower bound},
symbol = {\ensuremath{\operatorname{\texttt{glb}}}},
description = {with respect to a given order}
}
\newglossaryentry{lub}{% settings:
name = {Least upper bound},
symbol = {\ensuremath{\operatorname{\texttt{lub}}}},
description = {with respect to a given order}
}
\newglossaryentry{s}{% settings:
name = {State space},
symbol = {\ensuremath{\mathcal{S}}},
description = {consisting of a set of states and partial order}
}
\newglossaryentry{M}{% settings:
name = {Model},
symbol = {\ensuremath{\mathcal{M}}},
description = {of the language assigns sentence letters to propositions}
}
\newglossaryentry{N}{% settings:
name = {Normal models},
symbol = {\ensuremath{\mathcal{N}}},
description = {is the class of all models in which sentence letter are assigned to normal propositions}
}
\newglossaryentry{C}{% settings:
name = {Contents},
symbol = {\ensuremath{\mathbb{C}}},
description = {defined over a state space}
}
\newglossaryentry{P}{% settings:
name = {Propositions},
symbol = {\ensuremath{\mathbb{P}}},
description = {defined over a state space}
}
\newglossaryentry{B}{% settings:
name = {Bilattice},
symbol = {\ensuremath{\mathcal{B}}},
description = {of propositions defined over a state space}
}
\newglossaryentry{R}{% settings:
name = {Regular models},
symbol = {\ensuremath{\mathcal{R}}},
description = {is the class of all models in which sentence letter are assigned to regular propositions}
}
\newglossaryentry{parteq}{% settings:
name = {Improper parthood},
symbol = {\ensuremath{\sqsubseteq}},
description = {is a partial order over a space of states}
}

81
templates/HandOut.tex Normal file
View File

@ -0,0 +1,81 @@
\documentclass[a4paper, 11pt]{article} % Font size (can be 10pt, 11pt or 12pt) and paper size (remove a4paper for US letter paper)
\usepackage[protrusion=true,expansion=true]{microtype} % Better typography
\usepackage{graphicx} % Required for including pictures
\usepackage{wrapfig} % Allows in-line images
\usepackage{enumitem} %%Enables control over enumerate and itemize environments
\usepackage{setspace}
\usepackage{amssymb, amsmath, mathrsfs} %%Math packages
\usepackage{stmaryrd}
\usepackage{mathtools}
\usepackage{mathpazo} % Use the Palatino font
\usepackage[T1]{fontenc} % Required for accented characters
\usepackage{array}
\usepackage{bibentry}
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
\linespread{1.05} % Change line spacing here, Palatino benefits from a slight increase by default
\newcommand{\corner}[1]{\ulcorner#1\urcorner} %%Corner quotes
\newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
\newcommand{\set}[1]{\lbrace#1\rbrace} %%Set brackets
\newcommand{\interpret}[1]{\llbracket#1\rrbracket} %%Double brackets
%\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
\makeatletter
\renewcommand\@biblabel[1]{\textbf{#1.}} % Change the square brackets for each bibliography item from '[1]' to '1.'
\renewcommand{\@listI}{\itemsep=0pt} % Reduce the space between items in the itemize and enumerate environments and the bibliography
\renewcommand{\maketitle}{ % Customize the title - do not edit title and author name here, see the TITLE block below
\begin{flushright} % Right align
{\LARGE\@title} % Increase the font size of the title
\vspace{10pt} % Some vertical space between the title and author name
{\@author} % Author name
\\\@date % Date
\vspace{30pt} % Some vertical space between the author block and abstract
\end{flushright}
}
%----------------------------------------------------------------------------------------
% TITLE
%----------------------------------------------------------------------------------------
\title{\textbf{Handout Title}} % Subtitle
\author{\textsc{CLASS OR TOPIC}\\ \em Benjamin Brast-McKie} % Institution
\date{\today} % Date
%----------------------------------------------------------------------------------------
\begin{document}
\maketitle % Print the title section
\thispagestyle{empty}
%----------------------------------------------------------------------------------------
\section*{First Section}
\begin{enumerate}[leftmargin=1.2in,labelsep=.15in] %,label=(\arabic*)]%,label=\roman*]
\item[\bf Definition:] Begin definition\dots
\end{enumerate}
\vfill
\bibliographystyle{Phil_Review} %%bib style found in bst folder, in bibtex folder, in texmf folder.
\bibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\end{document}

65
templates/Letter.tex Normal file
View File

@ -0,0 +1,65 @@
\documentclass[a4paper, 11pt]{article} % Font size (can be 10pt, 11pt or 12pt) and paper size (remove a4paper for US letter paper)
\usepackage[protrusion=true,expansion=true]{microtype} % Better typography
\usepackage{graphicx} % Required for including pictures
\usepackage{wrapfig} % Allows in-line images
\usepackage[top=1.25in, bottom=1in, left=1.65in, right=1.65in]{geometry} %%Margins
\usepackage{mathpazo} % Use the Palatino font
\usepackage[T1]{fontenc} % Required for accented characters
\linespread{1.05} % Change line spacing here, Palatino benefits from a slight increase by default
\makeatletter
\renewcommand\@biblabel[1]{\textbf{#1.}} % Change the square brackets for each bibliography item from '[1]' to '1.'
\renewcommand{\@listI}{\itemsep=0pt} % Reduce the space between items in the itemize and enumerate environments and the bibliography
\renewcommand{\maketitle}{ % Customize the title - do not edit title and author name here, see the TITLE block below
\begin{flushright}
{\large\@author} % Author name
\\\@date % Date
\end{flushright}
\begin{flushleft} % Right align
{\Large\@title} % Increase the font size of the title
\end{flushleft}
}
%----------------------------------------------------------------------------------------
% TITLE
%----------------------------------------------------------------------------------------
\title{\textbf{Dear NAME,}} % Subtitle
\author{DATE} % Author
\date{} % Date
%----------------------------------------------------------------------------------------
\begin{document}
\maketitle % Print the title section
%----------------------------------------------------------------------------------------
% ABSTRACT AND KEYWORDS
%----------------------------------------------------------------------------------------
%\renewcommand{\abstractname}{Summary} % Uncomment to change the name of the abstract to something else
\pagenumbering{gobble}
\vspace{0pt} % Some vertical space between the abstract and first section
\noindent Begin document...
\end{document}

View File

@ -0,0 +1,169 @@
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
%%% FORMATTING %%%
\documentclass[11pt]{article} %%Font size and document presets
\usepackage[top=1in, bottom=1in, left=1.25in, right=1.25in]{geometry} %%Margins
\usepackage[protrusion=true,expansion=true]{microtype} %% Makes subtle line spacing shifts
\usepackage{enumitem} %%Enables control over enumerate and itemize environments
\setenumerate{label=(\arabic*), wide=\parindent} %%Changes enumeration style: use \begin{enumerate}
\usepackage{setspace} %%Enables \doublespacing command for double linespacing
\expandafter\def\expandafter\quote\expandafter{\quote\onehalfspacing} %%Makes 1.5 quote spacing
%\usepackage{mdwlist} %% Compressed lists, use star: \begin{enumerate*} \end{'' *}
%\usepackage{indentfirst} %%Indents first line of first paragraph of each section
%\raggedbottom %% Lose the constraint on equalising page content
%\frenchspacing %%Makes the sentence spacing single spaced
%\usepackage{multicol} %% Use \begin{multicols}{3} for three columns and \end{multicols} after
%%% HEADER %%%
\usepackage{fancyhdr} %%Permits \pagestyle{fancy}
\pagestyle{fancy} %%Header style
\usepackage{titlesec} %%Header style
\titlespacing*{\subsection}{\parindent}{.25in}{\wordsep}% Reduces spacing after headings
\rhead{Benjamin Brast-McKie} %%Right header
\renewcommand{\sectionmark}[1]{\markright{$\S$\thesection\ #1}} %%Left header command
\lhead{\nouppercase{$\S$\rightmark}} %%Left header
%%% SECTIONS %%%
\usepackage{hyperref}
%\renewcommand\thesubsubsection{P\arabic{subsubsection}}
\usepackage{tocloft}%change alignment of subsubsection in toc
\cftsetindents{subsubsection}{0.228in}{0.346in} %change alignment of subsubsection in toc
\newcommand{\hypsection}[1]{\section[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypsubsection}[1]{\subsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypsubsubsection}[1]{\subsubsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
%%% FOOTNOTES %%%
\usepackage{scrextend} %%Allows for changes to foodnotes
\deffootnote[1em]{0in}{1em}{\textsuperscript{\thefootnotemark \ }} %%Footnote style
\setlength{\footnotesep}{0.125in} %%Space between footnotes
%%% SYMBOLS %%%
\usepackage{amssymb, amsmath, mathrsfs} %%Math packages
\usepackage{stmaryrd} %%Use \llbracket and \rrbracket for double brackets
%\usepackage{cancel} %%\cancel strikes out text diagonally
%\usepackage{fitch}
%\usepackage{turnstile}
%\usepackage{linguex}
%\usepackage{schemata}
%%% GRAPHICS %%%
%\usepackage{graphicx}
%\DeclareGraphicsExtensions{.pdf,.jpeg,.jpg}
%\usepackage{fancybox}
%\begin{figure}[ht]
%\shadowbox{\includegraphics{figure-file}}}
%\end{figure}
%%% CITATIONS %%%
%\usepackage{bibentry} %%Replace \bibliography{} with \nobibliography{} for no bib
%\usepackage{epigraph} %%Use \epigraph{text}{citation}
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
\usepackage{etoolbox} %%For \citepos
\usepackage{xstring} %%For \citepos
\makeatletter %definition of \citepos
%\patchcmd{\NAT@test}{\else \NAT@nm}{\else \NAT@nmfmt{\NAT@nm}}{}{} %turn on for numeric citations
\DeclareRobustCommand\citepos % define \citepos
{\begingroup
\let\NAT@nmfmt\NAT@posfmt% same as for citet except with a different name format
\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue
\@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
\let\NAT@orig@nmfmt\NAT@nmfmt %makes adapt to last names ending with an 's'.
\def\NAT@posfmt#1{%
\StrRemoveBraces{#1}[\NAT@temp]%
\IfEndWith{\NAT@temp}{s}
{\NAT@orig@nmfmt{#1'}}
{\NAT@orig@nmfmt{#1's}}}
\makeatother
%%% DEFINITIONS FOR LOGICAL SYMBOLS AND QUOTES %%%
%\newcommand{\corner}[1]{\ulcorner#1\urcorner} %%Corner quotes
%\newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
%\newcommand{\ttuple}[1]{$\langle$#1$\rangle$} %%Angle brackets
%\newcommand{\set}[1]{\lbrace#1\rbrace} %%Set brackets
%\newcommand{\interpret}[1]{\llbracket#1\rrbracket} %%Double brackets
%\newcommand{\sq}[1]{`#1'} %%Proper opened-closed single quotation marks
%\newcommand{\dq}[1]{``#1"} %%Proper opened-closed double quotation marks
%\newcommand{\qed}[0]{$\hfill\square$} %%Box at end of proofs
%\newcommand{\qed}[0]{$\hfill\Box$} %%Box at end of proofs
%\newcommand{\parteq}[0]{\sqsubseteq}
%\renewcommand{\part}[0]{\sqsubset}
%\newcommand{\ceil}[1]{\lceil#1\rceil} %%Corner quotes
%\newcommand{\lrceil}[1]{\llceil#1\rrceil} %%Corner quotes
%\DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n} %%For strictif
%\DeclareMathSymbol{\strictif}{\mathrel}{symbolsC}{74} %%For strictif
%\newcommand{\M}[0]{\mathcal{M}}
%\renewcommand{\L}[0]{\mathcal{L}}
%%% ENVIRONMENTS %%%
%\newenvironment{senum}[2][topsep=0in, itemsep=.05in]{\begin{enumerate}[#1,topsep=0in, itemsep=.05in]\begin{singlespace}#2}{\end{singlespace}\end{enumerate}\vspace{.175in}}
%%%%%%%%%%%%%%%%%%%%%%%%% TITLE %%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{TITLE}
\author{Benjamin Brast-McKie}
\date{\today}
\maketitle
\thispagestyle{empty}
\begin{abstract}
\noindent BEGIN ABSTRACT
\end{abstract}
\doublespacing
%%%%%%%%%%%%%%%%%%%%%%%% NOTES %%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
\section{Section Title}
%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{small} %%Makes bib small text size
\singlespacing %%Makes single spaced
\bibliographystyle{Analysis} %%bib style found in bst folder, in bibtex folder, in texmf folder.
%\setlength{\bibsep}{0.5pt} %%Changes spacing between bib entries
\bibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\thispagestyle{empty} %%Removes page numbers
\end{small} %%End makes bib small text size
\end{document}

View File

@ -0,0 +1,147 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Short Sectioned Assignment
% LaTeX Template
% Version 1.0 (5/5/12)
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% Original author:
% Frits Wenneker (http://www.howtotex.com)
%
% License:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------
\documentclass[paper=a4, fontsize=11pt]{scrartcl} % A4 paper and 11pt font size
\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
\usepackage{fourier} % Use the Adobe Utopia font for the document - comment this line to return to the LaTeX default
\usepackage[english]{babel} % English language/hyphenation
\usepackage{amsmath,amsfonts,amsthm} % Math packages
\usepackage{lipsum} % Used for inserting dummy 'Lorem ipsum' text into the template
\usepackage{sectsty} % Allows customizing section commands
\allsectionsfont{\centering \normalfont\scshape} % Make all sections centered, the default font and small caps
\usepackage{fancyhdr} % Custom headers and footers
\pagestyle{fancyplain} % Makes all pages in the document conform to the custom headers and footers
\fancyhead{} % No page header - if you want one, create it in the same way as the footers below
\fancyfoot[L]{} % Empty left footer
\fancyfoot[C]{} % Empty center footer
\fancyfoot[R]{\thepage} % Page numbering for right footer
\renewcommand{\headrulewidth}{0pt} % Remove header underlines
\renewcommand{\footrulewidth}{0pt} % Remove footer underlines
\setlength{\headheight}{13.6pt} % Customize the height of the header
\numberwithin{equation}{section} % Number equations within sections (i.e. 1.1, 1.2, 2.1, 2.2 instead of 1, 2, 3, 4)
\numberwithin{figure}{section} % Number figures within sections (i.e. 1.1, 1.2, 2.1, 2.2 instead of 1, 2, 3, 4)
\numberwithin{table}{section} % Number tables within sections (i.e. 1.1, 1.2, 2.1, 2.2 instead of 1, 2, 3, 4)
\setlength\parindent{0pt} % Removes all indentation from paragraphs - comment this line for an assignment with lots of text
%----------------------------------------------------------------------------------------
% TITLE SECTION
%----------------------------------------------------------------------------------------
\newcommand{\horrule}[1]{\rule{\linewidth}{#1}} % Create horizontal rule command with 1 argument of height
\title{
\normalfont \normalsize
\textsc{university, school or department name} \\ [25pt] % Your university, school and/or department name(s)
\horrule{0.5pt} \\[0.4cm] % Thin top horizontal rule
\huge Assignment Title \\ % The assignment title
\horrule{2pt} \\[0.5cm] % Thick bottom horizontal rule
}
\author{John Smith} % Your name
\date{\normalsize\today} % Today's date or a custom date
\begin{document}
\maketitle % Print the title
%----------------------------------------------------------------------------------------
% PROBLEM 1
%----------------------------------------------------------------------------------------
\section{Problem title}
\lipsum[2] % Dummy text
\begin{align}
\begin{split}
(x+y)^3 &= (x+y)^2(x+y)\\
&=(x^2+2xy+y^2)(x+y)\\
&=(x^3+2x^2y+xy^2) + (x^2y+2xy^2+y^3)\\
&=x^3+3x^2y+3xy^2+y^3
\end{split}
\end{align}
Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies
%------------------------------------------------
\subsection{Heading on level 2 (subsection)}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\begin{align}
A =
\begin{bmatrix}
A_{11} & A_{21} \\
A_{21} & A_{22}
\end{bmatrix}
\end{align}
Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.
%------------------------------------------------
\subsubsection{Heading on level 3 (subsubsection)}
\lipsum[3] % Dummy text
\paragraph{Heading on level 4 (paragraph)}
\lipsum[6] % Dummy text
%----------------------------------------------------------------------------------------
% PROBLEM 2
%----------------------------------------------------------------------------------------
\section{Lists}
%------------------------------------------------
\subsection{Example of list (3*itemize)}
\begin{itemize}
\item First item in a list
\begin{itemize}
\item First item in a list
\begin{itemize}
\item First item in a list
\item Second item in a list
\end{itemize}
\item Second item in a list
\end{itemize}
\item Second item in a list
\end{itemize}
%------------------------------------------------
\subsection{Example of list (enumerate)}
\begin{enumerate}
\item First item in a list
\item Second item in a list
\item Third item in a list
\end{enumerate}
%----------------------------------------------------------------------------------------
\end{document}

63
templates/NiceArticle.tex Normal file
View File

@ -0,0 +1,63 @@
\documentclass[a4paper, 11pt]{article} % Font size (can be 10pt, 11pt or 12pt) and paper size (remove a4paper for US letter paper)
\usepackage[protrusion=true,expansion=true]{microtype} % Better typography
\usepackage{graphicx} % Required for including pictures
\usepackage{wrapfig} % Allows in-line images
\usepackage{mathpazo} % Use the Palatino font
\usepackage[T1]{fontenc} % Required for accented characters
\linespread{1.05} % Change line spacing here, Palatino benefits from a slight increase by default
\makeatletter
\renewcommand\@biblabel[1]{\textbf{#1.}} % Change the square brackets for each bibliography item from '[1]' to '1.'
\renewcommand{\@listI}{\itemsep=0pt} % Reduce the space between items in the itemize and enumerate environments and the bibliography
\renewcommand{\maketitle}{ % Customize the title - do not edit title and author name here, see the TITLE block below
\begin{flushright} % Right align
{\LARGE\@title} % Increase the font size of the title
\vspace{50pt} % Some vertical space between the title and author name
{\large\@author} % Author name
\\\@date % Date
\vspace{40pt} % Some vertical space between the author block and abstract
\end{flushright}
}
%----------------------------------------------------------------------------------------
% TITLE
%----------------------------------------------------------------------------------------
\title{\textbf{Unnecessarily Long Essay Title}\\ % Title
Focused and Deliciously Witty Subtitle} % Subtitle
\author{\textsc{Ford Prefect} % Author
\\{\textit{Interstellar University}}} % Institution
\date{\today} % Date
%----------------------------------------------------------------------------------------
\begin{document}
\maketitle % Print the title section
%----------------------------------------------------------------------------------------
% ABSTRACT AND KEYWORDS
%----------------------------------------------------------------------------------------
%\renewcommand{\abstractname}{Summary} % Uncomment to change the name of the abstract to something else
\begin{abstract}
\end{abstract}
\hspace*{3,6mm}\textit{Keywords:}% Keywords
\vspace{30pt} % Some vertical space between the abstract and first section
\end{document}

168
templates/PhilBeamer.tex Normal file
View File

@ -0,0 +1,168 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Beamer Presentation
% LaTeX Template
% Version 1.0 (10/11/12)
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% License:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% PACKAGES AND THEMES
%----------------------------------------------------------------------------------------
\documentclass{beamer}
\mode<presentation> {
% The Beamer class comes with a number of default slide themes
% which change the colors and layouts of slides. Below this is a list
% of all the themes, uncomment each in turn to see what they look like.
%\usetheme{default}
%\usetheme{AnnArbor}
%\usetheme{Antibes}
%\usetheme{Bergen}
%\usetheme{Berkeley}
%\usetheme{Berlin}
%\usetheme{Boadilla}
%\usetheme{CambridgeUS}
%\usetheme{Copenhagen}
%\usetheme{Darmstadt} %Nice
%\usetheme{Dresden} %Nice
\usetheme{Frankfurt} %Nice
%\usetheme{Goettingen} %Sidebar
%\usetheme{Hannover}
%\usetheme{Ilmenau}
%\usetheme{JuanLesPins}
%\usetheme{Luebeck}
%\usetheme{Madrid}
%\usetheme{Malmoe}
%\usetheme{Marburg}
%\usetheme{Montpellier}
%\usetheme{PaloAlto}
%\usetheme{Pittsburgh}
%\usetheme{Rochester}
%\usetheme{Singapore}
%\usetheme{Szeged}
%\usetheme{Warsaw}
% As well as themes, the Beamer class has a number of color themes
% for any slide theme. Uncomment each of these in turn to see how it
% changes the colors of your current slide theme.
%\usecolortheme{albatross}
%\usecolortheme{beaver}
%\usecolortheme{beetle}
%\usecolortheme{crane}
%\usecolortheme{dolphin}
%\usecolortheme{dove}
%\usecolortheme{fly}
%\usecolortheme{lily}
%\usecolortheme{orchid}
%\usecolortheme{rose}
%\usecolortheme{seagull}
%\usecolortheme{seahorse}
%\usecolortheme{whale}
%\usecolortheme{wolverine}
%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line
%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line
%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line
}
%%% SYMBOLS AND STYLES %%%
\DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n}
\DeclareMathSymbol{\strictif}{\mathrel}{symbolsC}{74}
\usepackage{multicol}
\newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
\setbeamercovered{transparent}
\usepackage{graphicx}
%%% CITATIONS %%%
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
\newcommand\citeapl[2][]{\citeauthor{#2}'s#1} %%Use \citeapl is for possessive author name only.
\newcommand\citea[2][]{\citeauthor{#2}#1} %%Use \citea is for author name only, with optional page numbers.
\newcommand\citepl[2][]{\citeauthor{#2}'s (\citeyear[#1]{#2})}%%The command \citepl is for possessive citations.
\usepackage{bibentry}
\usepackage{graphicx} % Allows including images
\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables
%----------------------------------------------------------------------------------------
% TITLE PAGE
%----------------------------------------------------------------------------------------
\title[Short title]{Early Interpretations of the Barcan Formula} % The short title appears at the bottom of every slide, the full title is only on the title page
\author{Benjamin Brast-McKie} % Your name
\institute[Oxford] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space
{
University of Oxford \\ % Your institution for the title page
\medskip
\textit{benjamin.brast-mckie@philosophy.ox.ac.uk} % Your email address
}
\date{\today} % Date, can be changed to a custom date
\begin{document}
\begin{frame}
\titlepage % Print the title page as the first slide
\end{frame}
\begin{frame}
\frametitle{Plan}
\tableofcontents[hideallsubsections]
\end{frame}
%----------------------------------------------------------------------------------------
% PRESENTATION SLIDES
%----------------------------------------------------------------------------------------
%%% NOTES %%%
%Recall: \pause for
%Recall: ITEMIZE
%\begin{itemize}
%\item<1->
%\end{itemize}
%\onslide<1->{ SLIDE }
%\begin{itemize}[<+(1)->]
%\begin{itemize}[<+->]
%------------------------------------------------
\section{FIRST}
%------------------------------------------------
\subsection{FIRST SUB}
\begin{frame}
\frametitle{FRAME TITLE}
\end{frame}
%----------------------------------------------------------------------------------------
\nobibliography{Zotero}
\bibliographystyle{Phil_Review}
\end{document}

245
templates/PhilPaper.tex Normal file
View File

@ -0,0 +1,245 @@
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
%%% FORMATTING %%%
\documentclass[11pt]{article} %%Font size and document presets
\usepackage[a4paper, margin=4cm]{geometry} %Annina style
\usepackage[protrusion=true,expansion=true]{microtype} %% Makes subtle line spacing shifts
\usepackage{enumitem} %%Enables control over enumerate and itemize environments
\setenumerate{label=(\arabic*), wide=\parindent} %%Changes enumeration style: use \begin{enumerate}
\usepackage{setspace} %%Enables \doublespacing command for double linespacing
% \usepackage{multicol} %% Use \begin{multicols}{3} for three columns and \end{multicols} after
% \usepackage{adjmulticol}
\usepackage{verbatim} %% Enables \begin{comment} ... \end{comment}
% \usepackage{rotating} %% Enables rotating symbols
% \usepackage{lplfitch} %% logic package
% \usepackage{bold-extra} %% bold+small caps
% \usepackage{bussproofs}
%%% HEADER %%%
\usepackage{fancyhdr} %%Permits \pagestyle{fancy}
\pagestyle{fancy} %%Header style
\usepackage{titlesec} %%Header style
\titlespacing*{\subsection}{\parindent}{.25in}{\wordsep}% Reduces spacing after headings
\rhead{Benjamin Brast-McKie} %%Right header
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} %%Left header command
\lhead{\nouppercase{$\S$\rightmark}} %%Left header
%%% SECTIONS %%%
\usepackage{hyperref}
% \usepackage{tocloft}%change alignment of subsubsection in toc
% \cftsetindents{subsubsection}{0.228in}{0.346in} %change alignment of subsubsection in toc
\newcommand{\hypsection}[1]{\section[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypsubsection}[1]{\subsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypsubsubsection}[1]{\subsubsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
%%% FOOTNOTES %%%
\usepackage{scrextend} %%Allows for changes to foodnotes
\deffootnote[1em]{0in}{1em}{\textsuperscript{\thefootnotemark \ }} %%Footnote style
\setlength{\footnotesep}{0.125in} %%Space between footnotes
%%% SYMBOLS %%%
\usepackage{amssymb,amsmath,mathrsfs,mathabx,colonequals} %%Math packages
\usepackage{tipa}
%%% GLOSSARY %%%
% \usepackage[automake,%builds index
% nogroupskip,% makes spacing of entries uniform
% postpunc={dot},% full stop after description
% nostyles,% don't load default style packages
% % load glossaries-extra-stylemods.sty and glossary-tree.sty:
% stylemods={tree}
% ]{glossaries-extra}
% \loadglsentries{Glossary}% sources file from local project folder
% \newcommand{\g}{\glssymbol*}% unstar to allow hyperlinks
% \makeglossaries
% \printglossary[style={index}] %Add to end
%%% GRAPHICS %%%
% \usepackage{graphicx}
% \DeclareGraphicsExtensions{.pdf,.jpeg,.jpg}
% \usepackage{fancybox}
% \begin{figure}[ht]
% \shadowbox{\includegraphics{figure-file}}}
% \end{figure}
%%% CITATIONS %%%
% \usepackage{bibentry} %%Replace \bibliography{} with \nobibliography{} for no bib
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
\usepackage{etoolbox} %%For \citepos
\usepackage{xstring} %%For \citepos
\makeatletter %definition of \citepos
% \patchcmd{\NAT@test}{\else \NAT@nm}{\else \NAT@nmfmt{\NAT@nm}}{}{} %turn on for numeric citations
\DeclareRobustCommand\citepos% define \citepos
{\begingroup
\let\NAT@nmfmt\NAT@posfmt% same as for citet except with a different name format
\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue
\@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}
}
\let\NAT@orig@nmfmt\NAT@nmfmt %makes adapt to last names ending with an 's'.
\def\NAT@posfmt#1{%
\StrRemoveBraces{#1}[\NAT@temp]%
\IfEndWith{\NAT@temp}{s}
{\NAT@orig@nmfmt{#1'}}
{\NAT@orig@nmfmt{#1's}}}
\makeatother
%%% DEFINITIONS FOR LOGICAL SYMBOLS AND QUOTES %%%
% \newcommand{\corner}[1]{\ulcorner#1\urcorner} %%Corner quotes
% \newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
% \newcommand{\set}[1]{\lbrace#1\rbrace} %%Set brackets
% \newcommand{\qedp}[0]{$\hfill\Diamond$} %%Box at end of proofs
% \newcommand{\ceil}[1]{\lceil#1\rceil} %%Corner quotes
% \newcommand{\floor}[1]{\lfloor#1\rfloor} %%Corner quotes
%%% ENVIRONMENTS %%%
\usepackage{amsthm}
\newtheoremstyle{theorem}
{} % Space above
{} % Space below
{\normalfont} % Theorem body font % (default is "\upshape")
{} % Indent amount
{\bfseries} % Theorem head font % (default is \mdseries)
{} % Punctuation after theorem head % default: no punctuation
{.18in} % Space after theorem head
{} % Theorem head spec
\theoremstyle{theorem}
\newtheorem{theorem}{}% theorem counter resets every \subsection
\renewcommand{\thetheorem}{T\arabic{theorem}}% Remove subsection from theorem counter representation
\newtheoremstyle{Lthm}
{} % Space above
{} % Space below
{\normalfont} % Theorem body font % (default is "\upshape")
{} % Indent amount
{\bfseries} % Theorem head font % (default is \mdseries)
{} % Punctuation after theorem head % default: no punctuation
{.18in} % Space after theorem head
{} % Theorem head spec
\theoremstyle{Lthm}
\newtheorem{Lthm}{}[subsection]% theorem counter resets every \subsection
\renewcommand{\theLthm}{L\arabic{Lthm}}% Remove subsection from theorem counter representation
\newtheoremstyle{Pthm}
{} % Space above
{} % Space below
{\normalfont} % Theorem body font % (default is "\upshape")
{} % Indent amount
{\bfseries} % Theorem head font % (default is \mdseries)
{} % Punctuation after theorem head % default: no punctuation
{.18in} % Space after theorem head
{} % Theorem head spec
\theoremstyle{Pthm}
\newtheorem{Pthm}{}[subsection]% theorem counter resets every \subsection
\renewcommand{\thePthm}{P\arabic{Pthm}}% Remove subsection from theorem counter representation
\usepackage{calc}
\makeatletter
\newcommand{\labelalign@original@item}{}
\let\labelalign@original@item\item
\newcommand*{\labelalign@envir}{labelalign}
\newlength{\labelalign@totalleftmargin}
\newlength{\labelalign@linewidth}
\newcommand{\labelalign@makelabel}[1]{\llap{#1}}%
\newcommand{\labelalign@item}[1][]{%
\setlength{\@totalleftmargin}%
{\labelalign@totalleftmargin+\widthof{\textbf{#1 }}+.25in-\leftmargin}%
\setlength{\linewidth}
{\labelalign@linewidth-\widthof{\textbf{#1 }}-.25in+\leftmargin}%
\par\parshape \@ne \@totalleftmargin \linewidth
\labelalign@original@item[\textbf{#1}]%
}
\newenvironment{labelalign}
{\list{}{\setlength{\labelwidth}{0in}%
\let\makelabel\labelalign@makelabel}%
\setlength{\labelalign@totalleftmargin}{\@totalleftmargin}%
\setlength{\labelalign@linewidth}{\linewidth}%
\renewcommand{\item}{\ifx\@currenvir\labelalign@envir
\expandafter\labelalign@item
\else
\expandafter\labelalign@original@item
\fi}}
{\endlist}
\makeatother
%%% CROSS REFERENCES %%%
\newcounter{acount}
\newcommand{\aitem}[1]{%
\item[\bf #1] \refstepcounter{acount}\label{#1}
}
\newcommand{\aref}[1]{\hyperref[#1]{#1}}
%%%%%%%%%%%%%%%%%%%%%%%%% TITLE %%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{\sc TITLE} %\thanks{}
\author{\it Benjamin Brast-McKie}
\date{\today}
\maketitle
\thispagestyle{empty}
% \vspace{.1in}
\begin{abstract}
\noindent
ABSTRACT
\end{abstract}
%%%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%
\hypsection{Introduction}\label{Intro}
%%%%%%%%%%%%%%%%%%%%%%%%% GLOSSARY %%%%%%%%%%%%%%%%%%%%%%%%%
% \printglossary[style={index}] %Add to end
%%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{footnotesize} %%Makes bib footnotesize text size
\singlespacing %%Makes single spaced
\bibliographystyle{Phil_Review} %%bib style found in bst folder, in bibtex folder, in texmf folder.
\setlength{\bibsep}{5pt} %%Changes spacing between bib entries
\bibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\thispagestyle{empty} %%Removes page numbers
\end{footnotesize} %%End makes bib small text size
\end{document}

207
templates/Root.tex Normal file
View File

@ -0,0 +1,207 @@
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
%%% FORMATTING %%%
\documentclass[11pt]{report} %%Font size and document presets
\usepackage[top=1in, bottom=1in, left=1.25in, right=1.25in]{geometry} %%Margins
\usepackage[protrusion=true,expansion=true]{microtype} %% Makes subtle line spacing shifts
\usepackage{enumitem} %%Enables control over enumerate and itemize environments
\setenumerate{label=(\arabic*), wide=\parindent} %%Changes enumeration style: use \begin{enumerate}
\usepackage{setspace} %%Enables \doublespacing command for double linespacing
\expandafter\def\expandafter\quote\expandafter{\quote\onehalfspacing} %%Makes 1.5 quote spacing
%\usepackage{mdwlist} %% Compressed lists, use star: \begin{enumerate*} \end{'' *}
%\usepackage{indentfirst} %%Indents first line of first paragraph of each section
%\raggedbottom %% Lose the constraint on equalising page content
%\frenchspacing %%Makes the sentence spacing single spaced
%\usepackage{multicol} %% Use \begin{multicols}{3} for three columns and \end{multicols} after
%%% MULTIPLE FILES %%%
\usepackage{subfiles}
\usepackage{hyperref}
\usepackage{bibentry}
%%% HYPER SECTIONS %%%
\usepackage{bold-extra} %% bold+small caps
\usepackage{titlesec}
\usepackage{tocloft} %% change alignment of subsubsection in toc
%\cftsetindents{subsubsubsection}{0.228in}{0.346in} %change alignment of subsubsection in toc
\newcommand{\hypsection}[1]{\section[\bfseries{\scshape{#1}}]{\hyperlink{toc}{\sc \textbf{#1}}}} %%use to jump back to toc
\newcommand{\schapter}[1]{\chapter[\bfseries{\scshape{#1}}]{\hyperlink{toc}{\LARGE#1}}} %%use to jump back to toc
\newcommand{\hypsubsection}[1]{\subsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypsubsubsection}[1]{\subsubsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypasubsubsection}[1]{\subsubsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\Psubsection}[2][]{\subsubsubsection[\normalfont{#2}]{\hyperlink{#1}{\normalfont{#2}}}\label{#1}} %%use to jump back to toc
\newcommand{\Lsubsection}[2][]{\Lthm[\normalfont{#2}]{\hyperlink{#1}{\normalfont{#2}}}\label{#1}} %%use to jump back to toc
% \renewcommand{\href}[1]{\hypertarget{#1}{\ref{#1}}} %%use to jump back to toc
\makeatletter
\renewcommand{\href}[1]{\Hy@raisedlink{\hypertarget{#1}{}}\ref{#1}}
\makeatother
\titleclass{\subsubsubsection}{straight}[\subsection]
\newcounter{subsubsubsection}[subsubsection]
\renewcommand\thesubsubsubsection{\arabic{section}.\arabic{subsubsubsection}}
\renewcommand\theparagraph{\arabic{section}.\arabic{paragraph}} % optional; useful if paragraphs are to be numbered
\titleformat{\subsubsubsection}
{\normalfont\normalsize\bfseries}{\thesubsubsubsection}{1em}{}
\titlespacing*{\subsubsubsection}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titleformat{\paragraph}
{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
\titlespacing*{\paragraph}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{-2.5ex\@plus -1ex \@minus -.25ex}%
{1.25ex \@plus .25ex}%
{\normalfont\normalsize\bfseries}}
\def\toclevel@subsubsubsection{2}
\def\toclevel@paragraph{4}
\def\l@subsubsubsection{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@paragraph{\@dottedtocline{4}{10em}{5em}}
\makeatother
\setcounter{secnumdepth}{2}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{1}
%\renewcommand\thesection{\sc\LARGE Chapter \arabic{section}:}
%\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}}
\renewcommand\thesubsubsubsection{P\arabic{subsubsubsection}}
\renewcommand\theparagraph{L\arabic{paragraph}}
%%% HEADER %%%
\usepackage{fancyhdr} %%Permits \pagestyle{fancy}
\pagestyle{fancy} %%Header style
\usepackage{titlesec} %%Header style
\titlespacing*{\subsection}{\parindent}{.25in}{\wordsep}% Reduces spacing after headings
\rhead{Benjamin Brast-McKie} %%Right header
\renewcommand{\sectionmark}[1]{\markright{$\S$\thesection\ #1}} %%Left header command
\renewcommand{\chaptermark}[1]{\markright{#1}{}}
\lhead{\nouppercase{\rightmark}} %%Left header
%%% FOOTNOTES %%%
\usepackage{scrextend} %%Allows for changes to foodnotes
\deffootnote[1em]{0in}{1em}{\textsuperscript{\thefootnotemark \ }} %%Footnote style
\setlength{\footnotesep}{0.125in} %%Space between footnotes
%%% SYMBOLS %%%
\usepackage{amssymb, amsmath, mathrsfs} %%Math packages
\usepackage{stmaryrd} %%Use \llbracket and \rrbracket for double brackets
%\usepackage{cancel} %%\cancel strikes out text diagonally
%\usepackage{fitch}
%\usepackage{turnstile}
%\usepackage{linguex}
%\usepackage{schemata}
%%% GRAPHICS %%%
%\usepackage{graphicx}
%\DeclareGraphicsExtensions{.pdf,.jpeg,.jpg}
%\usepackage{fancybox}
%\begin{figure}[ht]
%\shadowbox{\includegraphics{figure-file}}}
%\end{figure}
%%% CITATIONS %%%
%\usepackage{bibentry} %%Replace \bibliography{} with \nobibliography{} for no bib
%\usepackage{epigraph} %%Use \epigraph{text}{citation}
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
\newcommand\citepl[2][]{\citeauthor{#2}'s (\citeyear[#1]{#2})} %%Use \citepl for possessive citation.
\newcommand\citea[2][]{\citeauthor{#2}#1} %%Use \citea is for author name only, with optional page numbers.
\newcommand\citeapl[2][]{\citeauthor{#2}'s#1} %%Use \citeapl is for possessive author name only.
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
%%% DEFINITIONS FOR LOGICAL SYMBOLS AND QUOTES %%%
%\newcommand{\corner}[1]{\ulcorner#1\urcorner} %%Corner quotes
%\newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
%\newcommand{\ttuple}[1]{$\langle$#1$\rangle$} %%Angle brackets
%\newcommand{\set}[1]{\lbrace#1\rbrace} %%Set brackets
%\newcommand{\interpret}[1]{\llbracket#1\rrbracket} %%Double brackets
%\newcommand{\sq}[1]{`#1'} %%Proper opened-closed single quotation marks
%\newcommand{\dq}[1]{``#1"} %%Proper opened-closed double quotation marks
%\newcommand{\qed}[0]{$\hfill\square$} %%Box at end of proofs
%%% ENVIRONMENTS %%%
%\newenvironment{senum}[2][topsep=0in, itemsep=.05in]{\begin{enumerate}[#1,topsep=0in, itemsep=.05in]\begin{singlespace}#2}{\end{singlespace}\end{enumerate}\vspace{.175in}}
%%%%%%%%%%%%%%%%%%%%%%%%% TITLE %%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{TITLE}
\author{Benjamin Brast-McKie}
\date{\today}
\maketitle
\thispagestyle{empty}
\begin{abstract}
\noindent BEGIN ABSTRACT
\end{abstract}
\setlength\cftaftertoctitleskip{10pt}
\addtocontents{toc}{\protect\hypertarget{toc}{}}
\renewcommand{\contentsname}{\LARGE\sc Table of Contents}
\strut\vspace{-50pt}
\tableofcontents
\thispagestyle{empty}
\pagebreak
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
\doublespacing
% \section*{Introduction} % Turn on to included introduction in TOC
% \addcontentsline{toc}{chapter}{\protect\numberline{}Introduction}%
\subfile{Chapters/Ch1/Ch1}
\subfile{Chapters/Ch2/Ch2}
% \section*{Conclusion}
% \addcontentsline{toc}{chapter}{\protect\numberline{}Conclusion}%
%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{small} %%Makes bib small text size
\singlespacing %%Makes single spaced
\bibliographystyle{Phil_Review} %%bib style found in bst folder, in bibtex folder, in texmf folder.
%\setlength{\bibsep}{0.5pt} %%Changes spacing between bib entries
\bibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\thispagestyle{empty} %%Removes page numbers
\end{small} %%End makes bib small text size
\end{document}

43
templates/SubFile.tex Normal file
View File

@ -0,0 +1,43 @@
%NOTE: to be used with \usepackage{subfiles} in the main file.
%Subfiles go in folders which live with the main file.
%Bibliography and preamble go in the main file.
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[../../Root.tex]{subfiles} %Each instance of `../' elevates one folder to find the main file
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
% \tableofcontents % Can be useful to load a TOC while writing
\doublespacing
\schapter{TITLE}
\hypsection{TITLE}
\hypsubsection{TITLE}
\bibliographystyle{Phil_Review} %%bib style found in bst folder, in bibtex folder, in texmf folder.
\nobibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\end{document}

View File

@ -0,0 +1,41 @@
%NOTE: to be used with \usepackage{subfiles} in the main file.
%Subfiles go in folders which live with the main file.
%Bibliography and preamble go in the main file.
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[../../Root.tex]{subfiles} %Each instance of `../' elevates one folder to find the main file
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
\tableofcontents
\doublespacing
\section{TITLE}
\bibliographystyle{Phil_Review} %%bib style found in bst folder, in bibtex folder, in texmf folder.
\nobibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\end{document}

View File

@ -0,0 +1,43 @@
%NOTE: to be used with \usepackage{subfiles} in the main file.
%Subfiles go in folders which live with the main file.
%Bibliography and preamble go in the main file.
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[../../Root.tex]{subfiles} %Each instance of `../' elevates one folder to find the main file
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
\tableofcontents
\doublespacing
\schapter{TITLE}
\section{TITLE}
\bibliographystyle{Phil_Review} %%bib style found in bst folder, in bibtex folder, in texmf folder.
\nobibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\end{document}

155
templates/Subfiles/Root.tex Normal file
View File

@ -0,0 +1,155 @@
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
%%% FORMATTING %%%
\documentclass[11pt]{report} %%Font size and document presets
\usepackage[top=1in, bottom=1in, left=1.25in, right=1.25in]{geometry} %%Margins
\usepackage[protrusion=true,expansion=true]{microtype} %% Makes subtle line spacing shifts
\usepackage{enumitem} %%Enables control over enumerate and itemize environments
\setenumerate{label=(\arabic*), wide=\parindent} %%Changes enumeration style: use \begin{enumerate}
\usepackage{setspace} %%Enables \doublespacing command for double linespacing
\expandafter\def\expandafter\quote\expandafter{\quote\onehalfspacing} %%Makes 1.5 quote spacing
%\usepackage{mdwlist} %% Compressed lists, use star: \begin{enumerate*} \end{'' *}
%\usepackage{indentfirst} %%Indents first line of first paragraph of each section
%\raggedbottom %% Lose the constraint on equalising page content
%\frenchspacing %%Makes the sentence spacing single spaced
%\usepackage{multicol} %% Use \begin{multicols}{3} for three columns and \end{multicols} after
%%% MULTIPLE FILES %%%
\usepackage{subfiles}
\usepackage{hyperref}
\usepackage{bibentry}
%%% HYPER SECTIONS %%%
\usepackage{bold-extra} %% bold+small caps
\usepackage{titlesec}
\usepackage{tocloft} %% change alignment of subsubsection in toc
%\cftsetindents{subsubsubsection}{0.228in}{0.346in} %change alignment of subsubsection in toc
\newcommand{\hypsection}[1]{\section[\bfseries{\scshape{#1}}]{\hyperlink{toc}{\sc \textbf{#1}}}} %%use to jump back to toc
\newcommand{\schapter}[1]{\chapter[\bfseries{\scshape{#1}}]{\hyperlink{toc}{\LARGE#1}}} %%use to jump back to toc
\newcommand{\hypsubsection}[1]{\subsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypsubsubsection}[1]{\subsubsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
%%% HEADER %%%
\usepackage{fancyhdr} %%Permits \pagestyle{fancy}
\pagestyle{fancy} %%Header style
\usepackage{titlesec} %%Header style
\titlespacing*{\subsection}{\parindent}{.25in}{\wordsep}% Reduces spacing after headings
\rhead{Benjamin Brast-McKie} %%Right header
\renewcommand{\sectionmark}[1]{\markright{$\S$\thesection\ #1}} %%Left header command
\lhead{\nouppercase{\rightmark}} %%Left header
%%% FOOTNOTES %%%
\usepackage{scrextend} %%Allows for changes to foodnotes
\deffootnote[1em]{0in}{1em}{\textsuperscript{\thefootnotemark \ }} %%Footnote style
\setlength{\footnotesep}{0.125in} %%Space between footnotes
%%% SYMBOLS %%%
\usepackage{amssymb, amsmath, mathrsfs} %%Math packages
\usepackage{stmaryrd} %%Use \llbracket and \rrbracket for double brackets
%\usepackage{cancel} %%\cancel strikes out text diagonally
%\usepackage{fitch}
%\usepackage{turnstile}
%\usepackage{linguex}
%\usepackage{schemata}
%%% GRAPHICS %%%
%\usepackage{graphicx}
%\DeclareGraphicsExtensions{.pdf,.jpeg,.jpg}
%\usepackage{fancybox}
%\begin{figure}[ht]
%\shadowbox{\includegraphics{figure-file}}}
%\end{figure}
%%% CITATIONS %%%
%\usepackage{bibentry} %%Replace \bibliography{} with \nobibliography{} for no bib
%\usepackage{epigraph} %%Use \epigraph{text}{citation}
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
\newcommand\citepl[2][]{\citeauthor{#2}'s (\citeyear[#1]{#2})} %%Use \citepl for possessive citation.
\newcommand\citea[2][]{\citeauthor{#2}#1} %%Use \citea is for author name only, with optional page numbers.
\newcommand\citeapl[2][]{\citeauthor{#2}'s#1} %%Use \citeapl is for possessive author name only.
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
%%% DEFINITIONS FOR LOGICAL SYMBOLS AND QUOTES %%%
%\newcommand{\corner}[1]{\ulcorner#1\urcorner} %%Corner quotes
%\newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
%\newcommand{\ttuple}[1]{$\langle$#1$\rangle$} %%Angle brackets
%\newcommand{\set}[1]{\lbrace#1\rbrace} %%Set brackets
%\newcommand{\interpret}[1]{\llbracket#1\rrbracket} %%Double brackets
%\newcommand{\sq}[1]{`#1'} %%Proper opened-closed single quotation marks
%\newcommand{\dq}[1]{``#1"} %%Proper opened-closed double quotation marks
%\newcommand{\qed}[0]{$\hfill\square$} %%Box at end of proofs
%%% ENVIRONMENTS %%%
%\newenvironment{senum}[2][topsep=0in, itemsep=.05in]{\begin{enumerate}[#1,topsep=0in, itemsep=.05in]\begin{singlespace}#2}{\end{singlespace}\end{enumerate}\vspace{.175in}}
%%%%%%%%%%%%%%%%%%%%%%%%% TITLE %%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{TITLE}
\author{Benjamin Brast-McKie}
\date{\today}
\maketitle
\thispagestyle{empty}
\begin{abstract}
\noindent BEGIN ABSTRACT
\end{abstract}
\tableofcontents
\pagebreak
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
\doublespacing
\section*{Introduction}
\addcontentsline{toc}{section}{\protect\numberline{}Introduction}%
\subfile{Chapters/Ch1/Ch1}
\subfile{Chapters/Ch2/Ch2}
\section*{Conclusion}
\addcontentsline{toc}{section}{\protect\numberline{}Conclusion}%
%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{small} %%Makes bib small text size
\singlespacing %%Makes single spaced
\bibliographystyle{PhilReview} %%bib style found in bst folder, in bibtex folder, in texmf folder.
%\setlength{\bibsep}{0.5pt} %%Changes spacing between bib entries
\bibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\thispagestyle{empty} %%Removes page numbers
\end{small} %%End makes bib small text size
\end{document}

154
templates/Thesis.tex Normal file
View File

@ -0,0 +1,154 @@
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
%%% FORMATTING %%%
\documentclass[11pt]{report} %%Font size and document presets
\usepackage[top=1in, bottom=1in, left=1.25in, right=1.25in]{geometry} %%Margins
\usepackage[protrusion=true,expansion=true]{microtype} %% Makes subtle line spacing shifts
\usepackage{enumitem} %%Enables control over enumerate and itemize environments
\setenumerate{label=(\arabic*), wide=\parindent} %%Changes enumeration style: use \begin{enumerate}
\usepackage{setspace} %%Enables \doublespacing command for double linespacing
\expandafter\def\expandafter\quote\expandafter{\quote\onehalfspacing} %%Makes 1.5 quote spacing
%\usepackage{mdwlist} %% Compressed lists, use star: \begin{enumerate*} \end{'' *}
%\usepackage{indentfirst} %%Indents first line of first paragraph of each section
%\raggedbottom %% Lose the constraint on equalising page content
%\frenchspacing %%Makes the sentence spacing single spaced
%\usepackage{multicol} %% Use \begin{multicols}{3} for three columns and \end{multicols} after
%%% MULTIPLE FILES %%%
\usepackage{subfiles}
\usepackage{hyperref}
\usepackage{bibentry}
%%% HYPER SECTIONS %%%
\usepackage{bold-extra} %% bold+small caps
\usepackage{titlesec}
\usepackage{tocloft} %% change alignment of subsubsection in toc
%\cftsetindents{subsubsubsection}{0.228in}{0.346in} %change alignment of subsubsection in toc
\newcommand{\hypsection}[1]{\section[\bfseries{\scshape{#1}}]{\hyperlink{toc}{\sc \textbf{#1}}}} %%use to jump back to toc
\newcommand{\hypsubsection}[1]{\subsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
\newcommand{\hypsubsubsection}[1]{\subsubsection[#1]{\hyperlink{toc}{#1}}} %%use to jump back to toc
%%% HEADER %%%
\usepackage{fancyhdr} %%Permits \pagestyle{fancy}
\pagestyle{fancy} %%Header style
\usepackage{titlesec} %%Header style
\titlespacing*{\subsection}{\parindent}{.25in}{\wordsep}% Reduces spacing after headings
\rhead{Benjamin Brast-McKie} %%Right header
\renewcommand{\sectionmark}[1]{\markright{$\S$\thesection\ #1}} %%Left header command
\lhead{\nouppercase{\rightmark}} %%Left header
%%% FOOTNOTES %%%
\usepackage{scrextend} %%Allows for changes to foodnotes
\deffootnote[1em]{0in}{1em}{\textsuperscript{\thefootnotemark \ }} %%Footnote style
\setlength{\footnotesep}{0.125in} %%Space between footnotes
%%% SYMBOLS %%%
\usepackage{amssymb, amsmath, mathrsfs} %%Math packages
\usepackage{stmaryrd} %%Use \llbracket and \rrbracket for double brackets
%\usepackage{cancel} %%\cancel strikes out text diagonally
%\usepackage{fitch}
%\usepackage{turnstile}
%\usepackage{linguex}
%\usepackage{schemata}
%%% GRAPHICS %%%
%\usepackage{graphicx}
%\DeclareGraphicsExtensions{.pdf,.jpeg,.jpg}
%\usepackage{fancybox}
%\begin{figure}[ht]
%\shadowbox{\includegraphics{figure-file}}}
%\end{figure}
%%% CITATIONS %%%
%\usepackage{bibentry} %%Replace \bibliography{} with \nobibliography{} for no bib
%\usepackage{epigraph} %%Use \epigraph{text}{citation}
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
\newcommand\citepl[2][]{\citeauthor{#2}'s (\citeyear[#1]{#2})} %%Use \citepl for possessive citation.
\newcommand\citea[2][]{\citeauthor{#2}#1} %%Use \citea is for author name only, with optional page numbers.
\newcommand\citeapl[2][]{\citeauthor{#2}'s#1} %%Use \citeapl is for possessive author name only.
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
%%% DEFINITIONS FOR LOGICAL SYMBOLS AND QUOTES %%%
%\newcommand{\corner}[1]{\ulcorner#1\urcorner} %%Corner quotes
%\newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
%\newcommand{\ttuple}[1]{$\langle$#1$\rangle$} %%Angle brackets
%\newcommand{\set}[1]{\lbrace#1\rbrace} %%Set brackets
%\newcommand{\interpret}[1]{\llbracket#1\rrbracket} %%Double brackets
%\newcommand{\sq}[1]{`#1'} %%Proper opened-closed single quotation marks
%\newcommand{\dq}[1]{``#1"} %%Proper opened-closed double quotation marks
%\newcommand{\qed}[0]{$\hfill\square$} %%Box at end of proofs
%%% ENVIRONMENTS %%%
%\newenvironment{senum}[2][topsep=0in, itemsep=.05in]{\begin{enumerate}[#1,topsep=0in, itemsep=.05in]\begin{singlespace}#2}{\end{singlespace}\end{enumerate}\vspace{.175in}}
%%%%%%%%%%%%%%%%%%%%%%%%% TITLE %%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{TITLE}
\author{Benjamin Brast-McKie}
\date{\today}
\maketitle
\thispagestyle{empty}
\begin{abstract}
\noindent BEGIN ABSTRACT
\end{abstract}
\tableofcontents
\pagebreak
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
\doublespacing
\section*{Introduction}
\addcontentsline{toc}{section}{\protect\numberline{}Introduction}%
\subfile{Chapters/Ch1/FirstFile}
\subfile{Chapters/Ch2/SecondFile}
\section*{Conclusion}
\addcontentsline{toc}{section}{\protect\numberline{}Conclusion}%
%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{small} %%Makes bib small text size
\singlespacing %%Makes single spaced
\bibliographystyle{Phil_Review} %%bib style found in bst folder, in bibtex folder, in texmf folder.
%\setlength{\bibsep}{0.5pt} %%Changes spacing between bib entries
\bibliography{Zotero} %%bib database found in bib folder, in bibtex folder
\thispagestyle{empty} %%Removes page numbers
\end{small} %%End makes bib small text size
\end{document}

243
templates/TikZArc.tex Normal file
View File

@ -0,0 +1,243 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% TikZ Example %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[11pt]{article}
%################################################
%######## Packages ########
%################################################
\usepackage{tikz} % Diagrams
\usetikzlibrary{positioning,arrows,shadows,shapes,patterns,decorations.pathmorphing} % Some TikZ libraries
%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
%>>>>>> Setup >>>>>>
%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
\tikzset{
modal/.style={
>=stealth',
shorten >=1pt,
shorten <=1pt,
auto,
node distance=2cm,
semithick
},
state/.style={
circle,
draw,
minimum size=0.5cm,
fill=gray!15
},
point/.style={
circle,
draw,
inner sep=0.5mm,
fill=black
},
sees/.style={
->
},
seen/.style={
<-
},
seens/.style={
<->
},
rfl/.style={
->,
in=120,
out=60,
loop,
looseness=5
}}
\newcommand{\stack}[1]{{\def\arraystretch{0.6}\begin{array}{c} #1 \end{array}}}
%::::::::::::::::::::::::::::::::::::::::::::::::
%:::::: Front Matter ::::::
%::::::::::::::::::::::::::::::::::::::::::::::::
\begin{document}
\textbf{Example 1:}
\begin{center}
\begin{tikzpicture}[modal, node distance=1cm]
\node[point] (p1) [label=above:$p_1$] {};
\node[point] (p2) [right of=p1, label=above:$\stack{p_1 \\ p_2}$] {};
\node[point] (p3) [right of=p2, label=above:$\stack{p_1 \\ p_2 \\ p_3}$] {};
\node[point] (r) [below of=p2, label=below:$t_\mathsf{root}$] {};
\node (con) [right of=p3] {$\cdots$};
\node[point] (pw) [right of=con, label=above:$\stack{p_1 \\ p_2 \\ p_3 \\ \vdots}$, label=right:``$t_\omega$''] {};
\node (T') [below of=r] {$\mathcal{T}$};
\path (r) edge[sees] (p1);
\path (r) edge[sees] (p2);
\path (r) edge[sees] (p3);
\path (r) edge[sees,dashed, bend right=25] (pw);
\end{tikzpicture}
\end{center}
\textbf{Example 2:}
\begin{center}
\begin{tikzpicture}[modal, node distance=1.5cm]
\node[point] (0) [label=above:$p_1$, label=below:$0$] {};
\node[point] (1) [right of=0, label=above:$p_2$, label=below:$1$] {};
\node[point] (2) [right of=1, label=above:$p_1$, label=below:$2$] {};
\node[point] (3) [right of=2, label=above:$p_2$, label=below:$3$] {};
\node (r) [right of=3] {$\cdots$};
\node[point] (-1) [left of=0, label=above:$p_2$, label=below:$-1$] {};
\node[point] (-2) [left of=-1, label=above:$p_1$, label=below:$-2$] {};
\node[point] (-3) [left of=-2, label=above:$p_2$, label=below:$-3$] {};
\node (l) [left of=-3] {$\cdots$};
\path (l) edge[sees] (-3);
\path (-3) edge[sees] (-2);
\path (-2) edge[sees] (-1);
\path (-1) edge[sees] (0);
\path (0) edge[sees] (1);
\path (1) edge[sees] (2);
\path (2) edge[sees] (3);
\path (3) edge[sees] (r);
\end{tikzpicture}
\end{center}
\textbf{Example 3:}
\begin{center}
\begin{tikzpicture}[modal, node distance=1.5cm]
\node[point] (e) [label=above:$p_1$, label=below:$e$] {};
\node[point] (m) [right of=e, label=below:$m$] {};
\node[point] (o) [right of=m, label=above:$p_2$, label=below:$o$] {};
\path (e) edge[sees, bend left=25] (m);
\path (m) edge[sees, bend left=25] (e);
\path (o) edge[sees, bend left=25] (m);
\path (m) edge[sees, bend left=25] (o);
\path (m) edge[rfl, in=60, out=120, looseness=30] (m);
\end{tikzpicture}
\end{center}
\textbf{Example 4:}
\begin{center}
\begin{tikzpicture}[modal]
\node (r) {$t_\mathsf{root}$};
\node (1p1) [above left=5mm of r] {$p_1$};
\node (1p2) [above left=5mm of 1p1] {$p_2$};
\node (1p3) [above left=5mm of 1p2] {$p_3$};
\node (1pd) [above left=-2mm of 1p3] {\rotatebox[origin=c]{-10}{$\ddots$}};
\node (2p1) [above=5mm of r] {$p_1$};
\node (2p2) [above=5mm of 2p1] {$p_1$};
\node (2p3) [above=5mm of 2p2] {$p_2$};
\node (2p4) [above=5mm of 2p3] {$p_3$};
\node (2pd) [above=1mm of 2p4] {$\vdots$};
\node (3p1) [above right=5mm of r] {$p_1$};
\node (3p2) [above right=5mm of 3p1] {$p_1$};
\node (3p3) [above right=5mm of 3p2] {$p_1$};
\node (3p4) [above right=5mm of 3p3] {$p_2$};
\node (3p5) [above right=5mm of 3p4] {$p_3$};
\node (3pd) [above right=-2mm of 3p5] {\rotatebox[origin=c]{80}{$\ddots$}};
\node (con) [below right=1mm of 3p3] {$\ddots$};
\node (cont) [below right=1mm of con] {$\vdots$};
\node (wp1) [right=5mm of r] {$p_1$};
\node (wp2) [right=5mm of wp1] {$p_1$};
\node (wp3) [right=5mm of wp2] {$p_1$};
\node (wp4) [right=5mm of wp3] {$p_1$};
\node (wpd) [right=0mm of wp4] {$\dots$};
\path (r) edge[sees] (1p1);
\path (r) edge[sees] (2p1);
\path (r) edge[sees] (3p1);
\path (r) edge[sees] (wp1);
\path (1p1) edge[sees] (1p2);
\path (1p2) edge[sees] (1p3);
\path (2p1) edge[sees] (2p2);
\path (2p2) edge[sees] (2p3);
\path (2p3) edge[sees] (2p4);
\path (3p1) edge[sees] (3p2);
\path (3p2) edge[sees] (3p3);
\path (3p3) edge[sees] (3p4);
\path (3p4) edge[sees] (3p5);
\path (wp1) edge[sees] (wp2);
\path (wp2) edge[sees] (wp3);
\path (wp3) edge[sees] (wp4);
\end{tikzpicture}
\end{center}
\pagebreak
\textbf{Example 5:}
\begin{center}
\begin{tikzpicture}[modal]
\node[state] (h1) {H};
\node[state] (h2) [right of = h1] {H};
\node[state] (h3) [right of = h2] {H};
\node[state] (t1) [above right of = h1] {T};
\node[state] (t2) [above right of = h2] {T};
\node[state] (t3) [above right of = h3] {T};
\node (e) [right of = h3] {\dots};
\path (h1) edge[rfl, in=150, out=210] (h1);
\path (t1) edge[rfl] (t1);
\path (h1) edge[sees] (h2);
\path (h2) edge[sees] (h3);
\path (h3) edge[sees] (e);
\path (h1) edge[sees,dashed] (t1);
\path (h2) edge[sees,dashed] (t2);
\path (h3) edge[sees,dashed] (t3);
\end{tikzpicture}
\end{center}
\textbf{Example 6:}
\begin{center}
\begin{tikzpicture}[node distance=1ex]
\node (A->B) {$A \rightarrow B$};
\node (A&-B) [below=of A->B] {$A \wedge \neg B$};
\node (-A) [below left=7mm of A&-B] {$\neg A$};
\node (A) [below=of -A] {$A$};
\node (x-A) [below=of A] {$\times$};
\node (B) [below right=7mm of A&-B] {$B$};
\node (A2) at (x-A -| B) [yshift=-7mm] {$A$};
\node (-B) [below=of A2] {$\neg B$};
\node (x-B) [below=of -B] {$\times$};
\path (A&-B) edge[-] (-A);
\path (A&-B) edge[-] (B);
\path (B) edge[-] (A2);
\node (1) [left=2cm of A->B] {1.};
\node (2) at (1 |- A&-B) {2.};
\node (3) at (1 |- -A) {3.};
\node (4) at (1 |- A) {4.};
\node (5) at (1 |- A2) {5.};
\node (6) at (1 |- -B) {6.};
\path (5) edge[-,dashed] (A2);
\path (6) edge[-,dotted] (-B);
\node (r1) [right=2cm of A->B] {P};
\node (r2) at (r1 |- A&-B) {P};
\node (r3) at (r1 |- -A) {($\rightarrow$), 1};
\node (r4) at (r1 |- A) {($\wedge$), 2};
\node (r5) at (r1 |- A2) {($\wedge$), 2};
\node (r6) at (r1 |- -B) {($\wedge$), 2};
\end{tikzpicture}
\end{center}
\end{document}

300
templates/TuftsSample.tex Normal file
View File

@ -0,0 +1,300 @@
\documentclass{tufte-handout}
%\geometry{showframe}% for debugging purposes -- displays the margins
\usepackage{amsmath}
% Set up the images/graphics package
\usepackage{graphicx}
\setkeys{Gin}{width=\linewidth,totalheight=\textheight,keepaspectratio}
\graphicspath{{graphics/}}
\title{An Example of the Usage of the Tufte-Handout Style\thanks{Inspired by Edward~R. Tufte!}}
\author[The Tufte-LaTeX Developers]{The Tufte-\LaTeX\ Developers}
\date{24 January 2009} % if the \date{} command is left out, the current date will be used
% The following package makes prettier tables. We're all about the bling!
\usepackage{booktabs}
% The units package provides nice, non-stacked fractions and better spacing
% for units.
\usepackage{units}
% The fancyvrb package lets us customize the formatting of verbatim
% environments. We use a slightly smaller font.
\usepackage{fancyvrb}
\fvset{fontsize=\normalsize}
% Small sections of multiple columns
\usepackage{multicol}
% Provides paragraphs of dummy text
\usepackage{lipsum}
% These commands are used to pretty-print LaTeX commands
\newcommand{\doccmd}[1]{\texttt{\textbackslash#1}}% command name -- adds backslash automatically
\newcommand{\docopt}[1]{\ensuremath{\langle}\textrm{\textit{#1}}\ensuremath{\rangle}}% optional command argument
\newcommand{\docarg}[1]{\textrm{\textit{#1}}}% (required) command argument
\newenvironment{docspec}{\begin{quote}\noindent}{\end{quote}}% command specification environment
\newcommand{\docenv}[1]{\textsf{#1}}% environment name
\newcommand{\docpkg}[1]{\texttt{#1}}% package name
\newcommand{\doccls}[1]{\texttt{#1}}% document class name
\newcommand{\docclsopt}[1]{\texttt{#1}}% document class option name
\begin{document}
\maketitle% this prints the handout title, author, and date
\begin{abstract}
\noindent This document describes the Tufte handout \LaTeX\ document style.
It also provides examples and comments on the style's use. Only a brief
overview is presented here; for a complete reference, see the sample book.
\end{abstract}
%\printclassoptions
The Tufte-\LaTeX\ document classes define a style similar to the
style Edward Tufte uses in his books and handouts. Tufte's style is known
for its extensive use of sidenotes, tight integration of graphics with
text, and well-set typography. This document aims to be at once a
demonstration of the features of the Tufte-\LaTeX\ document classes
and a style guide to their use.
\section{Page Layout}\label{sec:page-layout}
\subsection{Headings}\label{sec:headings}
This style provides \textsc{a}- and \textsc{b}-heads (that is,
\Verb|\section| and \Verb|\subsection|), demonstrated above.
The Tufte-\LaTeX\ classes will emit an error if you try to use
\linebreak\Verb|\subsubsection| and smaller headings.
% let's start a new thought -- a new section
\newthought{In his later books},\cite{Tufte2006} Tufte
starts each section with a bit of vertical space, a non-indented paragraph,
and sets the first few words of the sentence in \textsc{small caps}. To
accomplish this using this style, use the \Verb|\newthought| command:
\begin{docspec}
\doccmd{newthought\{In his later books\}, Tufte starts\ldots}
\end{docspec}
\subsection{Sidenotes}\label{sec:sidenotes}
One of the most prominent and distinctive features of this style is the
extensive use of sidenotes. There is a wide margin to provide ample room
for sidenotes and small figures. Any \Verb|\footnote|s will automatically
be converted to sidenotes.\footnote{This is a sidenote that was entered
using the \texttt{\textbackslash footnote} command.} If you'd like to place ancillary
information in the margin without the sidenote mark (the superscript
number), you can use the \Verb|\marginnote| command.\marginnote{This is a
margin note. Notice that there isn't a number preceding the note, and
there is no number in the main text where this note was written.}
The specification of the \Verb|\sidenote| command is:
\begin{docspec}
\doccmd{sidenote[\docopt{number}][\docopt{offset}]\{\docarg{Sidenote text.}\}}
\end{docspec}
Both the \docopt{number} and \docopt{offset} arguments are optional. If you
provide a \docopt{number} argument, then that number will be used as the
sidenote number. It will change of the number of the current sidenote only and
will not affect the numbering sequence of subsequent sidenotes.
Sometimes a sidenote may run over the top of other text or graphics in the
margin space. If this happens, you can adjust the vertical position of the
sidenote by providing a dimension in the \docopt{offset} argument. Some
examples of valid dimensions are:
\begin{docspec}
\ttfamily 1.0in \qquad 2.54cm \qquad 254mm \qquad 6\Verb|\baselineskip|
\end{docspec}
If the dimension is positive it will push the sidenote down the page; if the
dimension is negative, it will move the sidenote up the page.
While both the \docopt{number} and \docopt{offset} arguments are optional, they
must be provided in order. To adjust the vertical position of the sidenote
while leaving the sidenote number alone, use the following syntax:
\begin{docspec}
\doccmd{sidenote[][\docopt{offset}]\{\docarg{Sidenote text.}\}}
\end{docspec}
The empty brackets tell the \Verb|\sidenote| command to use the default
sidenote number.
If you \emph{only} want to change the sidenote number, however, you may
completely omit the \docopt{offset} argument:
\begin{docspec}
\doccmd{sidenote[\docopt{number}]\{\docarg{Sidenote text.}\}}
\end{docspec}
The \Verb|\marginnote| command has a similar \docarg{offset} argument:
\begin{docspec}
\doccmd{marginnote[\docopt{offset}]\{\docarg{Margin note text.}\}}
\end{docspec}
\subsection{References}
References are placed alongside their citations as sidenotes,
as well. This can be accomplished using the normal \Verb|\cite|
command.\sidenote{The first paragraph of this document includes a citation.}
The complete list of references may also be printed automatically by using
the \Verb|\bibliography| command. (See the end of this document for an
example.) If you do not want to print a bibliography at the end of your
document, use the \Verb|\nobibliography| command in its place.
To enter multiple citations at one location,\cite{Tufte2006,Tufte1990} you can
provide a list of keys separated by commas and the same optional vertical
offset argument: \Verb|\cite{Tufte2006,Tufte1990}|.
\begin{docspec}
\doccmd{cite[\docopt{offset}]\{\docarg{bibkey1,bibkey2,\ldots}\}}
\end{docspec}
\section{Figures and Tables}\label{sec:figures-and-tables}
Images and graphics play an integral role in Tufte's work.
In addition to the standard \docenv{figure} and \docenv{tabular} environments,
this style provides special figure and table environments for full-width
floats.
Full page--width figures and tables may be placed in \docenv{figure*} or
\docenv{table*} environments. To place figures or tables in the margin,
use the \docenv{marginfigure} or \docenv{margintable} environments as follows
(see figure~\ref{fig:marginfig}):
\begin{marginfigure}%
%\includegraphics[width=\linewidth]{helix}
\caption{This is a margin figure. The helix is defined by
$x = \cos(2\pi z)$, $y = \sin(2\pi z)$, and $z = [0, 2.7]$. The figure was
drawn using Asymptote (\url{http://asymptote.sf.net/}).}
\label{fig:marginfig}
\end{marginfigure}
\begin{Verbatim}
\begin{marginfigure}
\includegraphics{helix}
\caption{This is a margin figure.}
\end{marginfigure}
\end{Verbatim}
The \docenv{marginfigure} and \docenv{margintable} environments accept an optional parameter \docopt{offset} that adjusts the vertical position of the figure or table. See the ``\nameref{sec:sidenotes}'' section above for examples. The specifications are:
\begin{docspec}
\doccmd{begin\{marginfigure\}[\docopt{offset}]}\\
\qquad\ldots\\
\doccmd{end\{marginfigure\}}\\
\mbox{}\\
\doccmd{begin\{margintable\}[\docopt{offset}]}\\
\qquad\ldots\\
\doccmd{end\{margintable\}}\\
\end{docspec}
Figure~\ref{fig:fullfig} is an example of the \Verb|figure*|
environment and figure~\ref{fig:textfig} is an example of the normal
\Verb|figure| environment.
\begin{figure*}[h]
% \includegraphics[width=\linewidth]{sine.pdf}%
\caption{This graph shows $y = \sin x$ from about $x = [-10, 10]$.
\emph{Notice that this figure takes up the full page width.}}%
\label{fig:fullfig}%
\end{figure*}
\begin{figure}
% \includegraphics{hilbertcurves.pdf}
% \checkparity This is an \pageparity\ page.%
\caption{Hilbert curves of various degrees $n$.
\emph{Notice that this figure only takes up the main textblock width.}}
\label{fig:textfig}
%\zsavepos{pos:textfig}
\setfloatalignment{b}
\end{figure}
Table~\ref{tab:normaltab} shows table created with the \docpkg{booktabs}
package. Notice the lack of vertical rules---they serve only to clutter
the table's data.
\begin{table}[ht]
\centering
\fontfamily{ppl}\selectfont
\begin{tabular}{ll}
\toprule
Margin & Length \\
\midrule
Paper width & \unit[8\nicefrac{1}{2}]{inches} \\
Paper height & \unit[11]{inches} \\
Textblock width & \unit[6\nicefrac{1}{2}]{inches} \\
Textblock/sidenote gutter & \unit[\nicefrac{3}{8}]{inches} \\
Sidenote width & \unit[2]{inches} \\
\bottomrule
\end{tabular}
\caption{Here are the dimensions of the various margins used in the Tufte-handout class.}
\label{tab:normaltab}
%\zsavepos{pos:normaltab}
\end{table}
\section{Full-width text blocks}
In addition to the new float types, there is a \docenv{fullwidth}
environment that stretches across the main text block and the sidenotes
area.
\begin{Verbatim}
\begin{fullwidth}
Lorem ipsum dolor sit amet...
\end{fullwidth}
\end{Verbatim}
\begin{fullwidth}
\small\itshape\lipsum[1]
\end{fullwidth}
\section{Typography}\label{sec:typography}
\subsection{Typefaces}\label{sec:typefaces}
If the Palatino, \textsf{Helvetica}, and \texttt{Bera Mono} typefaces are installed, this style
will use them automatically. Otherwise, we'll fall back on the Computer Modern
typefaces.
\subsection{Letterspacing}\label{sec:letterspacing}
This document class includes two new commands and some improvements on
existing commands for letterspacing.
When setting strings of \allcaps{ALL CAPS} or \smallcaps{small caps}, the
letter\-spacing---that is, the spacing between the letters---should be
increased slightly.\cite{Bringhurst2005} The \Verb|\allcaps| command has proper letterspacing for
strings of \allcaps{FULL CAPITAL LETTERS}, and the \Verb|\smallcaps| command
has letterspacing for \smallcaps{small capital letters}. These commands
will also automatically convert the case of the text to upper- or
lowercase, respectively.
The \Verb|\textsc| command has also been redefined to include
letterspacing. The case of the \Verb|\textsc| argument is left as is,
however. This allows one to use both uppercase and lowercase letters:
\textsc{The Initial Letters Of The Words In This Sentence Are Capitalized.}
\section{Installation}\label{sec:installation}
To install the Tufte-\LaTeX\ classes, simply drop the
following files into the same directory as your \texttt{.tex}
file:
\begin{quote}
\ttfamily
tufte-common.def\\
tufte-handout.cls\\
tufte-book.cls
\end{quote}
% TODO add instructions for installing it globally
\section{More Documentation}\label{sec:more-doc}
For more documentation on the Tufte-\LaTeX{} document classes (including commands not
mentioned in this handout), please see the sample book.
\section{Support}\label{sec:support}
The website for the Tufte-\LaTeX\ packages is located at
\url{http://code.google.com/p/tufte-latex/}. On our website, you'll find
links to our \smallcaps{svn} repository, mailing lists, bug tracker, and documentation.
\bibliography{sample-handout}
\bibliographystyle{plainnat}
\end{document}

View File

@ -0,0 +1,131 @@
%%%%%%%%%%%%%%%%%%%%%%%% PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%
%%% FORMATTING %%%
\documentclass[11pt]{article} %%Font size and document presets
\usepackage[top=1in, bottom=1in, left=1.25in, right=1.25in]{geometry} %%Margins
\usepackage[protrusion=true,expansion=true]{microtype} %% Makes subtle line spacing shifts
\usepackage{enumitem} %%Enables control over enumerate and itemize environments
\setenumerate{label=(\arabic*), wide=\parindent} %%Changes enumeration style: use \begin{enumerate}
\usepackage{setspace} %%Enables \doublespacing command for double linespacing
\expandafter\def\expandafter\quote\expandafter{\quote\onehalfspacing} %%Makes 1.5 quote spacing
%\usepackage{mdwlist} %% Compressed lists, use star: \begin{enumerate*} \end{'' *}
%\usepackage{indentfirst} %%Indents first line of first paragraph of each section
%\raggedbottom %% Lose the constraint on equalising page content
%\frenchspacing %%Makes the sentence spacing single spaced
%\usepackage{multicol} %% Use \begin{multicols}{3} for three columns and \end{multicols} after
%%% HEADER %%%
\usepackage{fancyhdr} %%Permits \pagestyle{fancy}
\pagestyle{fancy} %%Header style
\usepackage{titlesec} %%Header style
\titlespacing*{\subsection}{\parindent}{.25in}{\wordsep}% Reduces spacing after headings
\rhead{Benjamin Brast-McKie} %%Right header
\renewcommand{\sectionmark}[1]{\markright{$\S$\thesection\ #1}} %%Left header command
\lhead{\nouppercase{\rightmark}} %%Left header
%%% FOOTNOTES %%%
\usepackage{scrextend} %%Allows for changes to foodnotes
\deffootnote[1em]{0in}{1em}{\textsuperscript{\thefootnotemark \ }} %%Footnote style
\setlength{\footnotesep}{0.125in} %%Space between footnotes
%%% SYMBOLS %%%
\usepackage{amssymb, amsmath, mathrsfs} %%Math packages
\usepackage{stmaryrd} %%Use \llbracket and \rrbracket for double brackets
%\usepackage{cancel} %%\cancel strikes out text diagonally
%\usepackage{fitch}
%\usepackage{turnstile}
%\usepackage{linguex}
%\usepackage{schemata}
%%% GRAPHICS %%%
\usepackage{graphicx}
%\DeclareGraphicsExtensions{.pdf,.jpeg,.jpg}
%\usepackage{fancybox}
%\begin{figure}[ht]
%\shadowbox{\includegraphics{figure-file}}}
%\end{figure}
%%% CITATIONS %%%
%\usepackage{bibentry} %%Replace \bibliography{} with \nobibliography{} for no bib
%\usepackage{epigraph} %%Use \epigraph{text}{citation}
\usepackage[round]{natbib} %%Or change 'round' to 'square' for square backers
\setcitestyle{aysep={}}
\newcommand\citepl[2][]{\citeauthor{#2}'s (\citeyear[#1]{#2})} %%Use \citepl for possessive citation.
\newcommand\citea[2][]{\citeauthor{#2}#1} %%Use \citea is for author name only, with optional page numbers.
\newcommand\citeapl[2][]{\citeauthor{#2}'s#1} %%Use \citeapl is for possessive author name only.
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
%%% DEFINITIONS FOR LOGICAL SYMBOLS AND QUOTES %%%
%\newcommand{\corner}[1]{\ulcorner#1\urcorner} %%Corner quotes
%\newcommand{\tuple}[1]{\langle#1\rangle} %%Angle brackets
%\newcommand{\ttuple}[1]{$\langle$#1$\rangle$} %%Angle brackets
%\newcommand{\set}[1]{\lbrace#1\rbrace} %%Set brackets
%\newcommand{\interpret}[1]{\llbracket#1\rrbracket} %%Double brackets
%\newcommand{\sq}[1]{`#1'} %%Proper opened-closed single quotation marks
%\newcommand{\dq}[1]{``#1"} %%Proper opened-closed double quotation marks
%\newcommand{\qed}[0]{$\hfill\square$} %%Box at end of proofs
%%% ENVIRONMENTS %%%
%\newenvironment{senum}[2][topsep=0in, itemsep=.05in]{\begin{enumerate}[#1,topsep=0in, itemsep=.05in]\begin{singlespace}#2}{\end{singlespace}\end{enumerate}\vspace{.175in}}
%%%%%%%%%%%%%%%%%%%%%%%%% TITLE %%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{TITLE}
\author{Benjamin Brast-McKie}
\date{\today}
\maketitle
\thispagestyle{empty}
\begin{abstract}
\noindent BEGIN ABSTRACT
\end{abstract}
\doublespacing
%%%%%%%%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%
\section{Section Title}
%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{small} %%Makes bib small text size
\singlespacing %%Makes single spaced
\bibliographystyle{C:/texmf/bibtex/bst/Analysis} %%bib style found in bst folder, in bibtex folder, in texmf folder.
%\setlength{\bibsep}{0.5pt} %%Changes spacing between bib entries
\bibliography{C:/texmf/bibtex/bib/Zotero} %%bib database found in bib folder, in bibtex folder
\thispagestyle{empty} %%Removes page numbers
\end{small} %%End makes bib small text size
\end{document}