我正在尝试改进我使用 LaTeX 编写的简历。我想显示类似这样的章节标题
但我不知道该怎么做;
在章节标题旁边添加空白,该空白与示例图所示的文本之前的内容相同。
添加与页边距完全相同的规则,从文本后开始,到文本宽度大小的末尾结束。这对我来说很难,因为规则的大小根据占据纸张文本宽度一部分的文本大小而不同。
这是造成部分问题的 MWE。
%pdfLaTeX
\documentclass{article}
\usepackage{marginnote}
\usepackage{color}
\definecolor{darkcandyapplered}{rgb}{0.64, 0.0, 0.0}
\newcommand{\stitle}[2] {%
\noindent\textcolor{darkcandyapplered}{\large \bf #1}%
\reversemarginpar\marginpar%
{\raggedleft \textcolor{darkcandyapplered}{\rule{2.35cm}{8.5pt}} \\*[-.8pc]}%
\\[#2\baselineskip]}
\begin{document}
\stitle{Education}{0}
\end{document}
答案1
您可以使用分段命令,借助titlesec
:
\documentclass{article}
\usepackage{titlesec}
\usepackage{xcolor}
\usepackage{lipsum}
\definecolor{darkcandyapplered}{rgb}{0.64, 0.0, 0.0}
\titleformat{\section}
{\Large\bfseries}
{}
{0pt}
{\betweenrules}
\titlespacing*{\section}
{0pt}% space at left
{1ex}% space above
{2ex}% space below
\newcommand{\betweenrules}[1]{%
\makebox[0pt][r]{\color{darkcandyapplered}\vrule width 2cm height 1.5ex \hspace{1em}}%
#1% the title
\hspace{1em}%
\color{darkcandyapplered}%
\leaders\hrule height 1.5ex\hfill
}
\begin{document}
\lipsum[3]
\section{Education}
\lipsum[1-2]
\end{document}
调整参数以适应。
答案2
这是一个简单的解决方案,没有marginnote
:我只是从@David Carlisle那里借用了一个代码。另外,在我看来,无衬线字体在如此繁重的规则下看起来会更好,并且与cabin
它们特别匹配。您还可以考虑将规则的高度设置为与小写 字母,而不是大写字母:
\documentclass{article}
\usepackage[showframe, reversemp]{geometry}
\usepackage{cabin}
\usepackage{color}
\definecolor{darkcandyapplered}{rgb}{0.64, 0.0, 0.0}
\makeatletter
\newcommand\thickrulefill[1][1ex]{\leavevmode\leaders\hrule height#1\hfill\kern\z@}
\makeatother
\newcommand{\stitleA}[2] {%
\noindent\textcolor{darkcandyapplered}{\large\sffamily\bfseries\llap{\rule{\marginparwidth}{8.4pt}\hspace*{\marginparsep}}\hspace*{-\fontdimen2\font}#1\hskip\marginparsep\thickrulefill[8.4pt]}%
\\[#2\baselineskip]}
\newcommand{\stitle}[2] {%
\noindent\textcolor{darkcandyapplered}{\large\sffamily\bfseries%
\llap{\rule{\marginparwidth}{1ex}\hspace*{\marginparsep}}\hspace*{-\fontdimen2\font}#1\hskip\marginparsep\thickrulefill}%
\\[#2\baselineskip]}
\begin{document}
\stitle{Education}{0}
\stitleA{Education}{0}
\end{document}
答案3
\documentclass{article}
\usepackage[showframe, reversemp]{geometry}
\usepackage{cabin}
\usepackage{xcolor}
\usepackage{xhfill}
\definecolor{darkcandyapplered}{rgb}{0.64, 0.0, 0.0}
\newcommand\stitle[1]{%
\noindent\textcolor{darkcandyapplered}{%
\hspace*{\dimexpr-\marginparwidth-\marginparsep}%
\rule{\marginparwidth}{2ex}%
\hspace{\marginparsep}\textbf{\textsf{#1}}}\hspace{\marginparsep}%
\xhrulefill{darkcandyapplered}{2ex}\par}
\begin{document}
\stitle{Education}
\end{document}
答案4
FWIW,这是一个 ConTeXt 解决方案。ConTeXt 已经有一个命令\textrule
,可以完成几乎完全需要的操作。\textrule{#1}
从文本区域,绘制固定宽度的规则,留出固定距离,排版#1
,留出固定距离,绘制规则,直到剩余可用宽度。
\textrule
从文本区域的边缘开始,因此要获得所需的结果,我们需要做的就是更改,\leftskip
使文本区域的左边缘与左边距的左边缘相同。这可以使用来完成\startnarrower
。
结合这两个,完整的代码如下:
\setuplayout
[
cutspace=1in,
backspace=1in,
width=middle,
leftmargin=0.5in,
rightmargin=0.5in,
]
\definecolor[darkcandyapplered][r=0.64]
\setuptextrules
[
width=\leftmarginwidth, distance=\leftmargindistance,
rulecolor=darkcandyapplered, rulethickness=1.5ex,
style=\bfb,
]
\definenarrower
[rulenarrower]
[
left=-\the\dimexpr\leftmargindistance+\leftmarginwidth\relax,
default=left,
right=0pt,
]
\define[1]\titlecommand
{\startrulenarrower\textrule{#1}\stoprulenarrower}
\showframe % To see the page boundaries
\starttext
\titlecommand{Education}
\input ward
\stoptext
这使