使用TikZ和minipage格式化圖片和文字

使用TikZ和minipage格式化圖片和文字

我想格式化我的簡歷的上半部分,但我遇到了兩個問題:

  1. 我想將圖片格式化為完美的圓形,並確保整個圖片都在框架內。然而,當我開始觸摸框架時,圖片「失去」了其圓度。

  2. 我想要設定我的標題如下圖所示:左邊有一張圓形圖片,然後是一個帶有我的名字和下面小文字的框框。但是,使用迷你頁時我無法產生所需的結果。

在此輸入影像描述

這是我此時的工作代碼:

\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}

相關內容