EEG_MI / docs /preamble.tex
Twu31's picture
Mirror of github.com/twu3202/EEG_MI at 66726e1
d37c079 verified
Raw
History Blame Contribute Delete
3.86 kB
% Shared preamble for the EEG_MI reports. Use as:
%
% \documentclass[11pt]{ctexart} % Chinese reports
% \documentclass[11pt,a4paper]{article} % English reports
% \input{preamble}
%
% Build with: tectonic <name>.tex (the only LaTeX engine installed here)
%
% WHY THIS FILE EXISTS. Every report used to carry its own copy of the preamble, and every
% one of them overran the right margin somewhere — LaTeX reports that as
% "Overfull \hbox (N pt too wide)" and then prints the offending line past the text block,
% which is what you see as text touching the paper edge. There are two distinct causes and
% they need different fixes:
%
% 1. A box that simply cannot be broken — a wide table, a \centerline, a long verbatim
% line, a URL. No amount of justification tuning helps; the content has to be scaled
% or made breakable. Use the \begin{widetable} environment and the \shell environment
% below, and let xurl break the URLs.
% 2. A paragraph where the line breaker could not find an acceptable set of breaks and gave
% up. \emergencystretch gives it extra slack on a final pass, and microtype's character
% protrusion buys roughly another half-character per line. Both are set below and apply
% to every paragraph automatically.
%
% After editing a report, check it is actually clean:
% tectonic --print <name>.tex 2>&1 | grep Overfull
% Empty output means nothing reaches the margin.
\usepackage[margin=2.3cm]{geometry}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{mdframed}
\usepackage{fvextra} % fancyvrb + the breaklines/breakanywhere keys
\usepackage[export]{adjustbox} % also gives \includegraphics a max width= key
\usepackage[colorlinks=true,linkcolor=blue!60!black,urlcolor=blue!60!black]{hyperref}
\usepackage{xurl} % after hyperref: lets URLs break at any character
% --- cause 2: give the line breaker room instead of letting it overrun -------------------
\usepackage[verbose=silent]{microtype} % protrusion; works under xetex, which tectonic uses
\emergencystretch=3em % extra slack on the final pass before giving up
\hbadness=1500 % ...and stop reporting the loose lines that result
\vbadness=1500
\sisetup{detect-all, per-mode=symbol, range-units=single}
% Chinese documents should add \sisetup{range-phrase={\,--\,}} after this file:
% siunitx's default range phrase is the English word "to".
\captionsetup{font=small}
% --- cause 1: tools for content that genuinely cannot be broken --------------------------
% A table that is wider than the text block shrinks to fit instead of hanging off the page.
% Prefer rewriting the table so it fits; use this when the content really is that wide.
% \linewidth, not \textwidth: inside quote/itemize the usable width is narrower, and scaling
% to \textwidth there still lets content hang into the margin.
\newenvironment{widetable}{\begin{adjustbox}{max width=\linewidth}}{\end{adjustbox}}
% Shell commands: breaks long lines at the margin and marks the continuation, instead of
% running a single long line straight off the paper the way verbatim does.
\DefineVerbatimEnvironment{shell}{Verbatim}%
{fontsize=\small, breaklines=true, breakanywhere=true,
breaksymbolright=\textcolor{gray}{$\hookleftarrow$}, xleftmargin=1em}
% Figures never exceed the text block even if a PNG is wider than expected.
\setkeys{Gin}{width=\linewidth, keepaspectratio}
% --- shared house style ------------------------------------------------------------------
\definecolor{good}{HTML}{2E7D46}
\definecolor{bad}{HTML}{B23B3B}
\definecolor{warn}{HTML}{9A6A00}
\newcommand{\uV}{\si{\micro\volt}}
\newcommand{\cmd}[1]{\texttt{\small #1}}