330 lines
9.8 KiB
TeX
330 lines
9.8 KiB
TeX
% Options for packages loaded elsewhere
|
|
% Options for packages loaded elsewhere
|
|
\PassOptionsToPackage{unicode}{hyperref}
|
|
\PassOptionsToPackage{hyphens}{url}
|
|
\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor}
|
|
%
|
|
\documentclass[
|
|
]{scrbook}
|
|
\usepackage{xcolor}
|
|
\usepackage{amsmath,amssymb}
|
|
\setcounter{secnumdepth}{5}
|
|
\usepackage{iftex}
|
|
\ifPDFTeX
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{textcomp} % provide euro and other symbols
|
|
\else % if luatex or xetex
|
|
\usepackage{unicode-math} % this also loads fontspec
|
|
\defaultfontfeatures{Scale=MatchLowercase}
|
|
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
|
|
\fi
|
|
\usepackage{lmodern}
|
|
\ifPDFTeX\else
|
|
% xetex/luatex font selection
|
|
\fi
|
|
% Use upquote if available, for straight quotes in verbatim environments
|
|
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
|
|
\IfFileExists{microtype.sty}{% use microtype if available
|
|
\usepackage[]{microtype}
|
|
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
|
|
}{}
|
|
\makeatletter
|
|
\@ifundefined{KOMAClassName}{% if non-KOMA class
|
|
\IfFileExists{parskip.sty}{%
|
|
\usepackage{parskip}
|
|
}{% else
|
|
\setlength{\parindent}{0pt}
|
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}}
|
|
}{% if KOMA class
|
|
\KOMAoptions{parskip=half}}
|
|
\makeatother
|
|
% Make \paragraph and \subparagraph free-standing
|
|
\makeatletter
|
|
\ifx\paragraph\undefined\else
|
|
\let\oldparagraph\paragraph
|
|
\renewcommand{\paragraph}{
|
|
\@ifstar
|
|
\xxxParagraphStar
|
|
\xxxParagraphNoStar
|
|
}
|
|
\newcommand{\xxxParagraphStar}[1]{\oldparagraph*{#1}\mbox{}}
|
|
\newcommand{\xxxParagraphNoStar}[1]{\oldparagraph{#1}\mbox{}}
|
|
\fi
|
|
\ifx\subparagraph\undefined\else
|
|
\let\oldsubparagraph\subparagraph
|
|
\renewcommand{\subparagraph}{
|
|
\@ifstar
|
|
\xxxSubParagraphStar
|
|
\xxxSubParagraphNoStar
|
|
}
|
|
\newcommand{\xxxSubParagraphStar}[1]{\oldsubparagraph*{#1}\mbox{}}
|
|
\newcommand{\xxxSubParagraphNoStar}[1]{\oldsubparagraph{#1}\mbox{}}
|
|
\fi
|
|
\makeatother
|
|
|
|
\usepackage{color}
|
|
\usepackage{fancyvrb}
|
|
\newcommand{\VerbBar}{|}
|
|
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
|
|
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
|
|
% Add ',fontsize=\small' for more characters per line
|
|
\usepackage{framed}
|
|
\definecolor{shadecolor}{RGB}{241,243,245}
|
|
\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
|
|
\newcommand{\AlertTok}[1]{\textcolor[rgb]{0.68,0.00,0.00}{#1}}
|
|
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{#1}}
|
|
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.40,0.45,0.13}{#1}}
|
|
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.68,0.00,0.00}{#1}}
|
|
\newcommand{\BuiltInTok}[1]{\textcolor[rgb]{0.00,0.23,0.31}{#1}}
|
|
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.13,0.47,0.30}{#1}}
|
|
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{#1}}
|
|
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{\textit{#1}}}
|
|
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}}
|
|
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.23,0.31}{\textbf{#1}}}
|
|
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.68,0.00,0.00}{#1}}
|
|
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.68,0.00,0.00}{#1}}
|
|
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{\textit{#1}}}
|
|
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.68,0.00,0.00}{#1}}
|
|
\newcommand{\ExtensionTok}[1]{\textcolor[rgb]{0.00,0.23,0.31}{#1}}
|
|
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.68,0.00,0.00}{#1}}
|
|
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.28,0.35,0.67}{#1}}
|
|
\newcommand{\ImportTok}[1]{\textcolor[rgb]{0.00,0.46,0.62}{#1}}
|
|
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{#1}}
|
|
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.23,0.31}{\textbf{#1}}}
|
|
\newcommand{\NormalTok}[1]{\textcolor[rgb]{0.00,0.23,0.31}{#1}}
|
|
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{#1}}
|
|
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.23,0.31}{#1}}
|
|
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.68,0.00,0.00}{#1}}
|
|
\newcommand{\RegionMarkerTok}[1]{\textcolor[rgb]{0.00,0.23,0.31}{#1}}
|
|
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{#1}}
|
|
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.13,0.47,0.30}{#1}}
|
|
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.13,0.47,0.30}{#1}}
|
|
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.07,0.07,0.07}{#1}}
|
|
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.13,0.47,0.30}{#1}}
|
|
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.37,0.37,0.37}{\textit{#1}}}
|
|
|
|
\usepackage{longtable,booktabs,array}
|
|
\usepackage{calc} % for calculating minipage widths
|
|
% Correct order of tables after \paragraph or \subparagraph
|
|
\usepackage{etoolbox}
|
|
\makeatletter
|
|
\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
|
|
\makeatother
|
|
% Allow footnotes in longtable head/foot
|
|
\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
|
|
\makesavenoteenv{longtable}
|
|
\usepackage{graphicx}
|
|
\makeatletter
|
|
\newsavebox\pandoc@box
|
|
\newcommand*\pandocbounded[1]{% scales image to fit in text height/width
|
|
\sbox\pandoc@box{#1}%
|
|
\Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}%
|
|
\Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}%
|
|
\ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both
|
|
\ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}%
|
|
\else\usebox{\pandoc@box}%
|
|
\fi%
|
|
}
|
|
% Set default figure placement to htbp
|
|
\def\fps@figure{htbp}
|
|
\makeatother
|
|
|
|
|
|
|
|
|
|
|
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
|
|
|
\providecommand{\tightlist}{%
|
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\usepackage{geometry}
|
|
\usepackage{xcolor}
|
|
\usepackage{eso-pic}
|
|
\usepackage{fancyhdr}
|
|
\usepackage{tikz}
|
|
\usepackage{fontspec}
|
|
\usepackage{microtype}
|
|
\usepackage{etoolbox}
|
|
|
|
% 修复spacefactor问题的关键补丁
|
|
\makeatletter
|
|
\patchcmd{\@makechapterhead}
|
|
{\vspace\@tempskipa}
|
|
{\vspace\@tempskipa\par\nobreak}
|
|
{}{}
|
|
\makeatother
|
|
|
|
% 页面布局设置
|
|
\geometry{
|
|
left=30mm,
|
|
right=30mm,
|
|
top=25mm,
|
|
bottom=25mm,
|
|
headheight=15pt
|
|
}
|
|
|
|
% 颜色定义
|
|
\definecolor{light}{HTML}{ECF1EC}
|
|
\definecolor{highlight}{HTML}{800080}
|
|
\definecolor{dark}{HTML}{330033}
|
|
\definecolor{coverbg}{HTML}{F0F0F0}
|
|
|
|
% 安全的封面设计
|
|
\renewcommand{\maketitle}{%
|
|
\begin{titlepage}
|
|
\AddToShipoutPictureBG*{%
|
|
\AtPageLowerLeft{%
|
|
\begin{tikzpicture}[remember picture, overlay]
|
|
\fill[color=coverbg] (0,0) rectangle (\paperwidth,\paperheight);
|
|
\node[anchor=north east, xshift=-15mm, yshift=-15mm]
|
|
at (current page.north east)
|
|
{\includegraphics[width=8cm]{logo.png}};
|
|
\end{tikzpicture}
|
|
}
|
|
}
|
|
\vspace*{3cm}
|
|
\begin{center}
|
|
{\fontsize{28}{36}\selectfont\bfseries\color{dark}\@title}\\[2cm]
|
|
{\LARGE\@subtitle}\\[3cm]
|
|
{\Large\@author}\\[2cm]
|
|
{\large\@date}
|
|
\end{center}
|
|
\end{titlepage}
|
|
}
|
|
|
|
% 页眉页脚设置
|
|
\fancypagestyle{mainstyle}{%
|
|
\fancyhf{}
|
|
\fancyhead[RE]{\normalfont\small\leftmark}
|
|
\fancyhead[LO]{\normalfont\small\rightmark}
|
|
\fancyfoot[C]{\thepage}
|
|
\renewcommand{\headrulewidth}{0.4pt}
|
|
}
|
|
|
|
% 应用样式
|
|
\pagestyle{mainstyle}
|
|
\addtokomafont{chapter}{\color{dark}\Huge\bfseries}
|
|
\addtokomafont{section}{\color{dark}\Large\bfseries}
|
|
\addtokomafont{subsection}{\color{dark}\large\bfseries}
|
|
\makeatletter
|
|
\@ifpackageloaded{caption}{}{\usepackage{caption}}
|
|
\AtBeginDocument{%
|
|
\ifdefined\contentsname
|
|
\renewcommand*\contentsname{Table of contents}
|
|
\else
|
|
\newcommand\contentsname{Table of contents}
|
|
\fi
|
|
\ifdefined\listfigurename
|
|
\renewcommand*\listfigurename{List of Figures}
|
|
\else
|
|
\newcommand\listfigurename{List of Figures}
|
|
\fi
|
|
\ifdefined\listtablename
|
|
\renewcommand*\listtablename{List of Tables}
|
|
\else
|
|
\newcommand\listtablename{List of Tables}
|
|
\fi
|
|
\ifdefined\figurename
|
|
\renewcommand*\figurename{Figure}
|
|
\else
|
|
\newcommand\figurename{Figure}
|
|
\fi
|
|
\ifdefined\tablename
|
|
\renewcommand*\tablename{Table}
|
|
\else
|
|
\newcommand\tablename{Table}
|
|
\fi
|
|
}
|
|
\@ifpackageloaded{float}{}{\usepackage{float}}
|
|
\floatstyle{ruled}
|
|
\@ifundefined{c@chapter}{\newfloat{codelisting}{h}{lop}}{\newfloat{codelisting}{h}{lop}[chapter]}
|
|
\floatname{codelisting}{Listing}
|
|
\newcommand*\listoflistings{\listof{codelisting}{List of Listings}}
|
|
\makeatother
|
|
\makeatletter
|
|
\makeatother
|
|
\makeatletter
|
|
\@ifpackageloaded{caption}{}{\usepackage{caption}}
|
|
\@ifpackageloaded{subcaption}{}{\usepackage{subcaption}}
|
|
\makeatother
|
|
\makeatletter
|
|
\@ifpackageloaded{tcolorbox}{}{\usepackage[skins,breakable]{tcolorbox}}
|
|
\makeatother
|
|
\makeatletter
|
|
\@ifundefined{shadecolor}{\definecolor{shadecolor}{rgb}{.97, .97, .97}}{}
|
|
\makeatother
|
|
\makeatletter
|
|
\@ifundefined{codebgcolor}{\definecolor{codebgcolor}{named}{light}}{}
|
|
\makeatother
|
|
\makeatletter
|
|
\ifdefined\Shaded\renewenvironment{Shaded}{\begin{tcolorbox}[frame hidden, sharp corners, boxrule=0pt, enhanced, colback={codebgcolor}, breakable]}{\end{tcolorbox}}\fi
|
|
\makeatother
|
|
\usepackage{bookmark}
|
|
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
|
|
\urlstyle{same}
|
|
\hypersetup{
|
|
pdftitle={Pretty PDFs with Quarto},
|
|
pdfauthor={Ming Su},
|
|
colorlinks=true,
|
|
linkcolor={highlight},
|
|
filecolor={Maroon},
|
|
citecolor={Blue},
|
|
urlcolor={highlight},
|
|
pdfcreator={LaTeX via pandoc}}
|
|
|
|
|
|
\title{Pretty PDFs with Quarto}
|
|
\author{Ming Su}
|
|
\date{}
|
|
\begin{document}
|
|
\frontmatter
|
|
\maketitle
|
|
|
|
\pagestyle{mystyle}
|
|
|
|
|
|
\mainmatter
|
|
\chapter{Quarto}\label{quarto}
|
|
|
|
Quarto enables you to weave together content and executable code into a
|
|
finished document. To learn more about Quarto see
|
|
\url{https://quarto.org}.
|
|
|
|
\section{Running Code}\label{running-code}
|
|
|
|
When you click the \textbf{Render} button a document will be generated
|
|
that includes both content and the output of embedded code. You can
|
|
embed code like this:
|
|
|
|
\begin{Shaded}
|
|
\begin{Highlighting}[]
|
|
\DecValTok{1} \SpecialCharTok{+} \DecValTok{1}
|
|
\end{Highlighting}
|
|
\end{Shaded}
|
|
|
|
\begin{verbatim}
|
|
[1] 2
|
|
\end{verbatim}
|
|
|
|
You can add options to executable code like this
|
|
|
|
\begin{verbatim}
|
|
[1] 4
|
|
\end{verbatim}
|
|
|
|
The \texttt{echo:\ false} option disables the printing of code (only
|
|
output is displayed).
|
|
|
|
|
|
\backmatter
|
|
|
|
|
|
\end{document}
|