Seite 1 von 1

Veränderungen am Layout des xcookybooky Packages

Verfasst: Sa 7. Dez 2013, 14:48
von Patrick1990
Hallo,

ich mache hier noch einmal einen neuen Thread auf.

Und zwar würde ich gern folgende Veränderungen vornehmen:

1. Rezeptüberschrift soll linksbündig sein (jetzt etwas eingerückt).
2. Abstand zwischen Bild und Überschrift soll kleiner werden.
3. Der Tipp soll direkt unter dem Rezept stehen und nicht erst am unteren Rand der Seite.

In der Doku des Packages steht zwar beschrieben, wie man etwas mit myconfig ändern kann, jedoch klappt dies nur bei den einfachen Dingen, wie z.B. Farb- oder Schriftänderungen.

Ich habe mit \filecontents schon einmal versucht ein file, in dem 'myconfig' enthalten ist, vorzubereiten.


Hier das Minimalbeispiel:
\documentclass[%
a4paper,
twoside,
cleardoublepage=empty,
12pt
]{scrbook}

% encoding, font, language
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}

\usepackage{nicefrac}
\usepackage{filecontents} 
\usepackage[demo]{graphicx} 


\begin{filecontents*}{xcookybooky.cfg}
\setRecipeColors
{%
    recipename = green,
    ing = black,
    inghead = black,
    prep = black,
    prephead = purple,
    hint = red,
    hinthead = red,
    hintline = black,
    numeration=blue
}

\setRecipeSizes
{%
    recipename = \fontsize{25pt}{30pt},
    ing,
    inghead,
    prep,
    prephead,
    hint,
    hinthead
}

\setRecipeLengths
{%
    preparationwidth,
    ingredientswidth,
    pictureheight
}

\setRecipenameFont{fjd}{T1}{m}{n}


%% Translation
\setHeadlines
{%
    inghead,
    prephead,
    hinthead,
    continuationhead,
    continuationfoot,
    preparationtime,
    bakingtime,
    bakingtemperature,
    portion,
    portionvalue,
    calory,
    source
}
\end{filecontents*}

\usepackage[
    handwritten,
    nowarnings,
    myconfig
]
{xcookybooky}



\usepackage{blindtext}    % only needed for generating test text

\definecolor{mygreen}{rgb}{0,.5,0}
\DeclareRobustCommand{\textcelcius}{\ensuremath{^{\circ}\mathrm{C}}}


\setcounter{secnumdepth}{1}
\renewcommand*{\recipesection}[2][]
{%
    \subsection[#1]{#2}
}
\renewcommand{\subsectionmark}[1]
{% no implementation to display the section name instead
}


%%%%%%%%%%
% hyperref
\usepackage{hyperref}    % must be the last package
\hypersetup{%
    pdfauthor            = {Sven Harder},
    pdftitle             = {Example Recipes},
    pdfsubject           = {Recipes},
    pdfkeywords          = {recipes},
    pdfstartview         = {FitV},             
    pdfview              = {FitH},
    pdfpagemode          = {UseNone}, % Options; UseNone, UseOutlines
    bookmarksopen        = {true},
    pdfpagetransition    = {Glitter},
    colorlinks           = {true},
    linkcolor            = {black}, 
    urlcolor             = {black}
    citecolor            = {black}, 
    filecolor            = {black},
}
% hyperref
%%%%%%%%%%



\begin{document}
\begin{recipe}
[ % 
    preparationtime = {\unit[1]{h}},
    bakingtime,
    bakingtemperature,
    portion = {\portion{5}},
    calory,
    source = R. Gaus
]
{Mousse au Chocolat}
    
    \graph
    {% pictures
        big=pic/ingredients  % big picture
    }
    
    \ingredients
    {%
        2 Tafeln & dunkle Schokolade (über \unit[70]{\%})\\
        3        & Eier\\
        \unit[200]{ml} & Sahne\\
        \unit[40]{g} & Zucker\\
        \unit[50]{g} & Butter
    }
    
    \preparation
    {%
        \step Eier trennen, Eiweiß und Sahne separat steif schlagen. Butter und Schokolade vorsichtig im Wasserbad schmelzen.
        \step Eigelb in einer großen Schüssel mit \unit[2]{EL} heißem Wasser cremig schlagen, den Zucker einrühren bis die Masse hell und cremig ist.
        \step Die geschmolzene Schokolade unterheben, anschließend sofort Eischnee und Sahne unterheben (nicht mit dem Elektro-Mixer!)
        \step Mindestens 2 Stunden im Kühlschrank kalt stellen. Aber nicht zu kalt servieren.
    }
    
    \hint
    {%
        Der Schokoladenanteil kann auch gesenkt werden.
    }

\end{recipe}



\end{document}

Würde mich sehr über Lösungsvorschläge freuen. Vielen Dank im Voraus.

Verfasst: Sa 7. Dez 2013, 17:46
von esdd
Das Paket kenne ich zwar nicht und auf die Schnelle habe ich dazu auch nichts in der Doku gefunden, aber 1. und 2. müssten sich doch bei deiner Umdefinition von \recipesection mit anpassen lassen?
\renewcommand*{\recipesection}[2][] 
{% 
    \vspace{-2\baselineskip}\subsection[#1]{\hspace{-0.5ex}#2} 
}  
Gruß
Elke

Verfasst: Sa 7. Dez 2013, 18:56
von Patrick1990
Hallo Elke, diese Umdefinition ändet leider an meinem ausgegebenen Dokument gar nichts.

Verfasst: So 8. Dez 2013, 17:39
von esdd
Also bei mir ist mit
\documentclass[% 
 cleardoublepage=empty, 
 12pt 
]{scrbook} 

\usepackage[utf8]{inputenc} 
\usepackage{lmodern} 
\usepackage[ngerman]{babel} 
\usepackage[demo]{graphicx} 

\usepackage{xcookybooky} 

\setcounter{secnumdepth}{1} 
\renewcommand*{\recipesection}[2][]{%
  \vspace{-2\baselineskip}\subsection[#1]{\hspace{-1ex}#2}%
} 
\renewcommand{\subsectionmark}[1]{} 


\begin{document} 
\begin{recipe}[%  
  preparationtime = {\unit[1]{h}}, 
  bakingtime, 
  bakingtemperature, 
  portion = {\portion{5}}, 
  calory, 
  source = R. Gaus 
]{Mousse au Chocolat} 
  \graph{big=pic/ingredients} 
  \ingredients{% 
     2 Tafeln & dunkle Schokolade (über \unit[70]{\%})\\ 
     3        & Eier\\ 
     \unit[200]{ml} & Sahne\\ 
     \unit[40]{g} & Zucker\\ 
     \unit[50]{g} & Butter 
  } 
  \preparation{% 
     \step Eier trennen, Eiweiß und Sahne separat steif schlagen. Butter und Schokolade vorsichtig im Wasserbad schmelzen. 
     \step Eigelb in einer großen Schüssel mit \unit[2]{EL} heißem Wasser cremig schlagen, den Zucker einrühren bis die Masse hell und cremig ist. 
     \step Die geschmolzene Schokolade unterheben, anschließend sofort Eischnee und Sahne unterheben (nicht mit dem Elektro-Mixer!) 
     \step Mindestens 2 Stunden im Kühlschrank kalt stellen. Aber nicht zu kalt servieren. 
  }
  \hint{Der Schokoladenanteil kann auch gesenkt werden.} 
\end{recipe} 
\end{document}
die Überschrift linksbündig und ziemlich nah an dem Bild dran. Wenn ich bei \vspace{...} auf -3\baselineskip ändere, dann liegt zum Teil schon auf dem Bild.

Gruß
Elke

Verfasst: So 8. Dez 2013, 18:57
von Patrick1990
Danke, jetzt funktioniert es. Wunderbar.

Mit dem Tipp das ist nicht so einfach oder? Ich erreiche da überhaupt nichts.

Vielen Dank noch einmal.

Verfasst: So 8. Dez 2013, 19:26
von esdd
Ich vermute auch, dass das schwierig ist und man sich dafür in den Quellcode des Paketes vertiefen müsste.

Verfasst: Mo 9. Dez 2013, 19:17
von Patrick1990
Ja, danke.

Hier steht zwar etwas:
\newcommand*{\hint}[1] {%
}
\def\xcb@hint {%
}
\pagebreak[1] \begin{tikzpicture}[line width = 1.5pt, \xcb@color@hintline]
\useasboundingbox (0,0) -- ++(right:3.5cm) -- ++(up:3mm) -- ++(left:3.5cm) -- cycle; \draw (-3mm, 0mm) -- ++(right:3.5cm); \draw (0, 3mm) -- ++(down:2.4cm);
\end{tikzpicture}
\nopagebreak
\begingroup	% a group for the hint \leftskip1em
\xcb@name@hinthead \nopagebreak
\itshape\textcolor{\xcb@color@hint}{\xcb@fontsize@hint{##1}}
\par \endgroup

aber damit kann man ja nichts anfangen.

Verfasst: Mo 9. Dez 2013, 20:00
von esdd
Sehr wahrscheinlich sorgt das \vfill im folgenden Codeausschnitt dafür, dass der Tipp ganz nach unten geschoben wird:
%% THIRD BLOCK
    \begin{wraptable}{r}{\xcb@ingredientswidth}
    {
        \xcb@ingredients
    }
    \end{wraptable}
    \xcb@preparation

    \vfill

    \xcb@cmd@wrapfill
    \xcb@hint
    \setcounter{xcb@newpagefoot}{0}
}
Wenn du das \vfill testweise auskommentieren oder durch ein \vspace{2\baselineskip} ersetzen möchtest, dann kopiere dir die xcookybooky.sty in dein Arbeitsverzeichnis (also das Verzeichnis in dem deine tex Datei liegt) und ändere in dieser Kopie.

Gruß
Elke

Verfasst: Mo 9. Dez 2013, 20:11
von Patrick1990
Oh ich bin so dankbar. Vielen, vielen Dank.

Funktioniert super.

Verfasst: Mo 9. Dez 2013, 21:11
von esdd
Ist das Thema damit beantwortet? Wenn ja, dann ändere bitte noch den Status.