Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Wert von (set)capindent speichern

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.06.2013
    Beiträge
    11

    Wert von (set)capindent speichern

    Hi,

    vermutlich ist die Lösung simpel, aber ich scheine einfach nicht auf den richtigen Weg zu kommen. Ich möchte ab einer bestimmten Stelle im Dokument
    Code:
    \setcapindent{0pt}
    setzen – kein Problem. Ab einer späteren Stelle möchte ich den vorherigen Wert wiederherstellen. Ich nehme an, dass es im Prinzip möglich ist, den vorherigen Wert zu speichern
    Code:
    \let\oldcapindent\[?]
    aber wie kann ich auf diesen zugreifen?
    Ich verwende die Klasse scrbook, falls das in diesem Fall relevant sein sollte.

    Vielen Dank für alle Tipps. Gruß
    Claudi

  2. #2
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    Das einfachste ist, \setcapindent innerhalb der entsprechenden figure- oder table-Umgebung aufzurufen. Die Wirkung bleibt dann auf die jeweilige Umgebung beschränkt.

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.06.2013
    Beiträge
    11
    Hallo,

    danke für diesen Rat. Leider kann ich es so direkt nicht machen, es scheint mich aber in die Nähe einer anderen Lösung zu bringen. Dafür muss ich aber etwas mehr ins Detail gehen.
    Ich kann den Befehl nicht innerhalb der figure-Umgebungen setzten, da diese automatisch von knitr in mein Dokument eingefügt werden. Allerdings kann ich um die figures herum Minipages setzen, was ich an einigen Stellen tun möchte. \setcapindent soll nur innerhalb von (allen) Minipages wirken. Dein Rat hat mich nun darauf gebracht, dass ich \setcapindent{0pt} innerhalb der Minipages setzen kann und sich die Wirkung dann auch nur auf diese beschränkt.
    Seinen Zweck erfüllt erstmal
    Code:
    \newenvironment{myminipage}[2][t]{\begin{minipage}[#1]{#2}\setcapindent{0pt}}{\end{minipage}}
    , lieber wäre mir allerdings, minipage umzudefinieren. Leider bekomme ich beim besten Willen keine Lösung mit renewenvironmt hin, beispielsweise fliegt mir folgendes um die Ohren:
    Code:
    \let\oldminipage\minipage
    \renewenvironment{minipage}[2][t]{\begin{oldminipage}[#1]{#2}\setcapindent{0pt}}{\end{oldminipage}}
    Kannst du mir hier vielleicht nochmal auf die Sprünge helfen?
    Hier noch ein M(not)WE
    Code:
    \documentclass{scrbook}
    
    \usepackage{blindtext}
    \usepackage{float} % ohne "H" kann figure nicht in der minipage stehen
    
    \newenvironment{myminipage}[2][t]{\begin{minipage}[#1]{#2}\setcapindent{0pt}}{\end{minipage}}
    
    % Funktioniert nicht:
    %\let\oldminipage\minipage
    %\renewenvironment{minipage}[2][t]{\begin{oldminipage}[#1]{#2}\setcapindent{0pt}}{\end{oldminipage}}
    
    \begin{document}
    \blindtext
    \begin{minipage}[t]{0.8\textwidth}
    	\begin{figure}[H]
    	\caption{\blindtext}
    	\end{figure}
    \end{minipage}
    
    \begin{figure}
    \caption{\blindtext}
    \end{figure}
    
    \end{document}
    Danke und Gruß
    Claudi

  4. #4
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Code:
    \documentclass{scrbook}
    
    \usepackage{blindtext}
    \usepackage{float} % ohne "H" kann figure nicht in der minipage stehen
    
    \let\oldminipage\minipage
    \let\oldendminipage\endminipage
    \renewenvironment{minipage}{\setcapindent{0pt}\oldminipage}{\oldendminipage}
    
    \begin{document}
    \blindtext
    \begin{minipage}[t]{0.8\textwidth}
    	\begin{figure}[H]
    	\caption{\blindtext}
    	\end{figure}
    \end{minipage}
    
    \begin{figure}
    \caption{\blindtext}
    \end{figure}
    
    \end{document}
    oder alternativ

    Code:
    \documentclass{scrbook}
    
    \usepackage{blindtext}
    \usepackage{float} % ohne "H" kann figure nicht in der minipage stehen
    
    \usepackage{etoolbox}
    \AtBeginEnvironment{minipage}{\setcapindent{0pt}}
    
    \begin{document}
    \blindtext
    \begin{minipage}[t]{0.8\textwidth}
    	\begin{figure}[H]
    	\caption{\blindtext}
    	\end{figure}
    \end{minipage}
    
    \begin{figure}
    \caption{\blindtext}
    \end{figure}
    
    \end{document}
    Allerdings finde ich die Lösung mit der figure in der minipage etwas unhübsch. Wie wäre es mit
    Code:
    \documentclass{scrbook}
    
    \usepackage{blindtext}
    
    \usepackage{etoolbox}
    \AtBeginEnvironment{minipage}{\setcapindent{0pt}}
    
    \begin{document}
    \blindtext
    \begin{minipage}[t]{0.8\textwidth}
    	\captionof{figure}{\blindtext}
    \end{minipage}
    
    \begin{figure}
    \caption{\blindtext}
    \end{figure}
    
    \end{document}
    Geändert von sommerfee (18-09-2013 um 08:27 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.06.2013
    Beiträge
    11
    Hallo sommerfee,

    danke, das hilft mir wirklich sehr!

    Zitat Zitat von sommerfee Beitrag anzeigen
    Code:
    \let\oldminipage\minipage
    \let\oldendminipage\endminipage
    \renewenvironment{minipage}{\setcapindent{0pt}\oldminipage}{\oldendminipage}
    Ah – mit dem Speichern von Anfangs- und End-Befehl hatte ich herumprobiert, aber dass ich dann in \renewenvironment nur \oldminipage und nicht \begin{\oldminipage} (o.ä.) brauche war mir nicht klar …
    Allerdings gefällt mir deine Alternative noch wesentlich besser, weil sie schlanker ist.

    Zitat Zitat von sommerfee Beitrag anzeigen
    oder alternativ

    Code:
    […]
    \AtBeginEnvironment{minipage}{\setcapindent{0pt}}
    Zitat Zitat von sommerfee Beitrag anzeigen
    Allerdings finde ich die Lösung mit der figure in der minipage etwas unhübsch.
    Ja, ich auch. Allerdings ist mein Code durch die teilweise dynamische Generierung ohnehin schon etwas unübersichtlich, weshalb mir dieser unhübsche aber halbwegs klare Weg im Endeffekt besser gefällt. Ansonsten müsste ich im Code, der die Grafiken und figure-Umgebungen generiert, zwischen Situationen innerhalb von Minipages und solchen außerhalb unterscheiden.

    Gruß
    Claudi

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •