5
1

Ich möchte um die gesamte Seite einen Rahmen ziehen.

Die Seitenränder lege ich mit geometry fest, der Rahmen soll dann in einem festen Rahmen zum Text sein.

Nach einiger Recherche denke ich, dass tikz mit current page der richtige Ansatz ist. Allerdings bekomme ich das ganze nicht befriedigend gelöst.

Open in writeLaTeX
\documentclass{minimal}
\usepackage{tikz} 
\usetikzlibrary{calc}
\usepackage[paper=a4paper,bottom=25mm, left=25mm, top=25mm, right=25mm]{geometry}
\usepackage{lipsum}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[remember picture,overlay] 
    \path[use as bounding box](0,0)rectangle(\textwidth,\textheight); 
    \draw[black, line width=0.5mm]% 
    (current page.south west) %
    rectangle(\textwidth+2mm,\textheight); 
\end{tikzpicture} 
\lipsum[1-5]
\end{document}

Nur die rechte Seite des Rahmens ist in etwa so, wie ich mir das Ergebnis vorstelle, wobei der Abstand Text-Rahmen auch größer ist als 2 mm.

Vielen Dank schon mal im Voraus für jede Hilfe.

gefragt 03 Nov '14, 22:31

Bigga's gravatar image

Bigga
0113
Akzeptiert-Rate: 0%

2

Eventuell hilft dir das Paket tikzpagenodes hier weiter http://www.ctan.org/pkg/tikzpagenodes

(04 Nov '14, 08:24) maphy-psd

Alternativ zur Verwendung von TikZ zwei Lösungsvorschläge ohne:

Hier mal ein Beispiel, wie das mit scrlayer mit Unterstützung von scrlayer-scrpage gemacht werden kann:

Open in writeLaTeX
\documentclass{article}
\usepackage{scrlayer-scrpage}
\pagestyle{plain}
\DeclareNewLayer[%
  background,% Hintergrundebene
  textarea,% Größe und Position des Textbereichs
  contents={%
    \setlength{\fboxsep}{2mm}% Abstand Box Text
    \setlength{\fboxrule}{.5mm}% Dicke Linie
    % vertikale Position korrigieren
    \vskip-\fboxsep\vskip-\fboxrule\vskip-\baselineskip
    % horizontale Position korrigieren
    \hspace{-\fboxsep}\hspace{-\fboxrule}%
    \makebox[\layerwidth][l]{%
      \fbox{\rule{0pt}{\layerheight}\rule{\layerwidth}{0pt}}% Rahmen
    }%
  }
]{frame}
\AddLayersToPageStyle{@everystyle@}{frame}

\usepackage{mwe}% Nur zur Demozwecken
\begin{document}
\Blindtext

\end{document}

Da das bei scrlayer an den Seitenstil geknüpft ist, kann man auch einfach sagen, dass es beispielsweise auf Seiten im Seitenstil plain und im Seitenstil headings beschränkt bleiben soll, aber nicht im Seitenstile empty mit ausgegeben werden soll. Man kann die neue Ebene auch nach Belieben wieder entfernen und hinzufügen, um sie für einzelne Seiten zu deaktivieren.

Eine ähnliche Implementierung wäre auch mit eso-pic möglich:

Open in writeLaTeX
\documentclass{article}
\usepackage{eso-pic}
\AddToShipoutPicture{%
  \AtTextCenter{%
    \setlength{\fboxsep}{2mm}% Abstand Box Text
    \setlength{\fboxrule}{.5mm}% Dicke Linie
    \makebox(0,0)[c]{%
      \fbox{\rule{0pt}{\textheight}\rule{\textwidth}{0pt}}% Rahmen
    }%
  }
}

\usepackage{mwe}% Nur zur Demozwecken
\begin{document}
\Blindtext

\end{document}

Hier wird der Rahmen schlicht auf allen Seiten ausgegeben. Entfernt man ihn aus der Ausgabe, so muss man ggf. auch die \AddToShipoutPicture-Anweisung wiederholen, um ihn wieder zu aktivieren.

Solche Trauerränder haben übrigens den Nachteil, dass sie die Typografie der Seite deutlich erschweren. So wäre es beispielsweise eigentlich nicht korrekt, zwischen Text und Rahmen rundherum einen einheitlichen Abstand zu wählen. Die Wirkung auf das menschliche Auge und die reine Mathematik sind oftmals nämlich nicht identisch.

BTW: Da die Klasse minimal nicht für vollständige Minimalbeispiele geeignet ist, sondern nur geeignet ist, um das Laden des LaTeX-Kerns zu testen, habe ich sie in meinem Beispielen durch article ersetzt. Natürlich kann man stattdessen auch jede andere Standardklasse oder beispielsweise eine KOMA-Script-Klasse verwenden.

Permanenter link

beantwortet 04 Nov '14, 07:48

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 04 Nov '14, 07:55

Vielen Dank. Funktioniert wunderbar.

(04 Nov '14, 11:04) Bigga

Wenn Du TikZ verwenden möchtest, dann bietet sich das von @maphy-psd erwähnte Paket tikzpagenodes an, das den Node current page text area bereit stellt. Das Beispiel benötigt dann wegen der remember picture Option zwei Durchläufe und der Rahmen ist nur auf dieser einzelnen Seite.

Open in writeLaTeX
\documentclass{article}
\usepackage[margin=25mm]{geometry}

\usepackage{tikzpagenodes}
\tikzset{
  frame/.style={
    line width=.5mm,
    purple,
    rounded corners}
}
\newcommand\fsep{2mm}

\usepackage{mwe}% Nur zur Demozwecken
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[remember picture,overlay]
    \draw[frame]([xshift=-\fsep,yshift=\fsep]current page text area.north west) %
      rectangle([xshift=\fsep,yshift=-\fsep]current page text area.south east); 
\end{tikzpicture} 
\Blindtext
\end{document}

alt text

TikZ lässt sich aber natürlich auch mit dem von @Ijon vorgeschlagenen Paket scrlayer-scrpage verwenden und erscheint dann auf allen Seiten, auf denen ein Seitenstil aktiv ist, zu dem der neue Layer hinzugefügt wurde.

Open in writeLaTeX
\documentclass{article}
\usepackage[margin=25mm]{geometry}

\usepackage{tikz}
\tikzset{
  frame/.style={
    line width=.5mm,
    purple,
    rounded corners}
}
\newcommand\fsep{2mm}

\usepackage{scrlayer-scrpage}
\DeclareNewLayer[%
  background,% Hintergrundebene
  textarea,% Größe und Position des Textbereichs
  contents={%
    \tikz{%
      \useasboundingbox(0,0)rectangle(\layerwidth,\layerheight);
      \draw[frame](-\fsep,-\fsep)rectangle(\layerwidth+\fsep,\layerheight+\fsep);
    }%
  }
]{frame}
%\AddLayersToPageStyle{@everystyle@}{frame}% auf allen Seiten
\AddLayersToPageStyle{empty}{frame}% nur beim Seitenstil empty

\usepackage{mwe}% Nur zur Demozwecken
\begin{document}
\pagestyle{empty}
\Blindtext[10]
\end{document}

Mit dem Paket scrlayer kann man sich aber auch einfach einen zusätzlichen Seitenstil für die Seiten mit dem Rahmen definieren:

Open in writeLaTeX
\documentclass{article}
\usepackage[margin=25mm]{geometry}

\usepackage{tikz}
\tikzset{
  frame/.style={
    line width=.5mm,
    purple,
    rounded corners}
}
\newcommand\fsep{2mm}

\usepackage{scrlayer}
\DeclareNewLayer[%
  background,% Hintergrundebene
  textarea,% Größe und Position des Textbereichs
  contents={%
    \tikz{%
      \useasboundingbox(0,0)rectangle(\layerwidth,\layerheight);
      \draw[frame](-\fsep,-\fsep)rectangle(\layerwidth+\fsep,\layerheight+\fsep);
    }%
  }
]{frame.bg}
\DeclarePageStyleByLayers{frame}{frame.bg}

\usepackage{mwe}% Nur zur Demozwecken
\begin{document}
\pagestyle{frame}
\Blindtext[10]
\end{document}
Permanenter link

beantwortet 04 Nov '14, 09:40

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Ach du hab Dank für deine sehr ausführliche Antwort. Da es aber auch ohne Tikz geht, verwende ich die Lösung von @Ijon.

Dein ausführliches Beispiel behalte ich auf jeden Fall im Hinterkopf; das kann ich sicher noch gebrauchen.

(04 Nov '14, 11:07) Bigga
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×2

gestellte Frage: 03 Nov '14, 22:31

Frage wurde gesehen: 16,453 Mal

zuletzt geändert: 04 Nov '14, 11:07