最近想用mordencv做个中文latex简历,moderncv本来是个英文的模板,网上可以找到很多让其支持中文的方法(见“1. 让moderncv模板支持中文”)。

不过后来发现英文版的简历上方会有大量的留白,改成中文后看起来很不紧凑,网上搜了半天也没有个统一的解决方法。于是自己研究了一下模板代码,找到了一些修改模板样式的方式,简单总结(见“2. 修改moderncv模板样式”)。(注:时间仓促,以下不详述具体细节,只介绍方法)

1. 让moderncv模板支持中文

本部分内容是参考网上的方法,由于很多是普遍通用的,因此不引用出处)

1)将mordencv.cls中的

% hyperrefs
\RequirePackage{url}
\ifpdf\RequirePackage[pdftex,]{hyperref}
\else\RequirePackage[dvips]{hyperref}\fi

修改为

\RequirePackage{ifxetex}
\ifpdf\RequirePackage[pdftex,]{hyperref}
\else
\ifxetex\RequirePackage[xetex]{hyperref}\else\RequirePackage[dvips]{hyperref}\fi

2)在.tex文件中加入中文字体的设置,比如

\usepackage[slantfont,boldfont,CJKnumber,CJKtextspaces]{xeCJK}
\setCJKmainfont[BoldFont={SimHei}, ItalicFont={KaiTi}]{SimSun}
\setCJKsansfont{KaiTi}
\setCJKmonofont{STFangsong}

3)编译时使用xelatex命令

2. 修改moderncv模板样式

moderncv模板主要包括三部分:moderncv.cls文件、.sty文件和.tex文件,分别负责不同的功能。

1)moderncv.cls文件。主要定义了一些structure command,例如firstname和lastname:

\newcommand*{\firstname}[1]{\def\@firstname{#1}}
\newcommand*{\familyname}[1]{\def\@familyname{#1}}

这些command被进一步在.sty文件中声明和定义了其在整个页面中出现的位置,然后就可以在.tex文件中对其引用。我们也可以模仿这种样式自定义自己所需要的command->在.sty文件中定义其位置->在.tex文件中引用,最终让其最终出现在简历页面中。

2).sty文件。包括两种:moderncvthemeclassic.sty和moderncvthemecasual.sty,分别对应不同的模板样式(主要是简历头部样式),在.tex文件中可以通过\moderncvtheme[blue]{classic} 声明使用哪种样式(包括模板的颜色)。我们要解决的问题是将简历头部变紧凑,而头部结构的定义出现在.sty文件中的这一部分:

\renewcommand*{\maketitle}{%% name and title\begin{minipage}[b]{\maketitlenamewidth}%\firstnamestyle{\@firstname~}\familynamestyle{\@familyname}%\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%\end{minipage}%% optional data\begin{minipage}[b]{\maketitledetailswidth}%\raggedleft\addressfont\color{addresscolor}%\ifthenelse{\isundefined{\@addressstreet}}{}{%\maketitledetailsnewline%\addresssymbol~\@addressstreet%\ifthenelse{\isundefined{\@addresscity}}{}{\\\@addresscity}}%\ifthenelse{\isundefined{\@mobile}}{}{\maketitledetailsnewline\mobilesymbol~\@mobile}%\ifthenelse{\isundefined{\@phone}}{}{\maketitledetailsnewline\phonesymbol~\@phone}%\ifthenelse{\isundefined{\@fax}}{}{\maketitledetailsnewline\faxsymbol~\@fax}%\ifthenelse{\isundefined{\@email}}{}{\maketitledetailsnewline\emailsymbol~\emaillink{\@email}}%\ifthenelse{\isundefined{\@extrainfo}}{}{\maketitledetailsnewline\@extrainfo}%\end{minipage}%% optional photo\ifthenelse{\isundefined{\@photo}}%{}%{\hspace*{\separatorcolumnwidth}\color{firstnamecolor}\framebox{\includegraphics[width=\maketitlepicturewidth]{\@photo}}}\\[3em]%% optional quote\ifthenelse{\isundefined{\@quote}}%{}%{\centering{\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}}\\[2.5em]}%}

其中定义了头像位置、联系方式等信息,可以轻松改变这些排版模式(如果懂latex命令的话,minipage是一个很好用的工具~)。需要注意的是这里一些长度字段的定义,比如\,maketitlepicturewidth,本质上都是一些变量,变量值要么引用了其他地方的长度声明,要么就是简单的赋值。一般可以从.sty文件的起始部分找到这些变量的声明和赋值,比如:

\newlength{\maketitlepicturewidth}//声明
\setlength{\maketitlepicturewidth}{\@photowidth}//应用.tex文件中的长度声明

3).tex文件。主文件,基于上述对.cls和.sty两个文件的设置,我们可以方便的在该文件中引用structure command编辑简历。

利用moderncv自定制简历样式相关推荐

  1. 利用moderncv定制简历样式

    最近想用mordencv做个中文latex简历,moderncv本来是个英文的模板,网上可以找到很多让其支持中文的方法(见"1. 让moderncv模板支持中文"). 不过后来发现 ...

  2. 如何使用利用LaTeX制作个人简历

    转自 http://www.cnblogs.com/panpei/archive/2013/02/13/2910680.html 前些日子,有点无聊,就在网上逛逛技术大牛的blogs,发现很多大牛都喜 ...

  3. ISA 2006利用Bandwidth Splitter定制带宽和限制流量

    ISA 2006利用Bandwidth Splitter定制带宽和限制流量 本文来自: 菜鸟技术网(www.cnwan.com.cn) 详细出处参考:http://www.cnwan.com.cn/a ...

  4. ant design vue利用rowClassName给table添加行样式

    ant design vue利用rowClassName给table添加行样式 目录 1. 需求:表格每行数据hasVerdict值不为'1'时标红显示 2. 实现方式:table属性rowClass ...

  5. vue3 antd项目实战——Modal弹窗自定义遮罩 (利用maskStyle属性自定义遮罩样式)

    vue3 antd项目实战--Modal弹窗自定义遮罩 maskStyle 知识回调 场景复现 关于mask遮罩的API属性 利用maskStyle属性自定义遮罩样式 知识回调 文章内容 文章链接 v ...

  6. 利用HTML创建个人简历

    利用HTML创建个人简历 HTML表格的特点: 通常情况下,同行的高度一致,同列的宽度一致. 一.标签的学习 1.表格标签 table标签 定义一个表格 tr标签 定义表格的行 声明一行,设置行高及改 ...

  7. webcast(利用sharepoint Designer 定制 Office SharePoint Server 2007)学习笔记

    讲    师:侯钟雷  微软特约讲师 北京易学育通科技发展有限公司 时    间:90 分钟 下载地址:下载地址(需先注册,不过很快) 讲座内容: SharePoint Designer是原Front ...

  8. ECharts 定制 label 样式

    起因 实现对 label 的样式定制,自定义字体颜色.大小等属性:效果如下图 实现 itemStyle: { normal: { color: '#f7ba0e', label: { show: tr ...

  9. html利用表格制作个人简历

    html利用表格制作简历 1,代码展示 <!DOCTYPE html> <html><head><meta charset="utf-8" ...

最新文章

  1. C++ 原码、反码、补码理解笔记
  2. waitpid最后以一个参数设为0_西门子MM440变频器参数设置
  3. 《剑指offer》-- 树的子结构、二叉树的镜像、二叉树的深度、平衡二叉树
  4. 初识Qt Creator
  5. c语言实现链表结构6,用c语言实现的链表结构--数据结构实验
  6. Struts2框架基础篇
  7. webstorm 创建react组件_webstorm的下载以及React环境搭建
  8. Flutter基础—布局模型之水平垂直
  9. nodejs 做后台的一个完整业务整理
  10. ASO优化:ios关键词覆盖和增量技巧
  11. 人月神话(七)没有银弹-软件工程中的根本和次要问题、20 年后的人月神话
  12. Material Design专用在线配色工具
  13. 【谦川解读】如何保证汽车“黑匣子”—EDR数据安全
  14. c语言 python java css,从零起步学编程 Python篇 Java篇 C#篇 CSS篇 全4册
  15. Windows 如何配置 scratch 3.0 GUI
  16. 使用USB转ttl给stm32下载程序
  17. js 去除下拉框重复值
  18. Keras---序贯模型
  19. 电脑常用软件下载地址
  20. NVME SAS SATA

热门文章

  1. [论文阅读笔记]Two-Stream Convolutional Networks for Action Recognition in Videos
  2. ThinkPHP6利用phpoffice/phpexcel导入表格数据
  3. pageHelper分页合理化
  4. 二苯基环辛炔-氨基;DBCO-NH2科研实验用试剂DBCO-Amine;CAS:1255942-06-3
  5. 流水线冒险(Pipeline Hazards)|计算机组成
  6. X230i如何开启Inter vt-x
  7. microRNA靶基因预测
  8. 来自西弗吉利亚大学li xin整理的CV代码合集
  9. rabbimq operation queue.declare caused a channel exception not_found
  10. uniapp实现可滑动顶部选项卡