Выравнивание изображений с маркерами в трехколоночном макете с использованием LaTeX

Выравнивание изображений с маркерами в трехколоночном макете с использованием LaTeX

Я работаю с LaTeX, чтобы создать документ с трехколоночной структурой. В моем макете первая колонка предназначена для тем, вторая колонка содержит список пунктов, а третья колонка включает изображения разных размеров.

Мой код LaTeX выглядит следующим образом:

\documentclass[11pt,ngerman]{moderncv}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\usepackage[UKenglish]{babel}
\geometry{verbose,tmargin=1cm,bmargin=1cm,lmargin=2.5cm,rmargin=2.5cm}
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{2}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}
\usepackage{graphicx}
\usepackage{fontawesome5}
\usepackage{verbatim}
\newcommand{\cmmnt}[1]{}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
\providecommand{\tabularnewline}{\\}
\usepackage[super]{nth}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\moderncvtheme[blue]{classic}
\usepackage{lastpage}
\firstname{firstName}
\familyname{lastName}
\title{topic}

\address{}

\usepackage{graphicx}
\newcommand{\Csharp}{%
    {\settoheight{\dimen0}{C}C\kern-.05em \resizebox{!}{\dimen0}{\raisebox{\depth}{\#}}}}

\makeatother
\usepackage{babel}
\usepackage{xpatch}

%\usepackage[absolute,overlay]{textpos}
\usepackage{textpos}
\usepackage{wrapfig}

\xpatchcmd{\cventry}{.\strut}{\strut}{}{}
\begin{document}
    \maketitle  
\vspace{-0.9cm}


\vspace{-0.3cm}
\section{Section}
\vspace{0.2cm}

\cventry{Topic}{
    \begin{minipage}[t]{0.6\textwidth}
        \begin{itemize} 
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
        \end{itemize}
    \end{minipage}%
    \hspace{-5cm}
    \begin{minipage}[t]{0.3\textwidth}
        \raggedleft 
        \raisebox{-0.5\height - 0.3cm}{ 
            \href{https://www.google.com/}{\includegraphics[height=1.5cm]{example-image-a}}
        }
    \end{minipage}
}{}{}{}{}{}



\cventry{Topic}{
    \begin{minipage}[t]{0.6\textwidth}
        \begin{itemize} 
            \item {\normalfont Point1}
            \item {\normalfont Point2}
        \end{itemize}
    \end{minipage}%
    \hspace{-4.855cm}
    \begin{minipage}[t]{0.3\textwidth}
        \raggedleft 
        \raisebox{-0.5\height}{ 
            \href{https://www.google.com/}{\includegraphics[height=1.6cm, width=1.8cm]{example-image-a}}
        }
    \end{minipage}
}{}{}{}{}{}


\cventry{Topic}{
    \begin{minipage}[t]{0.6\textwidth}
        \begin{itemize} 
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
        \end{itemize}
    \end{minipage}%
    \hspace{-3.05cm}
    \begin{minipage}[t]{0.3\textwidth}
        \raggedleft 
        \raisebox{-0.5\height - 0.3cm}{ 
            \href{https://www.google.com/}{\includegraphics[height=1.5cm]{example-image-a}}
        }
        \raisebox{-0.5\height - 0.3cm}{ 
            \href{https://www.google.com/}{\includegraphics[height=1.5cm]{example-image-b}}
        }
    \end{minipage}
}{}{}{}{}{}

\cventry{Topic}{
    \begin{minipage}[t]{0.6\textwidth}
        \begin{itemize} 
            \item {\normalfont Point1}
            \item {\normalfont Point2}
        \end{itemize}
    \end{minipage}%
    \hspace{-3.05cm}
    \begin{minipage}[t]{0.3\textwidth}
        \raggedleft 
        \raisebox{-0.5\height - 0.3cm}{ 
            \href{https://www.google.com/}{\includegraphics[height=1.5cm]{example-image-a}}
        }
        \raisebox{-0.5\height - 0.3cm}{ 
            \href{https://www.google.com/}{\includegraphics[height=1.6cm, width=1.8cm]{example-image-b}}
        }
        \raisebox{-0.5\height - 0.3cm}{ 
            \href{https://www.google.com/}{\includegraphics[height=1.5cm]{example-image-c}}
        }
    \end{minipage}
}{}{}{}{}{}

\end{document}

введите описание изображения здесь

Проблема, с которой я сталкиваюсь, заключается в выравнивании изображений в третьей колонке с маркерами во второй колонке. В частности, я хочу добиться двух вещей:

  1. Убедитесь, что все изображения в строке выровнены по вертикали относительно пунктов списка.
  2. Выровняйте изображения так, чтобы первое изображение в каждой строке находилось непосредственно под первым изображением в предыдущей строке, второе изображение под вторым и т. д.

Изображения не совпадают с пунктами списка так, как ожидалось.

В конечном итоге желаемый результат должен выглядеть так: введите описание изображения здесь

Я был бы очень признателен за любые указания или предложения по выполнению этих выравниваний. Ваша помощь была бы очень ценна!

С наилучшими пожеланиями,
Дэниел

Я задал тот же вопросздесь.

решение1

После тщательного исследования я разработал решение по компоновке и расположению изображений в документе.

введите описание изображения здесь

Ключевые аспекты этого решения:

  1. Горизонтальное центрирование: Все изображения будут горизонтально центрированы относительно их центральной точки. Центр каждого изображения почти идеально совпадает с перечнем пунктов списка.

  2. Вертикальное выравнивание: Изображения, которые расположены друг под другом, также будут центрированы. Средние точки каждого изображения выравниваются прямо друг под другом, создавая визуально связную вертикальную линию.

  3. Регулируемый интервал: расстояние между картинками можно регулировать индивидуально. Эта гибкость позволяет точно контролировать интервал, что позволяет создать индивидуальный и эстетически приятный макет.

Это код латекса:

\section{Section}

\newlength{\tabularcolumnwidth}
\setlength{\tabularcolumnwidth}{7cm}

\newlength{\minipagewidth}
\setlength{\minipagewidth}{2cm}

\newlength{\midoffset}
\setlength{\midoffset}{-0.25cm}


\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic1}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.5cm, width=1.5cm]{example-image-a}}}
    \end{minipage}
\end{tabular}

\vspace{1.5cm}

\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic2}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1cm, width=2cm]{example-image-a}}}
    \end{minipage} 
& 
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=2cm, width=1cm]{example-image-b}}}
    \end{minipage}
\end{tabular}

\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic3}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
            \item {\normalfont Point4}
            \item {\normalfont Point5}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.5cm, width=1.3cm]{example-image-a}}}
    \end{minipage} 
& 
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1cm, width=2cm]{example-image-b}}}
    \end{minipage}
& 
    \hspace{1cm}
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=3cm, width=1.8cm]{example-image-c}}}
    \end{minipage}
\end{tabular}

\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic4}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.8cm, width=1.8cm]{example-image-a}}}
    \end{minipage} 
& 
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \hspace{2cm}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.8cm, width=1.8cm]{example-image-b}}}
    \end{minipage}
& 
    \hspace{1cm}
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.8cm, width=1.8cm]{example-image-c}}}
    \end{minipage}
\end{tabular}

Чтобы вставить значок ссылки в правый нижний угол изображения в таблице, используйте следующие фрагменты кода.

\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic1}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \href{https://www.google.com/}{
            \begin{overpic}[width=1.5cm, height=1.5cm]{example-image-a}
                \put(1.5cm-0.5cm,0.0cm){\href{https://www.google.com/}{\includegraphics[height=0.5cm, width=0.5cm]{icon_symbol.png}}}
            \end{overpic}
        }
    \end{minipage}

\end{tabular}

введите описание изображения здесь

Конечно, этот код можно улучшить, но это хорошее начало.

Вот полный код:

\documentclass[11pt,ngerman]{moderncv}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage[UKenglish]{babel}
\geometry{verbose,tmargin=1cm,bmargin=1cm,lmargin=2.5cm,rmargin=2.5cm}
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{2}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage[percent]{overpic}
\usepackage{fontawesome5}
\usepackage{verbatim}
\newcommand{\cmmnt}[1]{}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
\providecommand{\tabularnewline}{\\}
\usepackage[super]{nth}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\moderncvtheme[blue]{classic}
\usepackage{lastpage}
\firstname{firstName}
\familyname{lastName}
\title{topic}

\address{}

\usepackage{graphicx}
\newcommand{\Csharp}{%
    {\settoheight{\dimen0}{C}C\kern-.05em \resizebox{!}{\dimen0}{\raisebox{\depth}{\#}}}}

\makeatother
\usepackage{babel}
\usepackage{xpatch}

%\usepackage[absolute,overlay]{textpos}
\usepackage{textpos}
\usepackage{wrapfig}

\xpatchcmd{\cventry}{.\strut}{\strut}{}{}
\begin{document}
    \maketitle  

\section{Section}
\vspace{0.2cm}

\newlength{\tabularcolumnwidth}
\setlength{\tabularcolumnwidth}{7cm}

\newlength{\minipagewidth}
\setlength{\minipagewidth}{2cm}

\newlength{\midoffset}
\setlength{\midoffset}{-0.25cm}


\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic1}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \href{https://www.google.com/}{
            \begin{overpic}[width=1.5cm, height=1.5cm]{example-image-a}
                \put(1.5cm-0.5cm,0.0cm){\href{https://www.google.com/}{\includegraphics[height=0.5cm, width=0.5cm]{example-image}}}% icon_symbol.png replaced to make the example work everywhere
            \end{overpic}
        }
    \end{minipage}

\end{tabular}

\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic2}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \begin{overpic}[height=1cm, width=2cm]{example-image-a}
            \put(2cm-0.5cm,0.0cm){\href{https://www.google.com/}{\includegraphics[height=0.5cm, width=0.5cm]{example-image}}}% icon_symbol.png replaced to make the example work everywhere
        \end{overpic}
    \end{minipage}
& 
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=2cm, width=1cm]{example-image-b}}}
    \end{minipage}
\end{tabular}

\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic3}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
            \item {\normalfont Point4}
            \item {\normalfont Point5}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.5cm, width=1.3cm]{example-image-a}}}
    \end{minipage} 
& 
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1cm, width=2cm]{example-image-b}}}
    \end{minipage}
& 
    \hspace{1cm}
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=3cm, width=1.8cm]{example-image-c}}}
    \end{minipage}
\end{tabular}

\begin{tabular}{p{\tabularcolumnwidth}ccc}
\cventry{Topic4}{
    \begin{minipage}[t]{0.5\textwidth}
        \begin{itemize}
            \item {\normalfont Point1}
            \item {\normalfont Point2}
            \item {\normalfont Point3}
        \end{itemize}
    \end{minipage}
}{}{}{}
&
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.8cm, width=1.8cm]{example-image-a}}}
    \end{minipage} 
& 
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \hspace{2cm}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.8cm, width=1.8cm]{example-image-b}}}
    \end{minipage}
& 
    \hspace{1cm}
    \begin{minipage}{\minipagewidth}
        \centering
        \vspace{\midoffset}
        \raisebox{-.5\height}{\href{https://www.google.com/}{\includegraphics[height=1.8cm, width=1.8cm]{example-image-c}}}
    \end{minipage}
\end{tabular}

\end{document}

Связанный контент