我想为 CV 文档定义一个类似节的命令,该命令需要三个参数:角色、公司和时间 - 如下所示。由于我缺乏 TeX 经验,所以我使用了该titlesec
包,但感觉有点牵强,因为节标题没有三个参数。
我自己在 TeX 中的尝试,如下所示\exp
,有点奏效,但在需要巧妙处理分页符和其他极端情况的情况下会失败。我无法对titlesec
使用的代码进行逆向工程,如果能直接实现这样的标题命令,我将不胜感激。它不需要创建目录条目。
\documentclass{article}
\usepackage[explicit]{titlesec}
\titlespacing*{\subsection}{0pt}{*2}{0pt}
\titleformat{\subsection}
{\normalfont\sffamily}
{}{0pt}{#1}
\def\experience#1#2#3{\subsection{\textbf{#3} -- #1\hfill #2}}
\begin{document}
\experience{Startup Inc.}{June 2013 -- June 2015}{Developer}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
amet.
\def\exp#1#2#3{
\ifhmode\par\fi
\removelastskip
\vskip2ex plus 0.5ex minus 0.3 ex\goodbreak
\hbox to \hsize{\sffamily\textbf{#3} -- #1\hfill #2}
\nobreak}
\exp{Startup Inc.}{June 2013 -- June 2015}{Developer}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
amet.
\end{document}
答案1
一个主张,但当然不是非常完美(太多设计问题不清楚)
\documentclass{article}
\usepackage{xparse}
\usepackage{letltxmacro}
\makeatletter
\LetLtxMacro\orig@subsection\subsection
\NewDocumentCommand{\experience}{mmm+m}{%
\orig@subsection*{\textbf{#3} -- #1\hfill #2}
#4%
}
\makeatother
\begin{document}
\experience{Startup Inc.}{June 2013 -- June 2015}{Developer}{%
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
amet.
}
\experience{\LaTeXe\ Inc.}{June 1997 -- June 2060}{Core user}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
amet.
\end{document}
答案2
这里的主要问题是不允许在标题和文本之间有分页符;我认为使用没有什么不好\subsection
,因为该文档似乎是一份简历。
我建议一个环境,以便您稍后可以决定是否允许在正文中分页。
\documentclass{article}
\usepackage{titlesec}
\titlespacing*{\subsection}{0pt}{*2}{0pt}
\titleformat{\subsection}
{\normalfont\sffamily}
{}{0pt}{}
\newenvironment{experience}[3]
{\subsection{\textbf{#3} -- #1\hfill #2}}
{\par}
\begin{document}
\begin{experience}{Startup Inc.}{June 2013 -- June 2015}{Developer}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
amet.
\end{experience}
\begin{experience}{Startup Inc.}{June 2013 -- June 2015}{Developer}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
amet.
\end{experience}
\end{document}
你可以确保没有分页符
\newenvironment{experience}[3]
{\subsection{\textbf{#3} -- #1\hfill #2}
\begin{minipage}{\textwidth}}
{\end{minipage}\par}