我想知道在 LaTeX 中是否存在一种方法来创建这样的部分标题样式(用于简历):
--------------------Education-------------------
这肯定是一种错误的方法,只需添加 - 符号但需要手动写入所有字符......在这种情况下为什么还要使用 LaTeX?:)
或者类似的东西怎么样\hline
\line
?
答案1
这是一次很好的低级 TeX 命令练习。:)
\documentclass{article}
\usepackage{lipsum} % mock text
%%% this is the important code
\newcommand{\myresumesection}[1]{%
\par\addvspace{\bigskipamount}
\noindent\myresumetitle{#1}\par
\addvspace{\medskipamount}
}
\newcommand{\myresumetitle}[1]{%
\makebox[\textwidth][s]{\large\bfseries
\leaders\hrule height \dimexpr .5ex + 0.2pt\relax
depth -\dimexpr .5ex - 0.2pt\relax\hfill
\ #1\
\leaders\hrule height \dimexpr .5ex + 0.2pt\relax
depth -\dimexpr .5ex - 0.2pt\relax\hfill
}%
}
%%% end of the important code
\begin{document}
\lipsum[2]
\myresumesection{Education}
\lipsum[1]
\end{document}
这些神秘的指令是:
- 确保我们处于段落的开头
- 添加一些垂直空间
- 在框中打印标题
- 结束行
- 添加一些垂直空间
现在更加神秘指示
- 框与线一样宽
- 其内容必须拉伸以填充,
\large
尺寸和粗体类型 - 在字母中间高度打印一条规则,没有上升部或下降部(
1ex
恰好是“x”的高度);该规则实际上略高,其深度是消极的,因此最终效果是规则 0.4pt 厚度 - 打印带空格的标题
- 打印另一条规则以填充
为了避免标题后出现分页符,将第一个定义更改为
\makeatletter
\newcommand{\myresumesection}[1]{%
\par\addvspace{\bigskipamount}
\noindent\myresumetitle{#1}\par
\nobreak\vskip\medskipamount\@afterheading
}
\makeatother
(\@afterheading
这是 LaTeX 用于章节标题的魔术)
答案2
这xhfill
包裹提供了这些可扩展的规则。而且,由于这是针对简历的,因此使用 s 很可能是多余的。下面是一个展示via\section
用法的简单示例:xhfill
\mytitle[<thickness>]{<title>}
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{xhfill}% http://ctan.org/pkg/xhfill
\newcommand*{\mytitle}[2][.4pt]{%
\bigskip\noindent\leavevmode\xrfill{#1}~{\bfseries\large#2}~\xrfill{#1}\mbox{}\nobreak\par
}
\begin{document}
\mytitle{Education}
\lipsum[1]
\mytitle{Professional background}
\lipsum[2]
\end{document}
<thickness>
的默认值为.4pt
。