简历左上角加中国海洋大学校徽(可选,默认不印) #13

新增 \cvlogo[<文件名>]{<宽度>},默认不调用、不出现,不影响现有版面。

- cls:导言区只登记参数,真正画图挪到 \makecvheader 开头的 \@makecvlogo,
  否则导言区产生内容报 Missing \begin{document}
- 定位用 tikzpicture[remember picture, overlay] + current page.north west,
  距纸左 10mm / 距纸顶 6mm(相对纸边,不随页边距变)
- 距顶不照搬科技报告的 20mm:简历页边距 15mm、姓名墨迹顶 17.2mm,会压到姓名
- tikzpicture 即使全 overlay 仍占一行 17pt,用 \vspace*{-17pt} 抵消;
  \smash / \hbox to 0pt / \vbox to 0pt 三种写法实测都消不掉
- 尺寸定 28mm(横式 2400:605 ⇒ 高 7.06mm),是 15mm 边距下的上限附近

实测:logo 28.00×7.06mm,x=10.07mm、y=6.07mm,下沿 13.1mm;
姓名 y 保持 48.8pt 未位移;3 页 0 error / 0 Overfull / 0 Underfull / 0 个 ×。
体积 158KB → 573KB(内嵌 2400px 原图,实际只用 28mm≈660px)。
This commit is contained in:
2026-10-27 14:25:27 +08:00
parent 69da5b41a6
commit 8e3017f359
5 changed files with 125 additions and 0 deletions
+47
View File
@@ -147,6 +147,53 @@ Pagella / XCharter 宽 7~11%,会把全库的断行推着变。
原本「刚好挤进去」的长串就会暴露成真溢出——本次换字体就是这样才发现
ICIEA 那条论文冲出 88.5pt 的。
### 5. 左上角校徽(可选)
默认**不印**校徽,`简历.tex` 里加一行才出现:
```latex
\cvlogo{28mm} % 横式彩色校徽(默认)
\cvlogo{28mm}[ouc_logo_彩色] % 换圆形校徽
\cvlogo{28mm}[ouc_横式_海大红] % 换配色
```
位置默认距**纸边**左 10mm、上 6mm(不随页边距变),导言区可微调:
```latex
\setlength{\cvlogox}{12mm}
\setlength{\cvlogoy}{8mm}
```
`简历/logos/` 下**只放实际用到的那一个**(横式彩色,377 KB)。想换款式从
`../科技报告/logos/` 复制过来——那边是全部官方 VI 素材:
| 文件 | 形状 | 像素 |
|---|---|---|
| `ouc_logo_{彩色,海大红,海大蓝,天蓝,专金,墨黑}.png` | 圆形 | 1200×1200 |
| `ouc_横式_{彩色,海大红,海大蓝,黑}.png` | 横式 | 2400×640 |
不预先全放进来,是因为每个 300~380 KB,用不到就是纯占体积。
⚠️ 四点务必注意:
1. **28mm 是这块空间的上限附近**。简历页边距只有 15mm,姓名墨迹顶在 17.2mm;
28mm 宽的横式 logo 高 7.06mm,放在距顶 6mm 处下沿到 13.1mm,距姓名仍有
11.6pt(4.1mm)。再大就会挤到姓名。
2. **距顶不能照搬科技报告的 20mm**。科技报告页边距 27mm,简历只有 15mm,
照抄会直接压到姓名上。同理距顶 8mm 只剩 2mm 间隙,视觉上贴着。
3. **必须用负 `\vspace*{-17pt}` 抵消**。`tikzpicture` 即使内容全是 `overlay`,
本身仍占一行高度(17pt),会把姓名整体往下推。`\smash`、`\hbox to 0pt`、
`\vbox to 0pt` 三种写法都消不掉——要断行就得有 `\par`,有 `\par` 就有行高。
这 17pt 与 logo 尺寸无关(18~30mm 五档实测一致),改 `\parskip` 或正文字号
后需重新量。
4. **位置偏小,专业印刷需上调**。距纸左 10mm 已接近 A4 裁切余量(一般
10~12mm),距顶 6mm 也偏紧。屏幕阅读和普通办公打印没问题(A4 不裁切),
若要印刷装订,把 `\cvlogoy` 改成 8mm 以上,并接受 logo 与姓名靠得近一点。
⚠️ 体积代价:PDF 从 158 KB 涨到 573 KB(内嵌 2400×605 的原图,实际只用到
28mm ≈ 660px,约 3.6 倍冗余)。保留原图是为了将来放大不糊;真要瘦身,
把 png 缩到 700px 宽即可。
## 写的时候容易踩的三个坑
1. **`\newExperience` 的参数顺序是「结束在前、开始在后」** —— 上游定义就是先印
+70
View File
@@ -354,6 +354,75 @@
% Usage \photo{<diameter>}{<photo>}
\newcommand{\photo}[2]{\def\@photo{#2}\def\@photodiameter{#1}}
%----------------------------------------------------------------------
% 校徽(可选,默认不印)
%
% 用法(导言区,\begin{document} 之前):
% \cvlogo{28mm} % 用仓库里带的横式彩色校徽
% \cvlogo{28mm}[ouc_logo_彩色] % 换成圆形校徽
% \cvlogo{28mm}[ouc_横式_海大红] % 换配色
% 不调用就完全不出现,版面与调用前逐字节一致。
%
% ⚠️ 本目录 logos/ 下**只放实际用到的那一个**(横式彩色,377KB)。
% 想换圆形或别的配色,从 ../科技报告/logos/ 复制过来即可,
% 那边有全部官方 VI 素材:
% ouc_logo_{彩色,海大红,海大蓝,天蓝,专金,墨黑}.png 圆形 1200×1200
% ouc_横式_{彩色,海大红,海大蓝,黑}.png 横式 2400×640
% (不预先全放进来,是因为每个 300~380KB,用不到就是纯占体积。)
%
% ⚠️ 导言区只**登记**参数,真正画图是在 \makecvheader 开头做的
% (见下面 \@makecvlogo)。原因:导言区不能产生任何内容,
% 直接在导言区画 tikzpicture 会报
% ! LaTeX Error: Missing \begin{document}.
%
% 定位:距纸左 10mm、距纸顶 6mm(相对【纸边】,不随页边距变)。
% 两个数值分别由 \cvlogox / \cvlogoy 控制,想在导言区微调就重设:
% \setlength{\cvlogox}{12mm}
% \setlength{\cvlogoy}{8mm}
%
% ⚠️ 为什么距顶是 6mm 而不是科技报告的 20mm:
% 简历页边距只有 15mm(科技报告是 27mm),抬头第一行「姓名」的墨迹顶
% 就在 48.8pt = 17.2mm。28mm 宽的横式 logo 高 7.06mm,若距顶 20mm
% 会直接压到姓名上,距顶 8mm 也只剩 6pt 间隙(2mm,视觉上贴着)。
% 实测 6mm 时 logo 下沿在 13.1mm,仍在 15mm 版心边距以内,
% 距姓名顶有 11.6pt(4.1mm),是这块空间里最平衡的位置。
%
% ⚠️ 距纸左 10mm 已接近 A4 打印的裁切余量(一般 10~12mm),
% 不要再改小。同理距顶 6mm 也偏小 —— **屏幕阅读和普通办公打印没问题**
% (A4 纸本身不裁切),但若要专业印刷/装订,建议把 \cvlogoy 改成 8mm
% 以上,并接受 logo 与姓名靠得近一点。
%
% ⚠️⚠️ 为什么后面跟着 \vspace*{-17pt}:
% tikzpicture 即使全部内容都是 overlay,它本身仍是一个**占一行的盒子**,
% 插在 \makecvheader 前面会把姓名整体往下推 17pt(实测 48.8 → 65.8)。
% \smash、\hbox to 0pt、\vbox to 0pt 三种写法都消不掉这一行
% (因为要断行就必须有 \par,有 \par 就有行高)。
% 直接用等量的负 \vspace 抵消,实测姓名回到 48.8pt,误差 0.0。
% ⚠️ 这个 17pt 与 logo 尺寸无关(18~30mm 五档实测姓名都是 48.8),
% 它是一行正文的高度。但若改了 \parskip 或正文字号,要重新量。
%----------------------------------------------------------------------
\newlength{\cvlogox}
\newlength{\cvlogoy}
\setlength{\cvlogox}{10mm}
\setlength{\cvlogoy}{6mm}
\newcommand{\cvlogo}[2][ouc_横式_彩色]{%
\def\@cvlogowidth{#2}%
\def\@cvlogofile{#1}%
}
% 内部命令:真正画 logo。未调用 \cvlogo 时为空操作。
\newcommand{\@makecvlogo}{%
\ifdefined\@cvlogofile
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=north west, inner sep=0pt,
xshift=\cvlogox, yshift=-\cvlogoy]
at (current page.north west)
{\includegraphics[width=\@cvlogowidth]{logos/\@cvlogofile.png}};
\end{tikzpicture}%
\par\vspace*{-17pt}%
\fi
}
% Render author's address
% Usage: \address{<address>}
\newcommand*{\address}[1]{\socialtext{\locationSymbol}{#1}}
@@ -416,6 +485,7 @@
% Render CV header
% Needs \@firstname, \@lastname and \@tagline to be defined
\newcommand*{\makecvheader}{
\@makecvlogo% 校徽(未调用 \cvlogo 时为空操作,不占位)
\ifundef{\@alternative}{
\ifundef{\@photodiameter}{
Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

BIN
View File
Binary file not shown.
+8
View File
@@ -68,6 +68,14 @@
\tagline{中国海洋大学 教授}
\photo{2.5cm}{photo}
% 左上角校徽(可选)。不写这一行就完全不出现。
% 28mm 是这块空间里视觉最平衡的尺寸:页边距只有 15mm、姓名墨迹顶在 17.2mm,
% 再大就压到姓名上。想换样式:\cvlogo{28mm}[ouc_logo_彩色](圆形校徽)
% 想微调位置(默认距纸左 10mm、距纸顶 6mm):
% \setlength{\cvlogox}{12mm}
% \setlength{\cvlogoy}{8mm}
\cvlogo{28mm}
\socialinfo{
\infos{出生年月:1985.03 \quad 籍贯:山东青岛 \quad 政治面貌:中共党员}\\
\smartphone{(+86) 138 0000 0000}