Do retrato de duas colunas para paisagem de uma coluna: Force o texto e o número da página (no modo paisagem) para a margem esquerda

Do retrato de duas colunas para paisagem de uma coluna: Force o texto e o número da página (no modo paisagem) para a margem esquerda

Por favor, ajude-me a forçar o texto Holae o número da página 2para a margem superior esquerda da página girada no próximo código.

Observação: estou trabalhando com um documento retrato de duas colunas e preciso de uma alteração temporária para um documento paisagem de uma coluna, com o Holatexto localizado na borda superior esquerda.

Obrigado!

\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}

O mau resultado atual é assim:

insira a descrição da imagem aqui

Quero o resultado como o abaixo (à esquerda):

insira a descrição da imagem aqui

Responder1


Editar na quinta-feira, 4 de janeiro de 2024, 22h24 (UTC +0000):

Problema 1:

EmTeX - LaTeX Stack Exchange Chat Ulrike Fischer apontouisso com \newgeometryo pacotegeometriavocê precisa aplicar a onecolumnopção - ao mudar para o modo de uma coluna via \onecolumn.

Edição 2:

O typeblock é a caixa que contém o texto de uma página do documento. (Nem os cabeçalhos/rodapés, nem as notas de margem.)

Mas no LaTeX nenhum parâmetro/comprimento \typeblockwidth/ \typeblockheighté introduzido.

Em vez disso, cada um de \textwidthe \textheightdeve determinar duas coisas:

Em todo o caso

  • \textwidthé determinar a extensão horizontal do typeblock.
  • \textheighté determinar a extensão vertical do typeblock.

Caso o texto dentro do bloco de texto seja justificado horizontalmente

  • \textwidthé também determinar o comprimento máximo das linhas de texto que cabem no bloco de texto.
  • \textheighté também determinar a quantidade de espaço disponível para colocar linhas de texto umas sobre as outras dentro do bloco de texto.

Caso o texto dentro do bloco de tipo seja justificado verticalmente

  • \textwidthé também determinar a quantidade de espaço disponível para colocar linhas de texto umas sobre as outras dentro do bloco de texto.
  • \textheighté também determinar o comprimento máximo das linhas de texto que cabem no bloco de texto.

Dentro do ambiente landscapedo pacotelscape1 \textheight é alterado para determinar a quantidade de espaço disponível nos blocos de páginas das páginas, colocando linhas de texto umas sobre as outras, enquanto essas linhas nos blocos de páginas são justificadas verticalmente.

Esta alteração desconsidera o fato de que \textheightem qualquer caso - não importa se o texto dentro do bloco tipográfico é justificado horizontal ou verticalmente - é necessário determinar a extensão vertical do bloco tipográfico.

Ou seja, enquanto o ambiente landscapedo pacotelscape1 está em vigor, \textheightnão determina mais a extensão vertical do typeblock.

Mas com a rotina \ShowFramePicturedo pacotequadro de exibiçãopara desenhar os quadros assume-se (corretamente, imho) que \textheightem qualquer caso determina a extensão vertical do bloco de tipo.

Por issolscape A modificação 1 de \textheightprecisa ser desfeita antes de \ShowFramePictureocorrer o desenho de um conjunto de quadros.

Então decidi \ShowFramePictureredefini-lo dentro do landscape-environment para redefinir \textheight(apenas) dentro do escopo local que está em vigor ao desenhar os quadros.

1 O pacotepdflscapecarrega internamentelscapee modifica o ambiente landscapedo pacotelscapepara que a cada página enviada para o arquivo .pdf enquanto o ambiente landscapeestiver em vigor, uma diretiva para o visualizador de pdf seja adicionada para exibir na tela esta página girada em um ângulo de 90 graus. Esta diretiva afeta apenas a forma como a página é mostrada na tela do computador/no display usado para visualizar o arquivo .pdf. Na verdade, esta diretiva não afeta o trabalho de composição tipográfica do TeX. Afeta o "trabalho de exibição" do programa usado para visualizar o arquivo PDF. Embora com as páginas compostas e enviadas enquanto o ambiente landscapeestava em vigor, as linhas de texto dos blocos tipográficos são justificadas verticalmente, você não precisa inclinar a cabeça para a esquerda ou para a direita para lê-las na tela/display como essas páginas são exibidos girados em 90 graus para que você possa lê-los olhando para a tela/tela do seu computador da esquerda para a direita.


\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}
insira a descrição da imagem aqui

Responder2

Bem-vindo ao TeX.SE!

O seguinte MWE (Exemplo Mínimo de Trabalho) reproduz sua segunda imagem em questão:

\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}

insira a descrição da imagem aqui

Não está totalmente claro onde você gostaria de colocar os números das páginas. Até agora deixei-os como está posicionado por padrão (centralizado no pé).

Nos casos em que você deseja ter o número da página em algum outro lugar, você precisa definir novos estilos de cabeçalho/rodapé, por exemplo com use fancyhdrpackage. Por exemplo, para preâmbulo adicionar

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

e antes \begin{landscape}na inserção do corpo do documento

\pagestyle{LandScape}

O estilo da página resultante é:

insira a descrição da imagem aqui

Editar:

  • Não está claro por que você define \newgeometryquando ele tem as mesmas configurações da geometria de outras páginas do documento (orientado para retrato). Nesses casos eu não usaria, ou seja, no seu caso eu simplesmente abandonaria.
  • Se desenhar quadros de layout de página corretamente em todas as páginas é sua principal preocupação, você deve seguir a solução proposta por @Ulrich Diez (+1).
  • Sua solução, adotada em minha resposta original, com um código um pouco modificado é mostrada no seguinte 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}

insira a descrição da imagem aqui

informação relacionada