Ayúdenme a forzar el texto Hola
y el número de página 2
en el margen superior izquierdo de la página rotada en el siguiente código.
Nota: Estoy trabajando con un documento vertical de dos columnas y necesito un cambio temporal a un documento horizontal de una columna, con el Hola
texto ubicado en el borde superior izquierdo.
¡Gracias!
\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}
El mal resultado actual se ve así:
Quiero el resultado como el de abajo (a la izquierda):
Respuesta1
Editar el jueves 4 de enero de 2024 a las 22:24 (UTC +0000):
Número 1:
EnTeX - LaTeX Stack Exchange Chat Ulrike Fischer señalóque con \newgeometry
del paquetegeometríadebe aplicar la onecolumn
opción aunque cambie al modo de una columna a través de \onecolumn
.
Número 2:
El bloque de tipo es el cuadro que contiene el texto de una página del documento. (Ni los encabezados ni los pies de página, ni las notas al margen).
Pero en LaTeX no se introducen parámetros/longitudes \typeblockwidth
/ .\typeblockheight
En cambio, cada uno de \textwidth
y \textheight
debe determinar dos cosas:
En todo caso
\textwidth
es determinar la extensión horizontal del bloque tipográfico.\textheight
es determinar la extensión vertical del bloque tipográfico.
En caso de que el texto dentro del bloque tipográfico esté justificado horizontalmente
\textwidth
es también determinar la longitud máxima de líneas de texto que caben en el bloque tipográfico.\textheight
es también determinar la cantidad de espacio disponible para colocar líneas de texto una encima de otra dentro del bloque tipográfico.
En caso de que el texto dentro del bloque tipográfico esté justificado verticalmente
\textwidth
es también determinar la cantidad de espacio disponible para colocar líneas de texto una encima de otra dentro del bloque tipográfico.\textheight
es también determinar la longitud máxima de líneas de texto que caben en el bloque tipográfico.
Dentro del entorno landscape
del paquete.paisaje1 \textheight
se modifica para determinar la cantidad de espacio disponible dentro de los bloques tipográficos de las páginas para colocar líneas de texto una encima de otra, mientras que estas líneas dentro de los bloques tipográficos de las páginas se justifican verticalmente.
Este cambio ignora el hecho de que \textheight
en cualquier caso, sin importar si el texto dentro del bloque tipográfico está justificado horizontal o verticalmente, debe determinar la extensión vertical del bloque tipográfico.
Es decir, mientras el entorno landscape
del paquetepaisaje1 está vigente, \textheight
ya no determina la extensión vertical del bloque tipográfico.
Pero con la rutina \ShowFramePicture
del paquetemarco de exposiciónpara dibujar los marcos se supone (correctamente, en mi humilde opinión) que \textheight
en cualquier caso determina la extensión vertical del bloque tipográfico.
De este modopaisajeLa primera modificación de \textheight
debe deshacerse antes de que \ShowFramePicture
se realice el dibujo de un conjunto de marcos.
Así que decidí redefinir \ShowFramePicture
el landscape
entorno para restablecer \textheight
(solo) dentro del alcance local que está vigente al dibujar los marcos.
1 El paquetepaisaje pdfcargas internaspaisajey modifica el entorno landscape
del paquete.paisajede modo que a cada página enviada al archivo .pdf mientras el entorno landscape
está vigente, se agrega una directiva para que el visor de PDF muestre en la pantalla esta página girada en un ángulo de 90 grados. Esta directiva solo afecta cómo se muestra la página en la pantalla de la computadora/en la pantalla utilizada para ver el archivo .pdf. En realidad, esta directiva no afecta el trabajo de composición tipográfica de TeX. Afecta el "trabajo de visualización" del programa utilizado para ver el archivo pdf. Aunque con las páginas escritas y enviadas mientras el entorno landscape
estaba vigente, las líneas de texto de los bloques tipográficos están justificadas verticalmente, no es necesario inclinar la cabeza hacia la izquierda o hacia la derecha para leerlas en la pantalla/visualización como esas páginas. se muestran girados 90 grados para que pueda leerlos mirando la pantalla de su computadora de izquierda a derecha.
\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}
Respuesta2
¡Bienvenido a TeX.SE!
El siguiente MWE (ejemplo de trabajo mínimo) reproduce la segunda imagen en cuestión:
\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}
No está del todo claro dónde le gusta tener los números de página. Hasta ahora los dejé en la posición predeterminada (centrados en el pie).
En los casos en que desee tener el número de página en algún otro lugar, deberá definir nuevos estilos de encabezado/pie de página, por ejemplo con el fancyhdr
paquete de uso. Por ejemplo, al preámbulo añadir
\usepackage{fancyhdr}
\fancypagestyle{LandScape}%
{%
\fancyhf{}%
\fancyhead[L]{\thepage}%
\renewcommand{\headrulewidth}{0pt}%
\renewcommand{\footrulewidth}{0pt}%
}
y antes \begin{landscape}
en el cuerpo del documento insertar
\pagestyle{LandScape}
El estilo de página resultante es:
Editar:
- No está claro por qué define
\newgeometry
cuándo tiene la misma configuración que la geometría de otras páginas de documentos (orientadas en formato vertical). En tales casos no lo usaría, es decir, en su caso simplemente lo abandonaría. - Si su principal preocupación es dibujar los marcos de diseño de página correctamente en todas las páginas, debe seguir con la solución propuesta por @Ulrich Diez (+1).
- Su solución, adoptada según mi respuesta original, con un código ligeramente modificado, se muestra en el siguiente MWE:
\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}