LaTeXStudio
LaTeXStudio
这家伙很懒,什么也没写!

注册于 4年前

回答
474
文章
292
关注者
199

这些细节的问题,的确需要点精力去做的,如果你对字体设置这些都不熟悉是比较难的。

看看 xeCJK 的文档,看看字体加粗和伪粗体的设置,然后看 tex-fontset-xxx.def 里面的定义

行距的问题,这个是看看这个文章:https://mp.weixin.qq.com/s/q7Pa5QDV8O_4l3376jXu1w

实际使用中,就是凑就好了,这完全是两个世界的软件,尤其是 word不是专业排版软件,我们非要把 LaTeX 伪装成一个非排版软件的样子,这是需要很多额外工作的。

你没有完整下载文件,不要复制。

这个是常见问题了,你的版式变化在 fancyhdr 之后,导致fancyhdr的版式尺寸与你设置的尺寸不一致。换一下顺序即可。

\documentclass[twocolumn,oneside,10pt,a4paper]{ctexbook}

\usepackage[showframe,nomarginpar,hmargin=1.5cm,vmargin=1.5cm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{}%%留空则不显示
\fancyhead[C]{\rightmark}%%留空则不显示%\rightmark显示当前节标题%\leftmark显示当前章标题
\fancyhead[R]{}%%留空则不显示
\fancyfoot[C]{\thepage}%%留空则不显示
\usepackage[hshift=0mm,vshift=0mm]{fgruler}


\begin{document}
\pagestyle{fancy}
\chapter{第1章}
\null\newpage
\null\newpage
\null\newpage
\null\newpage
\null\newpage
\null\newpage
\null\newpage
\null\newpage
\end{document}

image.png

Overleaf 就没有符合中国规范标准的中文字体,还在这样用,谁都救不了。

提供下你的代码。这样不好弄呀。我整理下答案:

有一个方案就是这样的,listings 有个技巧,就是 。literate 参数用于定义如何处理源代码中的特殊字符,它允许用户指定一个字符和相应的替换文本,从而在显示源代码时进行自定义替换或格式化。

效果如下:

\documentclass[UTF8]{ctexart} % 使用 UTF8 编码和 ctexart 文档类
\usepackage[dvipsnames]{xcolor}
\usepackage{minted} % 语法高亮和代码样式设置方面更加强大和灵活
\usemintedstyle{xcode}
\usepackage{listings}% 引入listings包,用于在文档中插入代码,并可自定义代码样式
\lstset{
    language=c,
    basicstyle=\ttfamily, % 设置字体族
    numbers=left, %行号在左侧显示
    numberstyle= \tiny, %行号字体
    % identifierstyle=\color{black},
    keywordstyle=\bfseries\color{NavyBlue}, % 设置关键字为粗体,颜色为NavyBlue
    morekeywords={}, % 设置更多的关键字,用逗号分隔
    emph={}, % 指定强调词,如果有多个,用逗号隔开
    emphstyle=\bfseries\color{Rhodamine}, % 强调词样式设置
    commentstyle=\itshape\color{black!50!white}, % 设置注释样式:斜体+浅灰色
    columns=flexible %让注释变得紧凑
    stringstyle=\bfseries\color[RGB]{128,0,0}, % 设置字符串样式
    showstringspaces=false, %不显示代码字符串中间的空格标记
    breaklines=true,  %代码过长则换行
    frame=shadowbox, %阴影效果 + 用方框框住代码块
    % backgroundcolor=\color{red!50!green!50!blue!50}, %代码块背景色为浅灰色
    rulesepcolor= \color{ red!20!green!20!blue!20}, %代码块边框颜色
    escapeinside=``, %英文分号中可写入中文
    xleftmargin=2.4em, 
    xrightmargin=0.5em,
    aboveskip=1em,
    framexleftmargin=2em,
    %directivestyle={},
    literate={float.}{float.}6,
}
\usepackage{graphicx}
\title{这是一个中文文章的标题} % 文章标题
\author{作者名} % 作者名字
\date{\today} % 文章日期,使用当前日期

\begin{document}

\maketitle % 生成标题页

\tableofcontents%生成目录
\begin{lstlisting}
#include<stdio.h>
#include<float.h> //这是一个新的库
int main()
float a = 1.0;
#ifdef foo
#else
#endif
printf("Today is a niceday!")
printf("FLT_MIN:%f\n"FLT_MIN);
printf("FLT_MAX:%f\n"FLT_MAX);
printf("DBL_MIN:%f\n"DBL_MIN);
printf("DBL_MAX:%f\n"DBL_MAX);
return0:
\end{lstlisting}

\end{document}

image.png

看看 小 L 的文章都解释清楚了:

https://liam.page/2016/12/11/LaTeX-traditional-font-scheme/

.pfb 文件包含了字符的形状,它们决定了字符在打印(或者预览)中是怎样呈现的。这些文件不会被用户直接调取,而是被引擎或者驱动程序调用。当然,也有 .pfa 文件,它和 .pfb 文件储存的信息完全相同,只不过它是用可见的 ASCII 码字符来储存信息的,因此它会比相应的 .pfb 文件要大出不少。

定制化能力强的是 enumitem,使用起来比较随意的是 enumerate,如果你定制样式要求高,你可以用 enumitem,尽量不要一起用。

可以重定义下 \tableofcontents 如下示例:

\documentclass{article}
\usepackage{multicol,xcolor}

\makeatletter
\setlength{\columnseprule}{1pt}
\renewcommand{\columnseprulecolor}{\color{green}} 
\renewcommand\tableofcontents{%
    \section*{\makebox[\linewidth][c]{\contentsname}%
      \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
    \begin{multicols}{2}%
    \@starttoc{toc}%
    \end{multicols}
    }
\makeatother

\begin{document}

\tableofcontents

\section{test}

\section{another test}
\end{document} 

效果如下:
image.png

那个字体是要付费购买的字体,一般用户电脑都没有的。最好去掉。

发布
问题