TikZ と minipage を使用して画像とテキストをフォーマットする

TikZ と minipage を使用して画像とテキストをフォーマットする

履歴書の上部をフォーマットしたいのですが、次の 2 つの問題が発生しました。

  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

すべてを 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}

関連情報