使用 TikZ 和 minipage 格式化图片和文本

使用 TikZ 和 minipage 格式化图片和文本

我想对我的简历的上半部分进行格式化,但是遇到了两个问题:

  1. 我想将图片格式化为完美的圆形,并确保整个图片都在框架内。但是,当我开始触摸框架时,图片“失去”了圆润感。

  2. 我想要格式化我的标题,如下图所示:左边是一张圆形图片,下面是写着我的名字和小文本的方框。但是,使用 minipages 时,我无法产生所需的结果。

在此处输入图片描述

这是我目前的工作代码:

\documentclass[letterpaper,8 pt]{article}

\usepackage{titlesec}
\usepackage[margin=0.3in]{geometry}
\usepackage{longtable}
\usepackage{marvosym}
\usepackage{amsmath}

\usepackage{underscore}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand{\sfdefault}{ppl}

\newcommand{\at}{\makeatletter @\makeatother}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}

\titleformat{\section}{\large\scshape\raggedright}{}{1em}{}[\titlerule]
\titlespacing{\section}{0pt}{3pt}{3pt}

\begin{document}
\pagenumbering{gobble}
\hfill
\begin{minipage}[t]{5cm}
    \hspace*{-3cm}
    \begin{tikzpicture}[baseline=(frog.center),inner sep=0pt]
    \clip (0,0)  circle (2cm) node (frog) {\includegraphics[width=6cm]{frog.jpg}};
    \end{tikzpicture}
\end{minipage}
\hfill
\begin{minipage}[t]{5cm}
    \vspace{-1.5cm} \centerline{\Huge \textbf{My Name Here}}
\end{minipage} 
%\hfill
\begin{minipage}[t]{5cm}
    \vspace{0cm} \hspace{-2cm}\begin{tabular}{rl}
        \textsc{Email:} & My_eMail\at gmail.com \\ 
        \textsc{Telefon:} & \ xxx \ xx \ xxx \\
        \textsc{Sted:} & xxxx, xxxxx \\
    \end{tabular}
\end{minipage}

\end{document}

答案1

也许你可以把所有东西都放在一个里面tikzpicture。由于你希望圆与框的大小相同,因此首先制作框,然后将圆的大小设置为与框的高度相同是有意义的。

顺便注意,这8 pt不是该类的有效选项article,它不执行任何操作。10pt(默认),11pt并且12pt是默认可用的。

此屏幕截图中的外框来自showframe向包中添加选项geometry。使用该选项会在文本区域周围添加一个框架。

在此处输入图片描述

\documentclass[letterpaper,10pt]{article}

\usepackage{titlesec}
\usepackage[margin=0.3in]{geometry}
\usepackage{longtable}
\usepackage{marvosym}
\usepackage{amsmath}

\usepackage{underscore}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand{\sfdefault}{ppl}

\newcommand{\at}{\makeatletter @\makeatother}
\usepackage{tikzpagenodes} % loads tikz which loads graphicx
\usetikzlibrary{calc,positioning}

\titleformat{\section}{\large\scshape\raggedright}{}{1em}{}[\titlerule]
\titlespacing{\section}{0pt}{3pt}{3pt}
\begin{document}
\pagenumbering{gobble}
%\hfill
\noindent\hfill\begin{tikzpicture}[
  declare function={
     boxwidth=\textwidth-4cm; % you may need to change 4cm so something else, depending on the height of the box
     boxinnersep=2mm; 
     }
  ]
    \node [
       text width=boxwidth,
       align=left,
       draw,
       fill=green!30,
       inner sep=boxinnersep] (box) {%
       {\Huge \textbf{My Name Here}} \\[5pt]
       \begin{tabular}{rl}
        \textsc{Email:} & MyeMail\at gmail.com \\ 
        \textsc{Telefon:} & \ xxx \ xx \ xxx \\
        \textsc{Sted:} & xxxx, xxxxx \\
    \end{tabular}
    };       

    \path
    let
       \p1=(box.north),
       \p2=(box.south),
       \n1={\y1-\y2},
       \n2={(\textwidth-boxwidth-\n1-2*boxinnersep-2\pgflinewidth)/2}
    in
    node [
      minimum size=\n1,
      circle,
      path picture={
         \node [anchor=center] {\includegraphics[width=6cm]{example-image}};
         },
      left=\n2 of box
      ] {};

\end{tikzpicture}

\end{document}

相关内容