LaTeX案例篇(1)

以下是案例,以我的一篇早年LaTeX报告做分析。


这里是具体代码

\documentclass{article}

\usepackage[a4paper, top=2.54cm, bottom=2.54cm, left=2.54cm, right=2.54cm]{geometry}
\usepackage[14pt]{ctex}
\usepackage{fancyhdr}
\usepackage{amsmath}
\usepackage{listings}
\usepackage{color}
\usepackage{graphicx} 

\newCJKfontfamily{\songtib}[AutoFakeBold={3.17}]{SimSun} 

\pagestyle{fancy}
\fancyhf{}  % 清除默认的页眉页脚
\fancyhead[L]{姓名:JerryMain}  % 页眉左侧显示小说集标题
\fancyhead[R]{学号:123456789}  % 页眉右侧显示页码
\fancyfoot[C]{\thepage}

\lstset{
	basicstyle=\ttfamily, % 使用等宽字体
	keywordstyle=\color{blue}, % 关键词颜色
	commentstyle=\color{green}, % 注释颜色
	stringstyle=\color{red}, % 字符串颜色
	breaklines=true, % 自动换行
	numbers=left, % 行号在左侧显示
	numberstyle=\tiny, % 行号字体大小
	frame=single, % 代码框线样式
}	

\begin{document}
	\begin{center}
		\songtib
		\fontsize{24pt}{18pt}
		\textbf{工科数学分析实验报告}
	\end{center}
	
	\begin{center}
		\songti
		\fontsize{18pt}{24pt}
		\textbf{实验一}
	\end{center}
	
	\section{\fontsize{14pt}{10pt}\selectfont{实验题目}}
	为测定刀具的磨损速度,每隔一小时测量一次刀具的厚度,由此得到以下数据。
	
	\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
		\hline
		时间$t$/h & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
		\hline
		厚度$y$/mm & 27.0 & 26.8 & 26.5 & 26.3 & 26.1 & 25.7 & 25.3 & 24.8\\
		\hline
	\end{tabular}
	
	是根据这组数据建立$y$与$t$之间的拟合函数。
	
	\section{\fontsize{14pt}{10pt}\selectfont{实验目的和意义}}
	利用数学软件MATLAB(R2024b)来通过最小二乘法解决线性拟合问题。
	
	\section{\fontsize{14pt}{10pt}\selectfont{程序设计}}
	\begin{lstlisting}[language=MATLAB]
		%数据导入
		t=[0,1,2,3,4,5,6,7]';
		y=[27.0,26.8,26.5,26.3,26.1,25.7,25.3,24.8]';
		p=polyfit(t,y,1);
		t_fit=linspace(min(t),max(t),100);
		y_fit=polyval(p,t_fit);
		
		%画图
		figure;
		plot(t,y,'o','MarkerSize',8,'LineWidth',2);
		hold on;
		plot(t_fit,y_fit,'-','LineWidth',2);
		xlabel('时间t(h)');
		ylabel('厚度y(mm)');
		title('刀具厚度随时间的变化');
		legend('原始数据','线性拟合');
		grid on;
		
		%输出
		fprintf('拟合的线性方程为 >> y=%.4f t + %.4f\n',p(1),p(2));
	\end{lstlisting}
	\newpage
	\section{\fontsize{14pt}{10pt}\selectfont{程序运行结果}}
	\begin{figure}[h]
		\centering
		\includegraphics[width=0.8\textwidth]{test1.jpg} % 插入图片
		\caption{线性拟合结果}
	\end{figure}
	\begin{figure}[h]
		\centering
		\includegraphics[width=0.7\textwidth]{test2.png} % 插入图片
		\caption{程序运行结果}
	\end{figure}
	
	\newpage
	
	\begin{center}
		\songti
		\fontsize{18pt}{24pt}
		\textbf{实验二}
	\end{center}
	
	\setcounter{section}{0}
	\section{\fontsize{14pt}{10pt}\selectfont{实验题目}}
	绘制函数\(f(x,y)=e^{-\frac{x^2+2y^2}{10^4}}\)的等高线图和梯度线图。
	
	\section{\fontsize{14pt}{10pt}\selectfont{实验目的和意义}}
	利用数学软件MATLAB(R2024b)来通过最小二乘法解决线性拟合问题。
	
	\section{\fontsize{14pt}{10pt}\selectfont{程序设计}}
	\begin{lstlisting}[language=MATLAB]
		% 定义x和y的范围
		x = -100:10:100;
		y = -100:10:100;
		
		% 创建网格
		[X, Y] = meshgrid(x, y);
		
		% 计算f(x,y)
		F = exp(-(X.^2 + 2*Y.^2)/10^4);
		
		% 绘制等高线图,添加颜色条
		figure;
		contour(X, Y, F, 20);
		colorbar;
		title('f(x,y)的等高线图');
		xlabel('x');
		ylabel('y');
		
		% 计算梯度
		[GradX, GradY] = gradient(F, 10, 10);
		
		% 绘制梯度线图,放大100倍
		figure;
		quiver(X, Y, GradX*100, GradY*100);
		title('f(x,y)的梯度线图(放大)');
		xlabel('x');
		ylabel('y');
	\end{lstlisting}
	\newpage
	\section{\fontsize{14pt}{10pt}\selectfont{程序运行结果}}
	\begin{figure}[h]
		\centering
		\includegraphics[width=0.65\textwidth]{test3.jpg} % 插入图片
		\caption{梯度方向图}
	\end{figure}
	\begin{figure}[h]
		\centering
		\includegraphics[width=0.65\textwidth]{test4.jpg} % 插入图片
		\caption{等高线图}
	\end{figure}
\end{document}

由于篇幅限制,这里不做成品的搬运(其实是懒)。


逐行代码解析

  • [1] 宏包调用

    这是声明文章为articlearticlearticle类型。

    \documentclass{article}
    

    这里调用geometrygeometrygeometry库,并设置为a4paper,说明文章使用为A4纸

    \usepackage[a4paper, top=2.54cm, bottom=2.54cm, left=2.54cm, right=2.54cm]{geometry}
    

    这里调用ctexctexctex包,并设置为14pt,说明正文中中文字体为14pt14pt14pt大小 (约为四号) 。

    \usepackage[14pt]{ctex}
    

    这里调用了fancyhdrfancyhdrfancyhdr包,可以自定义页眉页脚

    \usepackage{fancyhdr}
    

    这里调用了amsmathamsmathamsmath包,支持更强大的数学公式输入

    \usepackage{amsmath}
    

    这里调用了listingslistingslistings库,支持源代码展示

    \usepackage{listings}
    

    这里调用了colorcolorcolor库,支持更强大的颜色编辑

    \usepackage{color}
    

    这里调用了graphicxgraphicxgraphicx库,支持本地图片插入

    \usepackage{graphicx} 
    
  • [2] 预处理

    这是ctexctexctex包提供的一种命令,用于定义新的字体。
    例如这里定义了songtib字体,在原有SimSunSimSunSimSun字体的基础上,手动控制粗体参数为3.173.173.17

    \newCJKfontfamily{\songtib}[AutoFakeBold={3.17}]{SimSun} 
    

    这是fancyhdrfancyhdrfancyhdr提供的一种命令,在这里对页眉页脚进行自定义。

    \pagestyle{fancy}				% 显示页眉页脚
    \fancyhf{}  					% 清除默认的页眉页脚
    \fancyhead[L]{姓名:JerryMain}  	% 页眉左侧显示
    \fancyhead[R]{学号:123456789}  	% 页眉右侧显示
    \fancyfoot[C]{\thepage}			% 页脚中间显示
    

    这是listingslistingslistings提供的一种命令,对代码展示的自定义。

    \lstset
    {
    	basicstyle=\ttfamily, 			% 使用等宽字体
    	keywordstyle=\color{blue},		% 关键词蓝色
    	commentstyle=\color{green}, 	% 注释绿色
    	stringstyle=\color{red}, 		% 字符串红色
    	breaklines=true, 				% 自动换行
    	numbers=left, 					% 行号在左侧显示
    	numberstyle=\tiny, 				% 行号字体大小
    	frame=single, 					% 代码框线样式
    }	
    
  • [3] 正文部分

    无需多言,正文以此开头

    \begin{document}
    

    下面一部分是标题(不分大小),并且附带居中。

    \begin{center}\end{center}搭配,写在其内部的文字会被居中
    \songtib调用粗宋体字体。
    \fontsize{24pt}{18pt},前后参数分别表示文字行距的大小。
    \textbf{工科数学分析实验报告},使括号内的字变粗再输出。

    	\begin{center}
    		\songtib
    		\fontsize{24pt}{18pt}
    		\textbf{工科数学分析实验报告}
    	\end{center}
    	\begin{center}
    		\songti
    		\fontsize{18pt}{24pt}
    		\textbf{实验一}
    	\end{center}
    

    这里是sectionsectionsection设计。

    \section{}章节设置
    内置的\fontsize{}{}\selectfont{示例文字}会将局部文字按照fontsizefontsizefontsize作用到sectionsectionsection中。

    	\section{\fontsize{14pt}{10pt}\selectfont{实验题目}}
    

    正文码字部分,略过。

    	为测定刀具的磨损速度,每隔一小时测量一次刀具的厚度,由此得到以下数据。
    

    以下为制表

    begin{tabular}end{tabular}又是非常经典的表格作用域。其中\begin{}后接{|c|c|c|c|c|c|}为每一行单元格的数目。
    下面就是一行\hline,一行数据。
    \hline是画线用的,紧接着每行之间的数据需要用&来隔开。
    至于$t$,两个$号是声明数学公式用的。

    	\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
    		\hline
    		时间$t$/h & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
    		\hline
    		厚度$y$/mm & 27.0 & 26.8 & 26.5 & 26.3 & 26.1 & 25.7 & 25.3 & 24.8\\
    		\hline
    	\end{tabular}
    

    前文提及,略过。

    	是根据这组数据建立$y$与$t$之间的拟合函数。
    	\section{\fontsize{14pt}{10pt}\selectfont{实验目的和意义}}
    	利用数学软件MATLAB(R2024b)来通过最小二乘法解决线性拟合问题。
    	\section{\fontsize{14pt}{10pt}\selectfont{程序设计}}
    

    这里用到了listingslistingslistings库来展示代码

    \begin{lstlisting}[language=MATLAB]\end{lstlisting}依然是非常经典的一对作用域
    \begin{lstlisting}[lauguage=MATLAB]{lstlisting}明确listinglistinglisting库,[lauguage=MATLAB]明确以下为MATLABMATLABMATLAB代码。
    剩下的就是原封不动给代码搬过来。

    	\begin{lstlisting}[language=MATLAB]
    		%数据导入
    		t=[0,1,2,3,4,5,6,7]';
    		y=[27.0,26.8,26.5,26.3,26.1,25.7,25.3,24.8]';
    		p=polyfit(t,y,1);
    		t_fit=linspace(min(t),max(t),100);
    		y_fit=polyval(p,t_fit);
    		
    		%画图
    		figure;
    		plot(t,y,'o','MarkerSize',8,'LineWidth',2);
    		hold on;
    		plot(t_fit,y_fit,'-','LineWidth',2);
    		xlabel('时间t(h)');
    		ylabel('厚度y(mm)');
    		title('刀具厚度随时间的变化');
    		legend('原始数据','线性拟合');
    		grid on;
    		
    		%输出
    	fprintf('拟合的线性方程为 >> y=%.4f t + %.4f\n',p(1),p(2));
    	\end{lstlisting}
    

    新鲜的一页。(newpagenewpagenewpage么,字面意思)

    	\newpage
    

    前文提及,略过。

    	\section{\fontsize{14pt}{10pt}\selectfont{程序运行结果}}
    

    这里插入图片

    又是非常经典的begin{figure}\end{figure}作用域。
    \begin{figure}[h],创建浮动体 (暂时理解为图片吧 ,因为我也不知道能放什么 ) ,[h]表示here我也不知道有什么用,但删掉会出问题
    \centering字面意思,使图片居中。
    \includegraphics[width=0.8\textwidth]{test1.jpg},插入test1.jpg,并设置图片宽度为0.8\textwidth???
    \caption{},会在图片下方加上图名,即图1:线性拟合结果

    	\begin{figure}[h]
    		\centering
    		\includegraphics[width=0.8\textwidth]{test1.jpg} % 插入图片
    		\caption{线性拟合结果}
    	\end{figure}
    	\begin{figure}[h]
    		\centering
    		\includegraphics[width=0.7\textwidth]{test2.png} % 插入图片
    		\caption{程序运行结果}
    	\end{figure}
    

    前文提及,略过。

    	\newpage
    	\begin{center}
    		\songti
    		\fontsize{18pt}{24pt}	
    		\textbf{实验二}
    	\end{center}
    

    sectionsectionsection的计数设置为000,这一步在目前文本非常重要。

    在这个报告中,我写了两个实验,每个实验的小标题用\section实现。
    假如没有这个清零操作,那么我实验二的\section就会从实验一顺延下来。
    比如我的实验一写了个部分,不进行清零操作,我的实验二就会从开始。
    代码也很好理解,\setcounter{section}{0},给sectionsectionsectioncountercountercounter设置为000

    	\setcounter{section}{0}
    

    前文提及,略过。

    	\section{\fontsize{14pt}{10pt}\selectfont{实验题目}}
    	绘制函数\(f(x,y)=e^{-\frac{x^2+2y^2}{10^4}}\)的等高线图和梯度线图。
    	
    	\section{\fontsize{14pt}{10pt}\selectfont{实验目的和意义}}
    	利用数学软件MATLAB(R2024b)来通过最小二乘法解决线性拟合问题。
    	
    	\section{\fontsize{14pt}{10pt}\selectfont{程序设计}}
    	\begin{lstlisting}[language=MATLAB]
    		% 定义x和y的范围
    		x = -100:10:100;	
    		y = -100:10:100;
    		
    		% 创建网格
    		[X, Y] = meshgrid(x, y);
    		
    		% 计算f(x,y)
    		F = exp(-(X.^2 + 2*Y.^2)/10^4);
    		
    		% 绘制等高线图,添加颜色条
    		figure;
    		contour(X, Y, F, 20);
    		colorbar;
    		title('f(x,y)的等高线图');
    		xlabel('x');
    		ylabel('y');
    		
    		% 计算梯度
    		[GradX, GradY] = gradient(F, 10, 10);
    		
    		% 绘制梯度线图,放大100倍
    		figure;
    		quiver(X, Y, GradX*100, GradY*100);
    		title('f(x,y)的梯度线图(放大)');
    		xlabel('x');
    		ylabel('y');
    	\end{lstlisting}
    	\newpage
    	\section{\fontsize{14pt}{10pt}\selectfont{程序运行结果}}
    	\begin{figure}[h]
    		\centering
    		\includegraphics[width=0.65\textwidth]{test3.jpg} % 插入图片
    		\caption{梯度方向图}
    	\end{figure}
    	\begin{figure}[h]
    		\centering
    		\includegraphics[width=0.65\textwidth]{test4.jpg} % 插入图片
    		\caption{等高线图}
    	\end{figure}
    

    别忘了,正文以此结尾。

    	\end{document}
    

后记

本人也是小白,之前跟着DeepSeekDeepSeekDeepSeekChatGPTChatGPTChatGPT学习LaTeXLaTeXLaTeX水掉了不少东西,现在想在拿起来异常艰难,于是开始动手写这几篇文章。在拾起记忆的同时也希望能帮到大家。作为蒟蒻的我也会不断学习,争取带来更可靠的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值