간격, 하위 그림 및 오른쪽 캡션(바 메뉴 만들기)

간격, 하위 그림 및 오른쪽 캡션(바 메뉴 만들기)

제가 속해 있는 학생 장소의 바 메뉴를 만들려고 합니다. 이제 우리는 CS, 수학, 물리학을 공부하고 있기 때문에 그는 라텍스를 사용하여 바 메뉴나 음주 목록을 만들어야 합니다. 페이지의 예는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

이제 문제는 메뉴를 만드는 과정을 어떻게 더 쉽게 만드는가입니다. 현재 저는 사이드 캡션을 사용하기 위해 'floatrow'를 사용하고 있습니다. 제가 이루고 싶은 것은 음료수 레시피와 이미지를 간단하게 작성할 수 있는 방법을 갖는 것입니다. 메뉴에는 이러한 기능이 있어야 합니다.

  • 왼쪽 정렬된 레시피입니다(이미지와 같이 오른쪽이 아님).
  • 파란색 간격은 양쪽에서 최소 0.5cm 이상이어야 합니다.
  • 빨간색 간격은 최대한 커야 합니다.
  • 녹색 간격은 작아야 하지만 0이 되어서는 안 됩니다.
  • 이미지 아래 상자에 텍스트를 쓰는 기능.
  • 그림은 세로로 정렬되어야 합니다.

위 이미지에 표시된 것처럼 =) MWE를 변경하여\raggedright위 이미지에 표시된 것처럼 =) 텍스트를 나는 floatrow 패키지를 사용했지만 어떤 대답도 이것을 사용할 필요가 없습니다!

\documentclass[12pt,a4paper]{article}

\usepackage[landscape,        
        left=0.1cm,
        right=1cm,
        top=1cm,
        bottom=0cm]{geometry}
\usepackage{microtype,lmodern,fixltx2e}      % Småfikser og typografiske forbedringer
\usepackage{amsfonts,mathtools}               % Matematikk.
\usepackage[utf8]{inputenc}                  % Norske symboler æ,ø,å
\usepackage[norsk]{babel}                    % Norsk innholdsfortegnelse, og overskrifter

\usepackage{caption,subcaption}
\usepackage{floatrow}

\captionsetup[subfigure]{font = large,labelformat=brace,format=hang,justification=rightlast}
\floatsetup[figure]{style=plain}
\floatsetup[subfigure]{heightadjust=all,framearound=all,capbesideposition={left,center},capbesidesep=none}

\newcommand\rightlast{\leftskip0ptplus1fil
\rightskip0ptplus-1fil\parfillskip0ptplus1fil}
\DeclareCaptionJustification{rightlast}{\rightlast}

\begin{document}
\centering

\thisfloatsetup{capposition=beside,capbesideposition={left,center},
capbesidewidth=5cm} 
%
\section*{\LARGE $\mathbb{R}$ealfagskjelleren - Barkart - Side 1}
%
\vspace*{0.5cm}
%
\begin{figure}[H]
\ffigbox
    {\begin{subfloatrow}
        \fcapside[\FBwidth+2cm]{\caption*{%
        \textbf{\Large Sure Føtter} \\ 
                 Cointreau:  2 cl  \\
              Jägermeister:  2 cl  \\
                      Lime:  2 cl  \\ 
                 Coca Cola:\phantom{   2 cl} \\
                                   \\
                      Pris: 35 kr}  
        }{\includegraphics[scale=0.33]{SureFotter.jpg}}
        \fcapside[\FBwidth+2cm]{\caption*{%
        \textbf{\Large Kvit Russer}\\
                     Vodka:  2 cl  \\
            Kahlua/Amarula:  2 cl  \\
                     Fløte:  2 cl  \\ 
                                   \\
                      Pris: 35 kr} 
        }{\includegraphics[scale=0.125]{WhiteRussian.jpg}}

        \fcapside[\FBwidth+2cm]{\caption*{
        \textbf{\Large Crocodile}\\
                 Lys Rom:  2 cl  \\
                  Midori:  2 cl  \\
                    Lime:\phantom{   2 cl} \\
                  Sprite:\phantom{   2 cl} \\
                                 \\
                      Pris: 35 kr}      
        }{\includegraphics[scale=0.33]{Crocodile2.jpg}}
    \end{subfloatrow}   

    \renewlengthtocommand\settowidth\Mylen{100000\subfloatrowsep}\vskip\Mylen

    \begin{subfloatrow}
        \fcapside[\FBwidth+2cm]{{\caption*{
        \textbf{\Large Silver Salute}\\
                 Vodka:  1 cl  \\
             Cointreau:  2 cl  \\
              Blå Bols:  3 cl  \\
                                 \\
                      Pris: 40 kr}  
        }}{\includegraphics[scale=0.85]{SilverSalute2.jpg}}
        \fcapside[\FBwidth+2cm]{\caption*{
        \textbf{\Large Majoren}\\
          Captain Morgan:  2 cl  \\
            Jägermeister:  2 cl  \\
               Ingefærøl:\phantom{   2 cl} \\
                  Sitron:\phantom{   2 cl} \\
                                 \\
                      Pris: 35 kr}      
        }{\includegraphics[scale=0.35]{Major3.jpg}}
        \fcapside[\FBwidth+2cm]{\caption*{
        \textbf{\Large EPIC}    \\
               Baccardi:  2 cl  \\
               Blå bols:  1 cl  \\
            Mickey Finn:  1 cl  \\
                 Passoã:  1 cl  \\
                  Sprite:\phantom{   2 cl} \\
                                 \\
                      Pris: 40 kr}          
        }{\includegraphics[scale=0.15]{EPIC3.jpg}\hspace*{10cm}}%
    \end{subfloatrow}}

\end{figure}
\end{document}

내가 말했듯이 나는 floatrow 패키지를 사용하여 일관된 간격을 얻는 방법을 모릅니다. 하지만 다른 패키지를 사용하여 메뉴를 더 쉽게 만들 수 있고 일관된 간격을 제공할 수 있다면 저는 그게 전부입니다 =) floatrow-package에는 옵션이 너무 많습니다.

사용된 이미지

답변1

여기에 한 가지 가능성이 있습니다. 이미지는 특정 위치에 있어야 하기 때문에 플로팅 환경을 사용하지 않는 것이 좋다고 생각합니다. 나는 minipage정보를 배치하기 위해 상자(이 경우 s)를 사용하는 다른 접근 방식을 제안합니다 .

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[norsk]{babel}   
\usepackage[landscape,        
        left=1.5cm,
        right=1cm,
        top=3cm,
        bottom=0cm]{geometry}
\usepackage{graphicx}
\usepackage{microtype,fixltx2e}
\usepackage{fourier}
\usepackage{tikz}
\usepackage{etoolbox}

\newtoggle{client}

\newsavebox\mybox

\newcommand\tikzmark[1]{%
  \tikz[remember picture,overlay] \coordinate (#1);}

\colorlet{framecolor}{cyan!80!black}% color for frames (clients version)
\colorlet{ingrcolor}{orange!80!black}% color for frames around directions (bartenders version)

\setlength\parindent{0pt}

\newlength\framewd
\newlength\frameht
\newlength\legendwd
\newlength\descht
\newlength\imagewd
\newlength\rowsep% vertical spacing between rows
\setlength\framewd{7cm}% width of each frame
\setlength\legendwd{4cm}% with for ingredients
\setlength\imagewd{3cm}% width for image
\setlength\frameht{4.5cm}% height of the frame, without directions
\setlength\descht{1.5cm}% height of box for directions

\newcommand\framecon[5]{%
\begin{minipage}[t][\frameht][t]{\framewd}
\begin{minipage}[c][\frameht][t]{\framewd}
\begin{minipage}[c][\frameht][t]{\legendwd}
\vfill
{\bfseries\Large#1}\par\bigskip
\begin{tabular}{@{}r@{:\ }l@{}} 
  #2
  \multicolumn{2}{c}{} \\ 
  \fritem{Pris}{#3}
\end{tabular}%
\end{minipage}%
\begin{minipage}[c][\frameht][c]{\imagewd}
  \vfill
  \includegraphics[width=3cm]{#4}
\end{minipage}%
\end{minipage}%
\begin{lrbox}{\mybox}
  \begin{minipage}[c][\descht][t]{\dimexpr\framewd-20pt\relax}
  #5
  \end{minipage}%
\end{lrbox}%
\iftoggle{client}
  {}
  {\par\bigskip
    \tikz[remember picture]
    \node[rectangle,draw=ingrcolor,ultra thick,rounded corners,inner sep=8pt] 
      {\usebox\mybox};%
  }%
\par\vskip20pt\mbox{}\hfill\tikzmark{b}%
\end{minipage}%
\iftoggle{client}
  {%
  \begin{tikzpicture}[remember picture, overlay]
  \draw[rounded corners=8pt,line width=1.5pt,draw=framecolor]
  (b) -|
  ([xshift=\the\dimexpr-\framewd-1em\relax,yshift=\the\dimexpr\frameht+\descht\relax]b);
  \end{tikzpicture}
  }%
  {}
}

\newcommand\fritem[2]{#1&#2\\}

\begin{document}

\settoggle{client}{false}% for the bartender
%\settoggle{client}{true}% for the clients
\iftoggle{client}{\setlength\rowsep{6cm}}{\setlength\rowsep{3cm}}

\framecon{Sure Føtter}{%
  \fritem{Cointreau}{2 cl}
  \fritem{Jägermeister}{2 cl}
  \fritem{Lime}{2 cl}
  \fritem{Coca Cola}{}}{35kr}{11}{%
Shake vodka og likør med is i en cocktail shaker. -- Si til et højt glas med et par isterninger. -- Fyld op med orange juice.}\hfill
\framecon{Kvit Russer}{%
  \fritem{Vodka}{2 cl}
  \fritem{Kahlua/Amarula}{2 cl}
  \fritem{Fløte}{2 cl}}{35 kr}{12}{%
Alle ingredienser unntatt epleskive ristes godt i en shaker med knust is. -- Siles og serveres i et avkjølt cocktailglass. -- Pyntes med epleskive.}\hfill 
\framecon{Crocodile}{%
  \fritem{Lys Rom}{2 cl}
  \fritem{Midori}{2 cl}
  \fritem{Lime}{}
  \fritem{Sprite}{}}{35 kr}{13}{%
Shake vodka og likør med is i en cocktail shaker. -- Si til et højt glas med et par isterninger. -- Fyld op med orange juice.}

\vspace{\rowsep}

\framecon{Silver Salute}{%
  \fritem{Vodka}{1 cl}
  \fritem{Cointreau}{2 cl}
  \fritem{Blå Bols}{3 cl}}{40 kr}{21}{%
Alle ingredienser unntatt mørk rom ristes godt i en shaker med knust is. -- Serveres i et avkjølt collinsglass. -- Mørk rom helles forsiktig øverst i glasset. -- Pyntes med limeskive.}\hfill 
\framecon{Majoren}{%
  \fritem{Vodka}{1 cl}
  \fritem{Cointreau}{2 cl}
  \fritem{Blå Bols}{3 cl}}{40 kr}{22}{%
Alle ingredienser unntatt mørk rom ristes godt i en shaker med knust is. -- Serveres i et avkjølt collinsglass. -- Mørk rom helles forsiktig øverst i glasset. -- Pyntes med limeskive.}\hfill 
\framecon{Epic}{%
  \fritem{Baccardi}{2 cl}
  \fritem{Blå bols}{1 cl}
  \fritem{Mickey Finn}{1 cl}
  \fritem{Passoã}{1 cl}
  \fritem{Sprite}{}}{40 kr}{23}{%
Alle ingredienser unntatt mørk rom ristes godt i en shaker med knust is. -- Serveres i et avkjølt collinsglass. -- Mørk rom helles forsiktig øverst i glasset. -- Pyntes med limeskive.} 

\end{document}

클라이언트용 버전(준비 지침 없음):

여기에 이미지 설명을 입력하세요

간단히 토글을 false로 설정하면 바텐더용 버전(준비 지침 포함)을 얻을 수 있습니다.

여기에 이미지 설명을 입력하세요

코드 작동 방식

  • 기본 명령에는 \framecon5개의 필수 인수가 있습니다.

    \framecon{<name>}{<ingredients>}{<price>}{<image-file>}{<prep. directions>}
    
  • 재료를 작성하기 위해 추가 \fitem명령이 정의되었습니다.

    \fritem{<ingredient>}{<quantity>}
    

    예를 들어, 내 예에서 "EPIC" 항목은 다음과 같습니다.

    \framecon{Epic}{%
      \fritem{Baccardi}{2 cl}
      \fritem{Blå bols}{1 cl}
      \fritem{Mickey Finn}{1 cl}
      \fritem{Passoã}{1 cl}
      \fritem{Sprite}{}}{40 kr}{23}{%
    Alle ingredienser unntatt mørk rom ristes godt i en shaker med knust is. -- Serveres i et avkjølt collinsglass. -- Mørk rom helles forsiktig øverst i glasset. -- Pyntes med limeskive.} 
    
  • client토글을 로 설정하면 true클라이언트 버전이 생성되고, 로 설정하면 false바텐더 버전이 생성됩니다.

행당 4개 미만의 이미지의 경우 \hfills를 삽입하여 원하는 정렬을 생성할 수 있습니다.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[norsk]{babel}   
\usepackage[landscape,        
        left=1.5cm,
        right=1cm,
        top=3cm,
        bottom=0cm]{geometry}
\usepackage{graphicx}
\usepackage{microtype,fixltx2e}
\usepackage{fourier}
\usepackage{tikz}
\usepackage{etoolbox}

\newtoggle{client}

\newsavebox\mybox

\newcommand\tikzmark[1]{%
  \tikz[remember picture,overlay] \coordinate (#1);}

\colorlet{framecolor}{cyan!80!black}% color for frames (clients version)
\colorlet{ingrcolor}{orange!80!black}% color for frames around directions (bartenders version)

\setlength\parindent{0pt}

\newlength\framewd
\newlength\frameht
\newlength\legendwd
\newlength\descht
\newlength\imagewd
\newlength\rowsep% vertical spacing between rows
\setlength\framewd{7cm}% width of each frame
\setlength\legendwd{4cm}% with for ingredients
\setlength\imagewd{3cm}% width for image
\setlength\frameht{4.5cm}% height of the frame, without directions
\setlength\descht{1.5cm}% height of box for directions

\newcommand\framecon[5]{%
\begin{minipage}[t][\frameht][t]{\framewd}
\begin{minipage}[c][\frameht][t]{\framewd}
\begin{minipage}[c][\frameht][t]{\legendwd}
\vfill
{\bfseries\Large#1}\par\bigskip
\begin{tabular}{@{}r@{:\ }l@{}} 
  #2
  \multicolumn{2}{c}{} \\ 
  \fritem{Pris}{#3}
\end{tabular}%
\end{minipage}%
\begin{minipage}[c][\frameht][c]{\imagewd}
  \vfill
  \includegraphics[width=3cm]{#4}
\end{minipage}%
\end{minipage}%
\begin{lrbox}{\mybox}
  \begin{minipage}[c][\descht][t]{\dimexpr\framewd-20pt\relax}
  #5
  \end{minipage}%
\end{lrbox}%
\iftoggle{client}
  {}
  {\par\bigskip
    \tikz[remember picture]
    \node[rectangle,draw=ingrcolor,ultra thick,rounded corners,inner sep=8pt] 
      {\usebox\mybox};%
  }%
\par\vskip20pt\mbox{}\hfill\tikzmark{b}%
\end{minipage}%
\iftoggle{client}
  {%
  \begin{tikzpicture}[remember picture, overlay]
  \draw[rounded corners=8pt,line width=1.5pt,draw=framecolor]
  (b) -|
  ([xshift=\the\dimexpr-\framewd-1em\relax,yshift=\the\dimexpr\frameht+\descht\relax]b);
  \end{tikzpicture}
  }%
  {}
}

\newcommand\fritem[2]{#1&#2\\}

\begin{document}

\settoggle{client}{false}% for the bartender
%\settoggle{client}{true}% for the clients
\iftoggle{client}{\setlength\rowsep{6cm}}{\setlength\rowsep{3cm}}

\hfill\framecon{Sure Føtter}{%
  \fritem{Cointreau}{2 cl}
  \fritem{Jägermeister}{2 cl}
  \fritem{Lime}{2 cl}
  \fritem{Coca Cola}{}}{35kr}{11}{%
Shake vodka og likør med is i en cocktail shaker. -- Si til et højt glas med et par isterninger. -- Fyld op med orange juice.}\hfill
\framecon{Kvit Russer}{%
  \fritem{Vodka}{2 cl}
  \fritem{Kahlua/Amarula}{2 cl}
  \fritem{Fløte}{2 cl}}{35 kr}{12}{%
Alle ingredienser unntatt epleskive ristes godt i en shaker med knust is. -- Siles og serveres i et avkjølt cocktailglass. -- Pyntes med epleskive.}\hfill\null

\vspace{\rowsep}

\hfill\framecon{Silver Salute}{%
  \fritem{Vodka}{1 cl}
  \fritem{Cointreau}{2 cl}
  \fritem{Blå Bols}{3 cl}}{40 kr}{21}{%
Alle ingredienser unntatt mørk rom ristes godt i en shaker med knust is. -- Serveres i et avkjølt collinsglass. -- Mørk rom helles forsiktig øverst i glasset. -- Pyntes med limeskive.}\hfill 
\framecon{Majoren}{%
  \fritem{Vodka}{1 cl}
  \fritem{Cointreau}{2 cl}
  \fritem{Blå Bols}{3 cl}}{40 kr}{22}{%
Alle ingredienser unntatt mørk rom ristes godt i en shaker med knust is. -- Serveres i et avkjølt collinsglass. -- Mørk rom helles forsiktig øverst i glasset. -- Pyntes med limeskive.}\hfill\null

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보