相对于我调用定义命令的位置设置 Tikz 图形

相对于我调用定义命令的位置设置 Tikz 图形

我想用 TeX 来设计我的简历。我想象中的方式如下两张图片所示:

在此处输入图片描述 项目历史风格 (页面以灰色部分结束,这不是风格的一部分)。

现在我四处寻找了一下,并开始尝试解决问题Tikz。我尝试设计上部并将其绑定到命令:

% !TeX program = lualatex
\documentclass[a4paper,12pt]{article}

%font encoding
\usepackage[onehalfspacing]{setspace}
\usepackage{fontspec}
\setmainfont{Arial}


%Tikz
\usepackage{tikz}


\tikzset{
    thumb/.style={
        text=blue,
        font=\sffamily\bfseries\Huge
    }
}

\newcommand{\sep}[1]{   
    \HUGE{#1}   

    \begin{tikzpicture}
        \draw [blue, fill=blue, ultra thick] (-2,0.5) circle [radius=0.15];
        \draw [ultra thick, blue] (-2,0.5) -- (10,0.5);
    \end{tikzpicture}
}

\begin{document}

\sep{Test}


\end{document}

现在它仍然看起来很丑,TeX 还说“未定义的控制序列”,但主要问题是:当我调用该命令时,他会将线绘制到绝对位置。我可以让它相对于使用我的命令的位置吗?(我基本上需要给它文本,然后他应该在文本下方绘制该线,如上图所示)。

答案1

tikzpage节点包定义了一些有用的节点,例如current page text area,您可以使用这些节点从当前位置到“打印页面”的末尾绘制线条。要使用此功能,您需要将其添加remember picture, overlay到您的tikzpicture环境中,如 3.0.1a 的 17.13 节所述蒂克兹手册。一旦你知道了这一点,就不难制作:

在此处输入图片描述

代码如下:

% !TeX program = lualatex
\documentclass[a4paper,12pt]{article}

%font encoding
\usepackage[onehalfspacing]{setspace}
\usepackage{fontspec}
\setmainfont{Arial}

\parindent=0pt

%Tikz
\usepackage{tikz}
\usepackage{tikzpagenodes}

\tikzset{
    thumb/.style={
        fill=blue,
        circle,
        inner sep=2.5pt,
        outer sep=0,
    },
    thumblabel/.style={
        font=\sffamily\bfseries\Huge,
        text=blue,
        above,
        anchor=south west
    }
}

\newcommand{\sep}[1]{%
  \begin{tikzpicture}[remember picture, overlay]
    \node[thumb, label={[thumblabel]:#1}](#1) at (0,0){};
    \draw [ultra thick, blue] (#1) -- (#1-|current page text area.east);
  \end{tikzpicture}%
}

\begin{document}

\sep{Test}

\bigskip

\qquad\sep{Indented test}

\end{document}

请注意,我已将实际文本绘制为绘制点的节点的标签。标签的样式由 给出thumblabel。此外,作为 的参数的文本\sep用作此节点的标签,因此如果\sep命令给出的每一段文本都不同,那就太好了。如果不是这种情况,则添加一个可选参数 ,\sep可用于直接设置标签(如果需要,我可以添加更多详细信息)。

相关内容