Von zweispaltig hoch auf einspaltig quer: Text und Seitenzahl (im Querformat) an den linken Rand zwingen

Von zweispaltig hoch auf einspaltig quer: Text und Seitenzahl (im Querformat) an den linken Rand zwingen

Bitte helfen Sie mir, im nächsten Code den Text Holaund die Seitenzahl 2in den oberen linken Rand der gedrehten Seite zu zwingen.

Hinweis: Ich arbeite mit einem zweispaltigen Hochformatdokument und benötige vorübergehend eine Änderung in ein einspaltiges Querformat, wobei sich der HolaText am oberen linken Rand befindet.

Danke!

\documentclass[twocolumn]{article}

% Packages for various functionalities
\usepackage{lipsum} % For dummy text; you can remove this in your actual document
\usepackage{graphicx} % For including images
\usepackage{caption} % For captions
\usepackage{authblk} % For author affiliations
\usepackage{longtable} % For long tables
\usepackage{pdflscape} % For landscape pages
\usepackage[margin=1in]{geometry} % Adjust margins as desired
\usepackage{showframe} % To display page borders
\usepackage{geometry} %to change page margins
 \geometry{
 letterpaper,
 left=10mm,
 top=10mm,
 bottom=10mm,
 right=10mm
 }
 
% Title and authors
\title{Your Title Here}
\author[1]{Author One}
\author[2]{Author Two}
\affil[1]{Affiliation One}
\affil[2]{Affiliation Two}

\begin{document}

\maketitle

\section{Introduction}
% ... (Sections and content here)


\begin{landscape}
\newgeometry{margin=2cm, top=2cm, bottom=2cm, left=2cm, right=2cm} % Adjust margins for landscape page
\clearpage %needed for next command
\onecolumn %reset to one column mode


Hola

\clearpage %needed for next command
\twocolumn %reset to two-column mode
\restoregeometry %return to initial page margins
\end{landscape}


\section{Discussion}
% ... (Remaining content here)

\end{document}

Das aktuelle schlechte Ergebnis sieht wie folgt aus:

Bildbeschreibung hier eingeben

Ich möchte ein Ergebnis wie das unten (links):

Bildbeschreibung hier eingeben

Antwort1


Bearbeitung am Donnerstag, 4. Januar 2024, 22:24 Uhr (UTC +0000):

Fehler 1:

InTeX - LaTeX Stack Exchange Chat Ulrike Fischer wies darauf hindass mit \newgeometrydem PaketGeometrieSie müssen die onecolumn-Option anwenden, obwohl Sie über in den Ein-Spalten-Modus wechseln \onecolumn.

Problem 2:

Der Typblock ist das Feld, das den Text einer Seite des Dokuments enthält. (Nicht die Kopf-/Fußzeilen, nicht die Randnotizen.)

Aber in LaTeX werden keine Parameter/Längen \typeblockwidth/ \typeblockheighteingeführt.

Stattdessen soll jedes von \textwidthund \textheightzwei Dinge bestimmen:

In jedem Fall

  • \textwidthdient dazu, die horizontale Ausdehnung des Typeblocks zu bestimmen.
  • \textheightdient dazu, die vertikale Ausdehnung des Typeblocks zu bestimmen.

Wenn der Text im Typeblock horizontal ausgerichtet ist

  • \textwidthdient auch dazu, die maximale Länge der Textzeilen zu bestimmen, die in den Typeblock passen.
  • \textheightdient außerdem dazu, den verfügbaren Platz zum Übereinanderplatzieren von Textzeilen innerhalb des Typblocks festzulegen.

Wenn der Text im Typeblock vertikal ausgerichtet ist

  • \textwidthdient außerdem dazu, den verfügbaren Platz zum Übereinanderplatzieren von Textzeilen innerhalb des Typblocks festzulegen.
  • \textheightdient auch dazu, die maximale Länge der Textzeilen zu bestimmen, die in den Typeblock passen.

Innerhalb der Umgebung landscapedes PaketsLandschaft1 \textheight wird geändert, um den Platz zu bestimmen, der innerhalb der Seitentypenblöcke zum Übereinanderplatzieren von Textzeilen zur Verfügung steht, während diese Zeilen innerhalb der Seitentypenblöcke vertikal ausgerichtet sind.

Bei dieser Änderung wird nicht berücksichtigt, dass \textheightin jedem Fall - unabhängig davon, ob Text innerhalb des Typeblocks horizontal oder vertikal ausgerichtet ist - die vertikale Ausdehnung des Typeblocks zu bestimmen ist.

D. h., während die Umgebung landscapedes PaketsLandschaft1 ist wirksam und \textheightbestimmt nicht mehr die vertikale Ausdehnung des Typblocks.

Aber mit der Routine \ShowFramePicturedes PaketsSchaurahmenbeim Zeichnen der Rahmen wird (meiner Meinung nach richtigerweise) davon ausgegangen, dass diese \textheightin jedem Fall die vertikale Ausdehnung des Typeblocks bestimmen.

DaherLandschaftDie erste Änderung von \textheightmuss rückgängig gemacht werden, bevor ein Satz von Frames \ShowFramePictureüber gezeichnet werden kann.

Daher habe ich mich für \ShowFramePictureeine Neudefinition innerhalb der landscape-Umgebung entschieden, um (nur) innerhalb des lokalen Bereichs zurückzusetzen \textheight, der beim Zeichnen der Frames wirksam ist.

1 Das Paketpdflscapeinterne BelastungenLandschaftund ändert die Umgebung landscapedes PaketsLandschaftso dass zu jeder Seite, die an die .pdf-Datei gesendet wird, während die Umgebung landscapeaktiv ist, eine Anweisung für den PDF-Viewer hinzugefügt wird, diese Seite um einen Winkel von 90 Grad gedreht auf dem Bildschirm anzuzeigen. Diese Anweisung beeinflusst nur, wie die Seite auf dem Computerbildschirm/auf dem Display angezeigt wird, das zum Anzeigen der .pdf-Datei verwendet wird. Diese Anweisung beeinflusst eigentlich nicht die Satzarbeit von TeX. Sie beeinflusst die „Anzeigearbeit“ des Programms, das zum Anzeigen der .pdf-Datei verwendet wird. Obwohl bei Seiten, die gesetzt und gesendet werden, während die Umgebung landscapeaktiv ist, die Textzeilen der Schriftblöcke vertikal ausgerichtet sind, müssen Sie Ihren Kopf nicht nach links oder rechts neigen, um sie auf dem Bildschirm/Display zu lesen, da diese Seiten um 90 Grad gedreht angezeigt werden, sodass Sie sie lesen können, indem Sie von links nach rechts auf den Bildschirm/das Display Ihres Computers schauen.


\documentclass[twocolumn, letterpaper]{article}

% Packages for various functionalities
\usepackage{lipsum} % For dummy text; you can remove this in your actual document
\usepackage{graphicx} % For including images
\usepackage{caption} % For captions
\usepackage{authblk} % For author affiliations
\usepackage{longtable} % For long tables
\usepackage{pdflscape} % For landscape pages
\usepackage{geometry} %to change page margins
\usepackage{showframe} % To display page borders

\geometry{
 letterpaper,
 left=20mm,
 top=20mm,
 bottom=20mm,
 right=20mm
}

\newcommand\savetextheight{}%

% Title and authors
\title{Your Title Here}
\author[1]{Author One}
\author[2]{Author Two}
\affil[1]{Affiliation One}
\affil[2]{Affiliation Two}

\begin{document}

\maketitle

\section{Introduction}
%... (Sections and content here)
\lipsum[1-8]

\onecolumn %reset to one column mode
\newgeometry{onecolumn, margin=2cm, top=2cm, bottom=2cm, left=2cm, right=2cm}% Adjust margins for landscape page

\edef\savetextheight{\number\textheight\space sp\relax}%
\begin{landscape}%
\makeatletter
\renewcommand\ShowFramePicture{%
  \begingroup
    % -------------------------------------------------------------------------------------------
    %  \textheight is modified within the landscape-environment because the box holding the text
    %  is rotated. But the frames around the text are drawn on the sheet of paper, which during
    %  typesetting is not rotated (, although pdflscape tells pdf-viewers to display it rotated).
    %  Thus modification of \textheight is to be undone while drawing the frames:
    % -------------------------------------------------------------------------------------------
    \textheight=\savetextheight
    % -------------------------------------------------------------------------------------------
    \ShowFrameColor\linethickness{\ShowFrameLinethickness}%
    \AtPageLowerLeft{%
      \framebox(\paperwidth,\paperheight){}}%
    \AtTextLowerLeft{%
      \framebox(\textwidth,\textheight){}}%
    \AtTextUpperLeft{%
      \put(0,\headsep){%
        \framebox(\textwidth,\headheight){}}}%
    \AtTextLowerLeft{%
      \put(0,-\footskip){%
        \line(1,0){\textwidth}}}%
    \AtTextLowerLeft{%
      \SF@tempdima=\textwidth\advance\SF@tempdima\marginparsep
      \if@twoside
        \ifodd\c@page\else
          \if@mparswitch
            \SF@tempdima=-\marginparsep\advance\SF@tempdima-\marginparwidth
          \fi
        \fi
      \fi
      \put(\SF@tempdima,0)%
        {\framebox(\marginparwidth,\textheight){}}%
    }%
  \endgroup
}
\makeatother
\noindent Hola \lipsum[1-18]
\clearpage
\lipsum[1-8]
\end{landscape}%

\twocolumn
\restoregeometry %return to initial page margins

\section{Discussion}
% ... (Remaining content here)
\lipsum[1-8]

\end{document}
Bildbeschreibung hier eingeben

Antwort2

Willkommen bei TeX.SE!

Das folgende MWE (Minimal Working Example) reproduziert Ihr zweites fragliches Bild:

\documentclass[twocolumn]{article}
\usepackage[letterpaper,
            margin=1in]{geometry} % Adjust margins as desired

\usepackage{afterpage} % For landscape pages
\usepackage{pdflscape} % For landscape pages

% Packages for various functionalities
\usepackage{lipsum} % For dummy text; you can remove this in your actual document
\usepackage{graphicx} % For including images
\usepackage{caption} % For captions
\usepackage{authblk} % For author affiliations
\usepackage{longtable} % For long tables
                    

% Title and authors
\title{Your Title Here}
\author[1]{Author One}
\author[2]{Author Two}
\affil[1]{Affiliation One}
\affil[2]{Affiliation Two}

\begin{document}
\pagestyle{plain}

\maketitle

\section{Introduction}
\lipsum[1-4]

\afterpage{%
    \clearpage
\newgeometry{margin=20mm} % Adjust margins for landscape page
\onecolumn              % reset to one column mode
    \begin{landscape}

Hola, landscape here!

\lipsum[1-3]

    \end{landscape}
\restoregeometry %return to initial page margins
\twocolumn %reset to two-column mode
            }% end afterpage          
\lipsum[6]

\section{Discussion}
\lipsum[7-13]

\end{document}

Bildbeschreibung hier eingeben

Es ist nicht ganz klar, wo man Seitenzahlen haben möchte. Bisher habe ich sie so gelassen, wie sie standardmäßig positioniert sind (mittig im Fuß).

In Fällen, in denen Sie die Seitenzahl an einer anderen Stelle haben möchten, müssen Sie neue Kopf-/Fußzeilenstile definieren, beispielsweise mit use fancyhdrpackage. Fügen Sie beispielsweise in die Präambel Folgendes hinzu:

\usepackage{fancyhdr}    
\fancypagestyle{LandScape}%
{%
\fancyhf{}%
\fancyhead[L]{\thepage}%
\renewcommand{\headrulewidth}{0pt}%
\renewcommand{\footrulewidth}{0pt}%
}

und davor \begin{landscape}in den Dokumenttext einfügen

\pagestyle{LandScape}

Der resultierende Seitenstil ist:

Bildbeschreibung hier eingeben

Bearbeiten:

  • Es ist nicht klar, warum Sie es definieren, \newgeometrywenn es dieselben Einstellungen wie die Geometrie anderer Dokumentseiten (im Hochformat) hat. In solchen Fällen würde ich es nicht verwenden, d. h. in Ihrem Fall würde ich es einfach weglassen.
  • Wenn das korrekte Zeichnen von Seitenlayoutrahmen auf allen Seiten Ihr Hauptanliegen ist, sollten Sie sich an die von @Ulrich Diez vorgeschlagene Lösung (+1) halten.
  • Seine Lösung, die an meine ursprüngliche Antwort angepasst wurde, mit leicht verändertem Code, wird im folgenden MWE gezeigt:
\documentclass[twocolumn]{article}
\usepackage[letterpaper,
            margin=1in]{geometry} % Adjust margins as desired
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.5pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}     % For dummy text; in actual document
                        % you can/should remove it

\newcommand\savetextheight{}%
\edef\savetextheight{\number\textheight\space sp\relax}%
\makeatletter%
\renewcommand\ShowFramePicture{%
    \textheight=\savetextheight
%---------------------------------------------------------------%
\ShowFrameColor\linethickness{\ShowFrameLinethickness}%
\AtTextLowerLeft{% text box
  \framebox(\textwidth,\textheight){}}%
\AtTextUpperLeft{% page header
  \put(0,\headsep){%
    \framebox(\textwidth,\headheight){}}}%
\AtTextLowerLeft{% page margin
  \put(0,-\footskip){%
    \line(1,0){\textwidth}}}%
\AtTextLowerLeft{%  when document is twoside
  \SF@tempdima=\textwidth\advance\SF@tempdima\marginparsep
  \if@twoside
    \ifodd\c@page\else
      \if@mparswitch
        \SF@tempdima=-\marginparsep\advance\SF@tempdima-\marginparwidth
      \fi
    \fi
  \fi
  \put(\SF@tempdima,0)%
    {\framebox(\marginparwidth,\textheight){}}%
                }% end of twoside
                    }% end of \renewcommand
\makeatother

% Packages for various functionalities
\usepackage{afterpage}  % For remove empty space on page before 
                        % landscape page with text after it
\usepackage{pdflscape}  % For landscape pages
\usepackage{graphicx}   % For including images
\usepackage{caption}    % For captions
\usepackage{authblk}    % For author affiliations
\usepackage{longtable}  % For long tables


% Title and authors
\title{Your Title Here}
\author[1]{Author One}
\author[2]{Author Two}
\affil[1]{Affiliation One}
\affil[2]{Affiliation Two}

%---------------------------------------------------------------%
\begin{document}
\maketitle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
\lipsum[1-4]

\afterpage{%
    \clearpage
\onecolumn                  % reset to one column mode
\begin{landscape}%
Hola, landscape here!

\lipsum[1-2]

\begin{longtable}[htb]{|p{\dimexpr\textwidth-2\tabcolsep}|}
\caption{Longtable: width = \texttt{textwidth}} \\
    \hline
\lipsum[66] \\
    \hline
\end{longtable}

\begin{longtable}[htb]{|p{\dimexpr\textheight-2\tabcolsep}|}
\caption{Longtable: width = \texttt{textheight}} \\
    \hline
\lipsum[66] \\
    \hline
\end{longtable}

\begin{longtable}[htb]{|p{\dimexpr\linewidth-2\tabcolsep}|}
\caption{Longtable: width = \texttt{linewidth}} \\
    \hline
\lipsum[66] \\
    \hline
\end{longtable}

\end{landscape}%
\twocolumn
        }% end \afterpage


\section{Discussion}
\lipsum[1-8]

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen