polossk / LaTeX-Template-For-NPU-Thesis

西北工业大学本科毕业设计论文模版 | Thesis Template for Northwestern Polytechnical University
GNU General Public License v3.0
250 stars 43 forks source link

关于数字和字母的times new Roman字体未正确设置,另外Latex行间距与word行间距不能简单换算 #39

Closed AowerDmax closed 2 years ago

AowerDmax commented 2 years ago

打印论文后发现,论文行间距明显比word模板要小很多,看起来有点像1倍行间距的问题,然后就是字母(英文)和数字没用采用times new Roman 字体,差别很明显。

相关链接知乎

AowerDmax commented 2 years ago

另外附上最新的一版毕业论文模板pdf实例,后续解决方法会在Issues里面添加

polossk commented 2 years ago

感谢提醒,我们后续也会进行更改,英文字母这个可以参考 另一个硕博论文模板的处理方式,行距改下 \baselineskip 吧

AowerDmax commented 2 years ago

非常感谢作者的回答,关于英文和字母问题,可以在进行设置

%---------------------------------设置中文字体---------------------------------%
\usepackage{fontspec}
\usepackage[SlantFont,BoldFont,CJKchecksingle]{xeCJK}
\usepackage{CJKnumb}
% 使用 Adobe 字体
\newcommand\defaultSog{SimSun}                      % 宋体, 用于正文
\newcommand\defaultHei{SimHei}                      % 黑体, 用于标题
\newcommand\defaultKai{KaiTi}                       % 楷体, 一般用于强调
\newcommand\defaultFag{FangSong}                    % 仿宋, 一般用于强调
\newcommand\codeFont{Consolas}
%%-----------------------------------------------------------------------------%
\newcommand\defaultEngFont{Times New Roman}                 % 英文文本默认字体                    
% 设置字体
\defaultfontfeatures{Mapping=tex-text}                      % 启用 TeX Ligatures
\setCJKmainfont[ItalicFont=\defaultKai, BoldFont=\defaultHei]{\defaultSog}
\setCJKsansfont[ItalicFont=\defaultKai, BoldFont=\defaultHei]{\defaultSog}
\setCJKfamilyfont{song}{\defaultSog}                        % 设置 CJK 字体族
\setCJKfamilyfont{hei}{\defaultHei}                         %
\setCJKfamilyfont{kai}{\defaultKai}                         %
\setCJKfamilyfont{fang}{\defaultFag}                        %
\setCJKfamilyfont{eng}{\defaultEngFont}                     %
\setmonofont{\codeFont}                                     %
\setmainfont{\defaultEngFont}                               %
\setCJKfamilyfont{nwpu}{nwpuname}
\newcommand{\fSong}{\CJKfamily{song}}                       % 宋体: fSong
\newcommand{\fHei}{\CJKfamily{hei}}                         % 黑体: fHei
\newcommand{\fKai}{\CJKfamily{kai}}                         % 楷体: fKai
\newcommand{\fFang}{\CJKfamily{fang}}                       % 仿宋: fFang
\newcommand{\fEng}{\CJKfamily{eng}}                         % 英文: fEng
\newcommand{\fNWPU}{\CJKfamily{nwpu}}
%------------------------------------------------------------------------------%

至于行间距问题,可以通过在每个子tex文件中开头添加以下代码

\renewcommand{\baselinestretch}{1.5}
\fontsize{12pt}{13pt}\selectfont

但是因为word的行间距并不是固定的,依靠字体的大小,上面的设置只能在times new roman宋体小四号上和word有相同的效果

如何根据标题的字体大小来动态的设置行间距?请多指教

polossk commented 2 years ago

我当初的方法比较笨拙,你可以看到我当初在 setting 里字体字号设置了很多,甚至同字号不同行距的也有多种(比如万恶小四)。考虑到论文相对而言格式比较稳定,字号也相对统一,所以我个人建议不如你直接把默认的小四字号那里选择一下,或者直接使用目前现有的,比如当前的这个\sLargeHalfXiaosi 似乎基本吻合。

\newcommand{\sHalfXiaosi}{\fontsize{12.5pt}{16.25pt}\selectfont}        % 半小四, 1.25倍
\newcommand{\sLargeHalfXiaosi}{\fontsize{13pt}{19pt}\selectfont}        % 半小四, 1.5倍
\newcommand{\sXiaosi}{\fontsize{12pt}{14.4pt}\selectfont}               % 小四, 1.25倍
npuzl commented 2 years ago

您好,我按照这个设置,数学环境内的字体仍然不是times new roman,请问有办法让数学环境内字体变成times new roman吗

polossk commented 2 years ago

@npuzl 首先我不理解为什么需要把数学环境内的字体变成times new roman,我不记得有任何要求需要这么做,印象里我只记得有正文部分的英文使用times new roman字体这一规定要求。 如果你实在是需要这么搞,参考这份回答吧 LaTeX数学公式的默认字体是什么? - Chazeon的回答 - 知乎

npuzl commented 2 years ago

@npuzl 首先我不理解为什么需要把数学环境内的字体变成times new roman,我不记得有任何要求需要这么做,印象里我只记得有正文部分的英文使用times new roman字体这一规定要求。 如果你实在是需要这么搞,参考这份回答吧 LaTeX数学公式的默认字体是什么? - Chazeon的回答 - 知乎

在答辩时老师指出了我这个问题,因为别人用的word,公式字体是TimesNewRoman,比latex模板里面的公式字体粗一点,且小写字母i的差异很明显,这个问题被老师指出了,要求我改正

AowerDmax commented 2 years ago

@npuzl

针对数学环境中的字体问题,个人的解决方法为,在thesis-setting.tex中添加以下代码

\usepackage[T1]{fontenc}
\usepackage{newtxmath}

mathptmx 是一个为 LaTeX 设计的字体宏包,它会将默认 rmfamily 设置为 Nimbus Roman No9 L;而将数学字体设置为对应的 Italic 字形(不足的部分使用了 CM/RSFS/Adobe Symbol 等字体)。这是同时修改默认文本字形和默认数学字形为 Times 字形最干净的宏包。 使用它可能需要借助 fontenc 宏包来辅助设置字体编码。

参考链接

注意,可能需要手动调整数学模式下的符号间距

AowerDmax commented 2 years ago

如果有更好的解决方案,请多指教,参考链接中的第一种解决方案,我在我这里并没用生效,在我的观察下,上面的方案应该是达到了times new roman字体的效果, 我主要观察的是字母 G 的形状

发现大写字母Q的样式还是不对,在公式里面,目前的解决方案是

%添加文本环境
$ \text{Q} $
polossk commented 2 years ago

我说下我个人的理解哈。一般来说,文章中的数学符号的字体都是建议使用数学环境的,而且不同类型的符号也应该使用不同的字体形式,比如三角函数y=sin(x)这种就应该使用 $y=\sin(x)$ 来显示为 $y=\sin(x)$ 而不是使用 $y=sin(x)$ 来显示为 $y=sin(x)$。所以泛泛来讲,全文只要保持数学符号的统一、清晰、规范,我个人理解这个工作已经足够了。

我能够理解有答辩评委老师指出关于字体的问题,但是你也要批判的去看这个问题究竟是好问题还是垃圾问题。如果你的论文本身已经做到了数学符号的统一、清晰、规范,只是某些地方的字体与 word 的输出不同,我并不觉得这个问题是一个好问题。

而且,Times New Roman 本身就是一种历史遗留问题,而且仅这种字体有多种变体。所以我的建议是,不要在这种细枝末节上浪费过多的时间。

参考文档:

  1. https://liam.page/2017/01/10/Times-New-Roman-and-LaTeX/
  2. https://zhuanlan.zhihu.com/p/506189673