要求在一行内写下内容,字体自动调整
\resizebox{\textwidth}{!}{test}
\resizebox{\textwidth}{!} 的含义
在 \resizebox{\textwidth}{!} 中:
\textwidth:这是一个 LaTeX 预定义的长度变量,表示当前页面文本区域的宽度。当将其作为\resizebox的宽度参数时,意味着要将对象调整到与页面文本区域等宽。!:如前面所述,它表示高度会根据指定的宽度按比例自动调整。这样可以确保对象在调整大小后不会变形。
自动等分一行
% 等宽盒子方案 (需要eqparbox包)
\usepackage{eqparbox}
\noindent
\eqmakebox[score][c]{CET-4:550分}\hfill
\eqmakebox[score][c]{CET-6:516分}\hfill
\eqmakebox[score][c]{CSP:210分}
从左边到最右边并且提前定义
\documentclass{article}
\usepackage{eqparbox} % 必需宏包
\usepackage{xparse} % 更强大的命令定义
% 专业级等宽分布命令(自动处理中文字符)
\NewDocumentCommand{\scoreline}{mmm}{%
\noindent
\eqmakebox[score][l]{#1}\hfill
\eqmakebox[score][c]{#2}\hfill
\eqmakebox[score][r]{#3}%
}
\begin{document}
% 实际使用示例
\scoreline{CET-4:550分}{CET-6:516分}{CSP:210分}
\end{document}
代码逐行解释
\noindent
- 在 LaTeX 中,段落默认是有缩进的。
\noindent命令的作用是取消当前段落的缩进,使得文本从行首开始排版。所以这行代码会让后续的内容顶格开始显示。
\eqmakebox[score][c]{CET - 4:550分}
\eqmakebox命令:该命令来自eqparbox宏包,其主要功能是创建一个具有相同宽度的盒子。具体来说,它会根据指定的标签(这里是score),让所有使用相同标签的\eqmakebox盒子具有相同的宽度,这个宽度是所有这些盒子中最宽的那个盒子的宽度。[score]:这是\eqmakebox的第一个可选参数,它是一个标签。所有使用[score]标签的\eqmakebox盒子会被调整为相同的宽度。[c]:这是\eqmakebox的第二个可选参数,用于指定盒子内内容的对齐方式。c表示居中对齐,也就是让 “CET - 4:550 分” 这个内容在盒子内水平居中显示。{CET - 4:550分}:这是\eqmakebox的必选参数,里面放置的是要显示的具体内容。
\hfill
\hfill是 LaTeX 中的一个水平填充命令,它会尽可能地填充当前行剩余的水平空间。在这段代码里,它的作用是在不同的成绩信息之间添加足够的空白,使它们在一行内均匀分布。
项目 项目简介 负责内容
\usepackage{xeCJK} % 中文字体支持
\usepackage[x11names]{xcolor} % 专业色彩管理
\usepackage{amssymb} % 数学符号库
\usepackage{eqparbox} % 等宽盒子
% 定义强调色(皇家蓝)
\definecolor{AccentColor}{RGB}{65 105 225}
\newcommand{\project}[3]{%
\noindent
\textcolor{AccentColor}{%
\raisebox{-0.2ex}{\Large$\checkmark$}%
\hspace{0.5em}%
}
\eqmakebox[project][l]{%
\textcolor{AccentColor}{%
\bfseries\large #1% 项目名称
}%
}%
\par\vspace{0.5ex}% 垂直间距
\hspace*{2em}% 悬挂缩进
\begin{minipage}{\dimexpr\textwidth-2em}% 限制宽度
\textcolor{gray}{\footnotesize\textbf{项目简介:}}\\*
\small #2% 简介内容
\vspace{0.8ex}% 段落间距
\textcolor{gray}{\footnotesize\textbf{负责工作:}}\\*
\small #3% 工作内容
\end{minipage}
}
与datedsubsection连用会有下面的报错…
Package hyperref Warning: Token not allowed in a PDF string (Unicode): removing `math shift' on input line 15.
在LaTeX中使用格式命令作为章节标题参数时,需通过以下方式避免hyperref警告:
% 正确写法示例
\datedsubsection{%
\texorpdfstring{ % 关键解决命令
\project{基于YOLO的海洋无人艇船海图像目标识别项目}% 文档显示内容
{基于YOLO的海洋无人艇船海图像目标识别项目}% PDF书签纯文本
}%
}{2023.07 -- 2024.04}解决方案原理:
问题根源:
hyperref在生成PDF书签时要求纯文本原写法
\project{}包含颜色/字体等格式命令格式控制符(
\textcolor,\raisebox等)无法转换为PDF书签
% 配置全局颜色
\definecolor{AccentColor}{RGB}{65 105 225} % 强调色
\definecolor{LabelGray}{RGB}{128 128 128} % 标签灰
% 优化列表样式
\usepackage{enumitem}
\setlist[itemize]{%
label=\textcolor{AccentColor}{\scriptsize$\bullet$},
leftmargin=1.5em
}
\newcommand{\project}[3]{%
\noindent
\textcolor{AccentColor}{%
\raisebox{-0.2ex}{\Large$\checkmark$}%
\hspace{0.5em}%
}
\eqmakebox[project][l]{%
\textcolor{AccentColor}{%
\bfseries\large #1% 项目名称
}%
}%
\par\vspace{0.5ex}% 垂直间距
\hspace*{2em}% 悬挂缩进
\begin{minipage}{\dimexpr\textwidth-2em}% 限制宽度
\textcolor{gray}{\footnotesize\textbf{项目简介:}}\\*
\small #2% 简介内容
\vspace{0.8ex}% 段落间距
\textcolor{gray}{\footnotesize\textbf{负责工作:}}\\*
\small #3% 工作内容
\end{minipage}
}
\\* 的作用
换行:和 \ 一样,\* 能实现行内的换行操作。一般在表格、列表、数学环境等当中使用,以实现内容的分行显示。
禁止分页:\* 和 \ 的关键区别在于,\* 会禁止在换行的位置进行分页。也就是说,即使当前页面剩余空间不足以容纳下一行内容,LaTeX 也不会在这里分页,而是会把内容挤到当前页面,或者通过调整排版参数来处理。
{的作用
1. 注释作用
在 LaTeX 中,% 后面的内容会被当作注释,编译时会被忽略。例如代码里的 % 项目名称 就是注释,它能帮助开发者理解代码的含义,不会对编译结果产生影响。
2. 避免多余空格
在 LaTeX 里,换行符会被当作空格处理。如果在命令定义或者宏中,换行符引入的空格可能会影响命令的执行结果或者排版效果。使用 % 可以避免这种情况。
博客跳转
\newcommand{\basicInfoItem}[2]{%
\faIcon{#1}\ \href{#3}{\textcolor{blue}{\textit{#2}}}
}
计算机技能 标题 直接显示的链接跳转 介绍
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
urlcolor = blue,
linktoc = none
}
% 定义URL斜体样式
\renewcommand\UrlFont{\color{blue}\itshape} % 蓝色斜体
\newcommand{\projectexperience}[3]{%
\vspace{0.5em}\noindent
\textbf{\textsc{#1}} \hfill
\href{#2}{\underline{\url{#2}}} % 使用url包裹自动换行
\vspace{0.2em}\newline
\hangindent=2em\hangafter=1
#3
\par\vspace{0.5em}\normalsize
}
网址写法
\itshape使用错误:\itshape是一个声明式的命令,它用于改变当前字体为斜体,并不需要花括号包裹参数。正确的用法是直接使用该声明,后续的文本会自动应用斜体样式。而在的代码里,把文本用花括号括起来放在\itshape后面,这不符合其使用规范。\color使用问题:\color同样是声明式命令,它的正确使用方式是\color{颜色名},之后的文本会采用指定颜色。和\itshape一样,不能将文本用花括号括起来放在\color后面。- 嵌套命令的花括号问题:虽然这里使用花括号嵌套命令本身语法上没有错误,但为了代码的清晰和可读性,应该合理使用。
解决方案
可以将代码修改为如下形式,以正确使用这些命令:
\href{https://pb.cn}{\underline{\color{blue}\itshape 你好}}
而不是
\href{https://pb.cn}{\underline{\color{blue}\itshape{你好}}}
latex中别忘记使用转义\\
字体和行距 局部
动态计算行距(行高=字号×1.2):
\fontsize{10pt}{\dimexpr10pt*1.2}\selectfont
这是采用1.2倍行高的示例文本(10pt字配12pt行距)。当字号变化时,行距会自动按比例调整,这种设置特别适合需要保持视觉平衡的多级标题排版。
\fontsize{14pt}{\dimexpr14pt*1.2}\selectfont
同样采用自动行距计算方式,此时行距会根据当前字号(14pt)自动调整为16.8pt。相比固定行距,这种动态比例设置能更好适应不同层级的排版需求。
\fontsize{18pt}{\dimexpr18pt*1.2}\selectfont
通过动态计算方式,即使字号增大到18pt,行距也会自动调整为21.6pt。这种方法在制作演示文稿或强调性内容时非常有效,既能保持文字清晰可读,又能增强视觉层次感。
几种常见的字体大小
{\tiny 最小} \\
{\small 小} \\
{\normalsize 正常} \\
{\large 大} \\
{\Huge 特大 \\
10pt 文档类
在 article、report、book 等文档类中,如果使用 10pt 选项(这是默认选项),字体大小命令对应的 pt 值如下:
| 字体大小命令 | 对应 pt 值 |
|---|---|
\tiny |
5pt |
\small |
9pt |
\normalsize |
10pt |
\large |
12pt |
\Huge |
20pt |
11pt 文档类
当使用 11pt 选项时,字体大小命令对应的 pt 值如下:
| 字体大小命令 | 对应 pt 值 |
|---|---|
\tiny |
6pt |
\small |
10pt |
\normalsize |
11pt |
\large |
14pt |
\Huge |
24pt |
12pt 文档类
若使用 12pt 选项,字体大小命令对应的 pt 值如下:
| 字体大小命令 | 对应 pt 值 |
|---|---|
\tiny |
6pt |
\small |
10.95pt |
\normalsize |
12pt |
\large |
17pt |
\Huge |
30pt |
示例代码验证
可以通过以下 LaTeX 代码来验证上述对应关系:
\documentclass[10pt]{article}
\usepackage{lmodern}
\begin{document}
{\tiny 这是 \verb|\tiny| 字体大小,理论上应为 5pt。}\\
{\small 这是 \verb|\small| 字体大小,理论上应为 9pt。}\\
{\normalsize 这是 \verb|\normalsize| 字体大小,理论上应为 10pt。}\\
{\large 这是 \verb|\large| 字体大小,理论上应为 12pt。}\\
{\Huge 这是 \verb|\Huge| 字体大小,理论上应为 20pt。}
\end{document}
可以将文档类选项分别改为 11pt 和 12pt 来查看不同的对应关系。编译这个 LaTeX 文件后,在生成的 PDF 中可以观察到不同字体大小的实际效果。