应该是图书馆提供的『研究生学位论文Latex参考模板.zip』配置上有一些问题
更建议使用这个开源仓库 但使用的时候必须仔细研究其文档和学校有关规范。
改正xetex thuthesis.ins
编译得到的是thuthesis.cls
文件
应该是图书馆提供的『研究生学位论文Latex参考模板.zip』配置上有一些问题
更建议使用这个开源仓库 但使用的时候必须仔细研究其文档和学校有关规范。
改正xetex thuthesis.ins
编译得到的是thuthesis.cls
文件
如果你不介意重复绘制的话,下面也许是可行的...
\documentclass[landscape]{article}
\usepackage[margin=1in,a3paper]{geometry}
\usepackage{tkz-graph}
\begin{document}
\ExplSyntaxOn
\cs_new_protected:Npn \draw_dot_diagram:n #1
{
\pgfmathtruncatemacro{\NN}{0}
\str_set:Nn \l_tmpa_str { #1 }
\seq_clear:N \l_tmpa_seq
\begin{tikzpicture}[
line~join=round,line~cap=round,
VertexStyle/.style = {
shape=circle,draw,fill,
minimum~size=5pt,
inner~sep=0pt,
outer~sep=0pt,
}]
\SetGraphUnit{2}
\SetVertexNoLabel
\Vertex{P\NN}
\str_map_inline:Nn \l_tmpa_str
{
\pgfmathtruncatemacro{\tmp}{\NN+1}
\str_case:nn { ##1 }
{
{U} {\NO(P\NN){P\tmp}}
{D} {\SO(P\NN){P\tmp}}
{L} {\WE(P\NN){P\tmp}}
{R} {\EA(P\NN){P\tmp}}
}
\Edge(P\NN)(P\tmp)
\pgfmathtruncatemacro{\NN}{\tmp}
}
\end{tikzpicture}
\par \vspace*{3cm}
}
\draw_dot_diagram:n {RRUDRUDRR}
\draw_dot_diagram:n {RRRUDRUDRUDRR}
\draw_dot_diagram:n {RRRURUDLUUDLRDDDRRLDRURRUUDR}
\ExplSyntaxOff
\end{document}
其实重复绘制的问题应该是有优化空间的,但我下午还有课...
你的代码太长了,你希望在互联网上找人帮你看长达349行的代码?
你应该使用二分注释等方法找到真正让你"卡死"的那些部分
实际上出问题的有以下两部分:
%Line265~282
\begin{tikzpicture}
\begin{pie}[
color={blue!20, red!20, orange!20, green!20, yellow!20},
text=legend,
sum=auto,
explode=0.1,
radius=3,
]
\pie[
text=legend]{
10/民族舞,
35/英文剧场,
10/无人机,
10/数学建模,
35/辩论
}
\end{pie}
\end{tikzpicture}
是谁教你的\begin{pie}
嵌套\pie
命令的(?)告诉我,是谁?你是否看过pgf-pie
的文档?
需要修改成以下,只使用\pie
创建饼图
\begin{tikzpicture}
\pie[
color={blue!20, red!20, orange!20, green!20, yellow!20},
text=legend,
sum=auto,
explode=0.1,
radius=3,
]{
10/民族舞,
35/英文剧场,
10/无人机,
10/数学建模,
35/辩论
}
\end{tikzpicture}
第二个问题出现在enumerate
的嵌套问题上:
%Line318~347
\begin{enumerate}
本节包含总体取值规律的估计,总体百分位数的估计,总体集中趋势估计,总体离散程度估计等内容,下面先把涉及到的一些基础知识进行梳理。
\textbf{频率分布直方图}: 每个小矩形的面积表示数据落在该组的频率, 各小矩形的面积之和为 1.
\textbf{百分位数}: 一组数据的第 \( p \) 百分位数是这样一个值, 它使得这组数据中至少有 \( p\% \) 的数据小于或等于这个值,且至少有 \( (100-p)\% \) 的数据大于或等于这个值,其计算步骤为:
\begin{enumerate}
\item 按从小到大排列原始数据;
\item 计算 \( i=n \times p\% \), 其中 \( n \) 为样本量;
\item 若 \( i \) 不是整数, 而大于 \( i \) 的比邻整数为 \( j \), 则第 \( p \) 百分位数为第 \( j \) 项数据; 若 \( i \) 是整数, 则第 \( p \) 百分位数为第 \( i \) 项和第 \( i+1 \) 项数据的平均数.
\end{enumerate}
\item \textbf{平均数}: 可反映数据的集中趋势.
\begin{enumerate}
\item 一组数据 \( x_1, x_2, \cdots, x_a \) 的平均数 \( \overline{x} = \frac{x_1+x_2+\cdots+x_a}{n} \).
\item 由频率分布直方图估计样本平均数, 常用每组区间中点值代表落在该区间的数据, 若设各组区间中点为 \( x_1, x_2, \cdots, x_n \), 对应各组的频率为 \( f_1, f_2, \cdots, f_n \), 则可估计样本平均数 \( \bar{x} = \sum_{i=1}^n x_i f_i \).
\end{enumerate}
\item \textbf{中位数}: 可反映数据的集中趋势.
\begin{enumerate}
\item 对于从小到大排列的一组数据, 若数据个数为奇数, 则中位数为最中间的一个数据; 若数据个数为偶数,则中位数为中间两个数据的平均数.
\item 由频率分布直方图估计样本中位数, 应在横轴上找到一个数, 使其左右两侧频率各占 0.5.
\end{enumerate}
\item \textbf{众数}: 可反映数据的集中趋势.
\begin{enumerate}
\item 一组数据中出现次数最多的数据即为该组数据的众数, 若有几个数据出现次数一样多, 且都比其它数据多,则它们都是众数.
\item 由频率分布直方图估计样本众数, 取最高的小矩形区间中点即可.
\end{enumerate}
\item \textbf{极差}: 一组数据的最大值与最小值之差, 它可以一定程度反映数据的离散程度.
\item \textbf{方差、标准差}: 刻画数据的离散程度. 方差、标准差越大, 数据越分散, 反之越集中.
\begin{enumerate}
\item 一组数据 \( x_1, x_2, \cdots, x_n \) 的方差 \( s^2 = \frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})^2 = \frac{1}{n} \sum_{i=1}^n x_i^2 - \bar{x}^2 \), 方差公式的两种形式都需掌握, 计算或证明时都可能用到. 方差的算数平方根 \( s \) 即为标准差. 若数据 \( x_1, x_2, \cdots, x_n \) 有重复, 设其不重复的值为 \( y_1, y_2, \cdots, y_k \), 对应的数据个数依次为 \( f_1, f_2, \cdots, f_k \), 则 \( s^2 = \frac{1}{n} \sum_{i=1}^{k} f_i (y_i - \bar{x})^2 \).
\end{enumerate}
\end{enumerate}
你是否看过入门文档lshort-zh-cn
(?) 在enumerate
环境内必须使用\item
....你这几行素在?(告诉我,为什么?)
本节包含总体取值规律的估计,总体百分位数的估计,总体集中趋势估计,总体离散程度估计等内容,下面先把涉及到的一些基础知识进行梳理。
textbf{频率分布直方图}: 每个小矩形的面积表示数据落在该组的频率, 各小矩形的面积之和为 1.
textbf{百分位数}: 一组数据的第 ( p ) 百分位数是这样一个值, 它使得这组数据中至少有 ( p% ) 的数据小于或等于这个值,且至少有 ( (100-p)% ) 的数据大于或等于这个值,其计算步骤为:
那几行前面必须加上\item
本节包含总体取值规律的估计,总体百分位数的估计,总体集中趋势估计,总体离散程度估计等内容,下面先把涉及到的一些基础知识进行梳理。
\begin{enumerate}%%%%%%你下面这两个`\textbf`前面为什么不用????告诉我,为什么??
\item \textbf{频率分布直方图}: 每个小矩形的面积表示数据落在该组的频率, 各小矩形的面积之和为 1.
\item \textbf{百分位数}: 一组数据的第 \( p \) 百分位数是这样一个值, 它使得这组数据中至少有 \( p\% \) 的数据小于或等于这个值,且至少有 \( (100-p)\% \) 的数据大于或等于这个值,其计算步骤为:
\begin{enumerate}
\item 按从小到大排列原始数据;
\item 计算 \( i=n \times p\% \), 其中 \( n \) 为样本量;
\item 若 \( i \) 不是整数, 而大于 \( i \) 的比邻整数为 \( j \), 则第 \( p \) 百分位数为第 \( j \) 项数据; 若 \( i \) 是整数, 则第 \( p \) 百分位数为第 \( i \) 项和第 \( i+1 \) 项数据的平均数.
\end{enumerate}
%% rest ...
切忌“不懂原理的前提下四处搜罗代码”。 —— OsbertWang
效果如下:
另外你的最小工作示例还是不规范,你理应提供有问题的,让你报错的最小的那一段代码,不要期望每个人都有时间看你整篇几百行,甚至两千行文档。同时应注意内容的保密性(试卷直接发出来真的好吗...)
另附MWE定义,请仔细阅读并了解围栏代码块的用法。
不建议使用xkeyval
宏包了,latex2e kernel setup (based on l3keys)已经足够支持键值对的选项。
从你的代码来说,只要删除testclass.cls
中\ExecuteOptionsX{text={key1=12345, key2=abcde}}
的命令即可,\ExecuteOptionsX
用于声明默认选项,不应该放在\ProcessOptionsX
之后。但即使如此做,虽然可以传递option
,但仍会导致出现LaTeX Warning: Unused global option(s):[text={key1=67890}]
的提示,这也是不推荐使用的原因。
一个简陋的办法是在\begin{document}
后使用\setlength{\oddsidemargin}{-3pt}
(不一定准确,我的pdf-viewer没有标尺)微调。
去掉导言区\usepackage{collref}
的调用
个人认为你这个问题的本质是revtex4-2
的双栏布局和单栏的figure
之间的冲突。当你使用article
文档类时代码并没有什么问题;而使用revtex4-2
出错,说明是revtex4-2
的问题。好的问题题目会方便其他人检索到。
\caption*
用法说明
要想引用必须有内容
(我不是太理解为什么你一定要藏起来subcaption
的(a)(b)(c)(d)?这样读者很难快速定位到Fig.4(d)和Fig.8(e)指的是哪个吧)
https://www.latexstudio.net/index/details/index/mid/3922.html
源代码中的 \onecolumngrid
和 \twocolumngrid
进行切换 (但我不是太懂revtex4-2
...)
\documentclass[reprint,aps,amsmath,amssymb,]{revtex4-2}
\usepackage{graphicx}% Include figure files
\usepackage{subcaption} % For subfigure
\usepackage{float}
\usepackage{lipsum}
\usepackage{hyperref}% add hypertext capabilities
\begin{document}
\lipsum[1-9]
\onecolumngrid
\begin{figure*}[htbp]
\centering
% First row of images (subfigure 1 and subfigure 2)
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth, keepaspectratio]{example-image-a}
\caption{}\label{a}
\end{subfigure}%
\hspace{0.1cm}
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth, keepaspectratio]{example-image-b}
\caption{}\label{b}
\end{subfigure}
% Second row of images (subfigure 3 and subfigure 4)
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth, keepaspectratio]{example-image-c}
\caption{}\label{c}
\end{subfigure}%
\hspace{0.1cm}
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[width=\textwidth, keepaspectratio]{example-image}
\caption{}\label{d}
\end{subfigure}
\caption{Overall caption for the entire figure.}
\label{fig2:mainfig}
\end{figure*}
\twocolumngrid
In Fig.~\ref{fig2:mainfig}~(\ref{a}), (\ref{b}), and (\ref{c}), we show ...
\lipsum[10-12]
\end{document}
我不太知道你的图片是如何实现的,我只提供昨晚群里讨论出来的一种代码实现(应该算是回答了你的问题标题)。
By S老师@u79794:
图片中是行内公式,在enumerate
环境中使用,并且使用t(top)
参数,即:$\begin{align}[t] … \end{align}$
,然后再使用类似dotfill
那种评分的东西,exam-zh
模板有相应的模块
我借鉴了李清和xdyy用于exam-zh
的方法,一个实现和效果如下:
\documentclass[12pt]{ctexart}
\usepackage[a4paper,showframe]{geometry}
\usepackage{amsmath,mathtools}
\usepackage{zref-savepos}
\makeatletter
\ExplSyntaxOn
\zref@require@unique
\NewDocumentCommand { \score } { O{} m }
{
\mode_if_math:TF
{ \@@_math_cdotfill:n { #2 \text { ~ 分 } } }
{ \__examzh_cdotfill: #2 分 }
\mode_if_math:F
{
\par \noindent \ignorespaces
}
}
% 仿照 latex.ltx, line 651 的 \dotfill
\cs_new:Npn \__examzh_cdotfill:
{
\mode_leave_vertical:
\cleaders \hb@xt@ .44em {\hss $\cdot$ \hss} \hfill
\kern\z@
}
\cs_new_protected:Npn \@@_math_cdotfill:n #1
{
\stepcounter { zref@unique }
\hbox_overlap_right:n
{
\zsaveposx { \thezref@unique L }
\zref@ifrefundefined { \thezref@unique R }
{ }
{
\cleaders
\hbox_to_wd:nn { .44em } { \hss $\cdot$ \hss }
\skip_horizontal:n
{
\zposx { \thezref@unique R } sp
- \zposx { \thezref@unique L } sp
}
}
}
\tag * { \zsaveposx { \thezref@unique R } #1 }
}
\ExplSyntaxOff
\makeatother
\begin{document}
\begin{flalign*}
& a^2 +b^2+c^2 = d^2&\\
& \sum_{n=1}^\infty \frac{1}{n^2}=\frac{\pi^2}{6}&\\
\end{flalign*}
\begin{flalign*}
&\frac{x_{n + 1}}{x_n} = \sqrt{\frac{2}{x_n^2} + \frac{1}{x_n}} > \sqrt{\frac{2}{2^2} + \frac{1}{2}} = 1,\score{2}&&\\
&a^2+b^2+c^2=d^2,\score{4}&&\\
&\sum_{n=1}^\infty \frac{1}{n^2}=\frac{\pi^2}{6},\score{8}&&
\end{flalign*}
\end{document}
有几个问题
效果对比:
\documentclass[a4paper,11pt]{article}
\usepackage{amsmath}
\usepackage{ctex}
\begin{document}
\section{Start}
\listoftables
\begin{table}
\begin{tabular}{l@{阿巴巴}|c|c|r}
\hline
1 & 2 & 3 & 4 \\
\hline
2 &2&3&4 \\
\hline
3&2&3&4\\
\hline
\end{tabular}
\caption[这是一个短标题]{这是一个长查查尝长长惆怅长岑长惆怅长岑长擦擦擦擦擦擦擦擦擦擦擦擦标题}
\end{table}
\begin{table}
\begin{tabular}{l@{阿巴巴}|c|c|r}
\hline
1&2&3&4 \\
\hline
2 &2&3&4 \\
\hline
3&2&3&4\\
\hline
\end{tabular}
\caption[这是一个短标题2]{这是一个长查查尝长长惆怅长岑长惆怅长岑长擦擦擦擦擦擦擦擦擦擦擦擦标题}
\end{table}
\begin{table}
\begin{tabular}{l@{阿巴巴}|c|c|r}
\hline
1 & 2 & 3 & 4 \\
\hline
2 &2&3&4 \\
\hline
3&2&3&4\\
\hline
\end{tabular}
\caption[这是一个短标题3]{这是一个长查查尝长长惆怅长岑长惆怅长岑长擦擦擦擦擦擦擦擦擦擦擦擦标题}
\end{table}
\end{document}
彩蛋:请思考为何\listoftable
出现在这个位置?什么是浮动体?
我来给一个非常不成熟的做法。直接搬!
my related question and discussion here~
我的做法是,将l3doc.cls
复制一份,将其后缀名修改为l3doc.sty
,之后注释去Line402的\LoadClass{article}
语句后,将l3doc.sty
置于工作目录下即正常使用\usepackage{l3doc}
.
当然上述的操作是有缺陷的,例如和texmf
树中的l3doc
官方文档类可能存在一定的命名<namespace>冲突,cfr
在上面的链接中指出也是建议修改.sty
名称的(例如将l3doc
改为mydoc
),但在l3doc.cls
中存在较多以l3doc
为类名称的\message
,此处我并没有做修改。
当将修改过后的l3doc.sty
文档放到工作目录后,可以得到:
\documentclass{book}
\usepackage{l3doc}
\usepackage{lipsum}
\begin{document}
\cs{lipsum} some text \cmd{zhlipsum} some text \cs{tl_if_empty:NTF} \meta{tl~var} \Arg{true code} \Arg{false code} some text you can use \cmd{l3doc} like that
\lipsum[1]
\begin{function}{\package_function_one:N, \package_function_two:n}
\begin{syntax}
\cs{package_function_one:N} \meta{cs}
\cs{package_function_two:n} \marg{Argument}
\end{syntax}
Descriptive~text~here~...\lipsum[2]
\end{function}
\vspace*{2ex}
\lipsum[3]
\end{document}
当然,如果你的目标是all stuffs in l3doc
,上面的做法是可行的,你可以使用\cs
,syntax
,function
等所有命令;但是如果你的目标仅仅是提取出function
,上面的不完美做法会存在大量的冗余定义,并不优雅。对于后者的需求需要对l3doc.cls
的代码有更深的认识,之后可以从\DeclareDocumentEnvironment { function }
开始考虑"逆向工程",提取出和此有关的所有代码(但我不会latex3.....短时间内也没空....)另附MWE压缩文件。
该问题的另一个版本出现在The TeXBook
的练习18.43
:
我觉得平移很难操作,而且存在浮点计算误差....
另外scope
环境是用于多个画面的,在你这个case下我个人觉得不太适合...
打小就不会找规律,提供一个我觉得非常丑陋的做法...
当然封装成函数便于复用同时加上scope
这些得你自己来了,本问题的关键在于找到循环的pattern
...
\documentclass[border=1.2cm]{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{calc}
\pgfmathtruncatemacro{\NN}{10}
\newcommand*{\stepfurther}[2]{
\ifodd#1
\tkzDefSquare(B#1,A#1)\tkzGetPoints{A#2}{C#2}
\tkzDrawPolygon[fill=gray!20](B#1,A#1,A#2,C#2)
\tkzDefTriangle[equilateral](C#2,A#2)\tkzGetPoint{B#2}
\tkzDrawPolygon(A#2,C#2,B#2)
\tkzDefTriangle[equilateral](B#1,C#2)\tkzGetPoint{E#2}
\tkzDrawPolygon(B#1,C#2,E#2)
\tkzDefTriangle[equilateral](A#2,A#1)\tkzGetPoint{D#2}
\tkzDrawPolygon(A#2,A#1,D#2)
\else
\tkzDefSquare(B#1,A#1)\tkzGetPoints{C#2}{B#2}
\tkzDrawPolygon[fill=gray!20](B#1,A#1,C#2,B#2)
\tkzDefTriangle[equilateral](B#1,B#2)\tkzGetPoint{D#2}
\tkzDrawPolygon(B#1,B#2,D#2)
\tkzDefTriangle[equilateral](C#2,A#1)\tkzGetPoint{E#2}
\tkzDrawPolygon(C#2,A#1,E#2)
\tkzDefTriangle[equilateral](B#2,C#2)\tkzGetPoint{A#2}
\tkzDrawPolygon(C#2,B#2,A#2)
\fi
% \node at (A#2) {$A_#2$};
% \node at (B#2) {$B_#2$};
}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){B0}
\tkzDefPoint(-120:1){A0}
\tkzDefPoint(-1,0){C0}
\tkzDrawPolygon(A0,B0,C0)
\foreach \i[count = \cnt from 0] in {1,...,\NN}{
\stepfurther{\cnt}{\i}
}
\end{tikzpicture}
\end{document}
https://ask.latexstudio.net/ask/question/17531.html 请看一下这个连接下回答的要求...
同时你的图片和文件都没上传成功...
试问:看到这样的提问内容要让人怎么帮你...
请你看这个链接,用三个```包裹,不然上面的代码观感不行,而且缺少首个\
,不方便复制。另外,上面的代码还缺少图片,这将导致潜在的回答者无法复现。
另外,不应该只提供 表格 和 图片 的插入代码,表格和图片在当前页面的位置信息对于实现你的目标也是很重要的,你需要补充你的代码(可以使用补充问题功能),使其从\documentclass
开始到end{document}
结束,同时页面位置和你的截图相同。
问 bnuthesis毕业论文模板无法编译的问题