Minipage: Text oben rechts

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Minipage: Text oben rechts

von Gast » Mi 14. Mär 2018, 12:28

Die \fbox wird mit der Grundlinie ihres Inhalts auf der obersten Textzeile des Textbereichs ausgerichtet. Diese liegt \topskip unter dem obersten Rand des Textbereichs. Da \topskip meist \ht\strutbox entspricht, genügt vermutlich bereits ein \strut in der \fbox. Sonst muss man sie mit \raisebox entsprechend der Differenz zwischen \topskip und ihrer tatsächlichen Höhe nach oben verschieben.

von Gast » Mi 14. Mär 2018, 12:23

Das Beispiel ist nicht lauffähig. Lies und beachte die Minimalbeispiel-Anleitung!

von olpo » Mi 14. Mär 2018, 11:55

Der dritte Vorschlag bei texwelt.de liefert das beste Ergebnis.
Nur die rechte Box ist nicht ganz in der Ecke...
\documentclass{scrartcl}
\usepackage{showframe}
\usepackage{graphicx}

\newbox{\picbox}

\savebox{\picbox}{%
\fbox{%
  \raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{%
    \includegraphics[width=3cm]{jeyre}}
  }
}

\begin{document}
\noindent
\begin{minipage}[t]{0.4\textwidth}
 \usebox{\picbox}
\end{minipage}
\hfill
\begin{minipage}{0.4\textwidth}
  \raggedleft\fbox{consetetur sadipscing elitr}
\end{minipage}
\end{document}

von olpo » Mi 14. Mär 2018, 11:39

Mit adjustbox ist das Ergebnis aber auch nicht besser.
Das Bild schließt nicht sauber am oberen Rand.
\documentclass{scrartcl}
\usepackage{showframe}
\usepackage{graphicx}
\usepackage{adjustbox}

\newbox{\picbox}
\savebox{\picbox}{%
\fbox{\adjincludegraphics[valign=t,width=3cm]{jeyre}}
}

\begin{document}
\noindent

\begin{minipage}[t]{0.4\textwidth}
  \usebox{\picbox}
\end{minipage}
\hfill
\begin{minipage}[t]{0.4\textwidth}
  \raggedleft\fbox{consetetur sadipscing elitr}
\end{minipage}

\end{document}

von Gast » Mo 12. Mär 2018, 12:54

olpo hat geschrieben:Bei texwelt.de habe ich eine dreckige Lösung gefunden: https://texwelt.de/wissen/fragen/4116/w ... ausrichten
Wenn Du diese Lösung dreckig findest, warum nimmst Du dann nicht die saubere Lösung aus der am höchsten bewerteten Antwort?

BTW: In den wichtigen Hinweisen unsere Grafikforums gibt es auch diverse Beispiele zur vertikalen Ausrichtung.

von olpo » Mo 12. Mär 2018, 12:03

Ich konnte den Style-Code in das Minimalbeispiel übertragen.
Tatsächlich ist \includegraphics das Problem.
Bei texwelt.de habe ich eine dreckige Lösung gefunden: https://texwelt.de/wissen/fragen/4116/w ... ausrichten

Kann das noch jemand verbessern?
\documentclass{scrartcl}
\usepackage{showframe}
\usepackage{graphicx}

\newbox{\foo}
\newbox{\picbox}

%\savebox{\foo}{%
% \fbox{
%  \begin{tabular}[t]{@{}l@{}}
%    Lorem\\ipsum\\dolor\\sit\\amet
%  \end{tabular}%
%  }
%}

\savebox{\picbox}{%
\fbox{\includegraphics[width=3cm]{jeyre}}
}

\begin{document}
\noindent
\begin{minipage}[t]{0.4\textwidth}
%\usebox{\foo}
\vspace{-\ht\strutbox}
\usebox{\picbox}
\end{minipage}
\hfill
\vspace{-\ht\strutbox}
\fbox{%
    consetetur sadipscing elitr
}
\end{document}

von olpo » So 11. Mär 2018, 21:30

Das Problem scheint bei der \@picbox zu liegen.
Wenn ich bei die \@picbox gegen unsere \foo box aus dem Mini-Bsp. ersetze, dann wird der Name im Komacv "richtig" oben rechts gesetzt.
Ich kann mir das nicht erklären. Ich dachte immer Box sei Box, unabhängig vom Inhalt.
%%%%%% -->
\newbox{\foo} 
\savebox{\foo}{% 
  \begin{tabular}[t]{@{}l@{}} 
    Lorem\\ipsum\\dolor\\sit\\amet 
  \end{tabular}% 
} 
%%%%%%%%%%%%%
\providecommand\@cvtitletest{%
\newbox{\@picbox}
\savebox{\@picbox}{%
  \ifundef{\@photoname}{}{% with picture:
    \ifthenelse{%
      \equal{\@photoframe}{frame} \OR
      \equal{\@photoframe}{mframe}
    }{% with frame:
      \fcolorbox{@framecolor}{@framebackcolor}{%
        \includegraphics[width=\@photowidth]{\@photoname}%
      }% end fcolorbox
    }{% without frame:
      \includegraphics[width=\@photowidth]{\@photoname}%
    }% end ifdefstring frame
  }% end ifundef photoname
}% end savebox picbox
\settowidth\@titlepicwidth{\usebox{\@picbox}}
\setlength\@titlenamewidth{\textwidth-\@titlesepwidth-\@titlepicwidth}

%%%%% --> usebox austauschen
%  \usebox{\@picbox}
\usebox{\foo}
%%%%%%%%%%%%%%
  \hspace*{\@titlesepwidth}%
  \parbox[b]{\@titlenamewidth}{%
    \raggedleft{\firstnamestyle\firstname}%
    ~{\familynamestyle\familyname}\\
    \raggedleft\color{@firstnamecolor}\rule{\@titlenamewidth}{.25ex}\par
  }% end parbox
  \vspace{\@aftertitlevspace}
  %% optional acadtitle
  \ifdefempty{\acadtitle}{}{%
    \raggedleft\acadtitlestyle{\acadtitle}}\\[2.5em]%
  %% optional quote
  \ifdefempty{\cvquote}{}{%
    {\centering
      \begin{minipage}{\@quotewidth}%
        \centering\quotestyle{\cvquote}
      \end{minipage}\\[\@afterquotevspace]%
    }
  }%
}% end \@cvtitle-test
Wie gesagt versuche ich komacv-casual.sty zu editieren.
https://ctan.org/pkg/komacv?lang=de

von olpo » So 11. Mär 2018, 09:40

Hmm, bei dem tätsächlichen Projekt will das noch nicht:
Ich bin dabei komacv-casual.sty zu editieren. Von Zeile 88 bis 126 wird der Titel des CV erzeugt (siehe Code).
\providecommand\@cvtitlecasual{%
\newbox{\@picbox}
\savebox{\@picbox}{%
  \ifundef{\@photoname}{}{% with picture:
    \ifthenelse{%
      \equal{\@photoframe}{frame} \OR
      \equal{\@photoframe}{mframe}
    }{% with frame:
      \fcolorbox{@framecolor}{@framebackcolor}{%
        \includegraphics[width=\@photowidth]{\@photoname}%
      }% end fcolorbox
    }{% without frame:
      \includegraphics[width=\@photowidth]{\@photoname}%
    }% end ifdefstring frame
  }% end ifundef photoname
}% end savebox picbox
\settowidth\@titlepicwidth{\usebox{\@picbox}}
\setlength\@titlenamewidth{\textwidth-\@titlesepwidth-\@titlepicwidth}

  \usebox{\@picbox}%
  \hspace*{\@titlesepwidth}%
  \parbox[b]{\@titlenamewidth}{%
    \raggedleft{\firstnamestyle\firstname}%
    ~{\familynamestyle\familyname}\\
    \raggedleft\color{@firstnamecolor}\rule{\@titlenamewidth}{.25ex}\par
  }% end parbox
  \vspace{\@aftertitlevspace}
  %% optional acadtitle
  \ifdefempty{\acadtitle}{}{%
    \raggedleft\acadtitlestyle{\acadtitle}}\\[2.5em]%
  %% optional quote
  \ifdefempty{\cvquote}{}{%
    {\centering
      \begin{minipage}{\@quotewidth}%
        \centering\quotestyle{\cvquote}
      \end{minipage}\\[\@afterquotevspace]%
    }
  }%
}% end \@cvtitle-casual
In dem ersten Abschnitt wird eine @picbox angelegt und zu Beginn des zweiten Abschnitts mit \usebox{\@picbox} verwendet.
Neben diese @picbox wird eine \parbox gesetzt.

Ich möchte nun erreichen, daß die \parbox in die Ecke oben rechts gesetzt wird.

von esdd » Sa 10. Mär 2018, 22:09

Mir ist nicht ganz klar, was Du erreichen möchtest. Vielleicht etwas in der Richtung
\documentclass{scrartcl}
\usepackage{showframe}% Anzeigen des Seitenlayouts
\newbox{\foo}
\begin{document}
\savebox{\foo}{%
  \begin{tabular}[t]{@{}l@{}}
    Lorem\\ipsum\\dolor\\sit\\amet
  \end{tabular}%
}
\noindent\fbox{\usebox\foo}%
\hfill
\fbox{%
  \begin{tabular}[t]{@{}l@{}}
    consetetur sadipscing elitr
  \end{tabular}%
}
\end{document}

von olpo » Sa 10. Mär 2018, 21:44

Mein Beispiel oben funktioniert noch nicht:
Die linke Box (foo) erzeugt keinen Zeilenumbruch.

Weiß jemand warum?

Nach oben