Из книжной ориентации с двумя колонками в альбомную ориентацию с одной колонкой: принудительное размещение текста и номера страницы (в альбомной ориентации) на левом поле.

Из книжной ориентации с двумя колонками в альбомную ориентацию с одной колонкой: принудительное размещение текста и номера страницы (в альбомной ориентации) на левом поле.

Пожалуйста, помогите мне переместить текст Holaи номер страницы 2в левый верхний край повернутой страницы в следующем коде.

Примечание: Я работаю с двухколоночным документом с портретной ориентацией и мне нужно временно изменить его на одноколоночный с альбомной ориентацией, при этом текст Holaдолжен быть расположен на верхней левой границе.

Спасибо!

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

Текущий плохой результат выглядит так:

введите описание изображения здесь

Я хочу получить результат, как на рисунке ниже (слева):

введите описание изображения здесь

решение1


Редактировать в четверг, 4 января 2024 г., 22:24 (UTC +0000):

Проблема 1:

ВTeX - LaTeX Stack Exchange Chat Ульрике Фишер отметилачто с \newgeometryпакетомгеометриявам необходимо применить onecolumnопцию -, хотя переключение в одностолбцовый режим осуществляется через \onecolumn.

Проблема 2:

Текстовый блок — это блок, содержащий текст страницы документа. (Не колонтитулы и не заметки на полях.)

Но в LaTeX никакие параметры/длины не \typeblockwidthвводятся \typeblockheight.

Вместо этого каждый из \textwidthи \textheightдолжен определять две вещи:

В любом случае

  • \textwidthзаключается в определении горизонтальной протяженности типографского блока.
  • \textheightзаключается в определении вертикального расширения типографского блока.

В случае, если текст внутри блока выравнивается по горизонтали

  • \textwidthтакже необходимо определить максимальную длину строк текста, которые помещаются в наборный блок.
  • \textheightтакже необходимо определить количество места, доступного для размещения строк текста друг над другом внутри набора.

В случае, если текст внутри блока выравнивается по вертикали

  • \textwidthтакже необходимо определить количество места, доступного для размещения строк текста друг над другом внутри набора.
  • \textheightтакже необходимо определить максимальную длину строк текста, которые помещаются в наборный блок.

В пределах среды landscapeупаковкиlscape1 \textheight изменяется для определения объема пространства, доступного для размещения строк текста внутри блоков страниц друг над другом, при этом эти строки внутри блоков страниц выравниваются по вертикали.

Это изменение игнорирует тот факт, что \textheightв любом случае — независимо от того, выравнивается ли текст внутри шрифтового блока по горизонтали или вертикали — необходимо определить вертикальное расширение шрифтового блока.

Т.е., в то время как среда landscapeпакетаlscape1 действует, \textheightбольше не определяет вертикальное расширение типоблока.

Но с рутиной \ShowFramePictureпакетавитринадля рисования рамок предполагается (имхо, правильно), что \textheightв любом случае определяется вертикальная протяженность наборного блока.

Таким образомlscape's 1 изменение должно быть отменено, прежде чем будет выполнено \textheightрисование набора кадров через .\ShowFramePicture

Поэтому я решил переопределить \ShowFramePicture-environment, landscapeчтобы сбросить \textheight(только) локальную область действия, которая действует при отрисовке кадров.

1 Пакетpdflscapeвнутренне загружаетlscapeи изменяет среду landscapeпакетаlscapeтак что к каждой странице, отправленной в .pdf-файл, пока landscapeдействует среда, добавляется директива для pdf-просмотрщика, чтобы отобразить на экране эту страницу, повернутую на угол 90 градусов. Эта директива влияет только на то, как страница отображается на экране компьютера/на дисплее, используемом для просмотра .pdf-файла. Эта директива фактически не влияет на работу набора TeX. Она влияет на «работу отображения» программы, используемой для просмотра pdf-файла. Хотя со страницами, набранными и отправленными, пока landscapeдействует среда, строки текста в блоках набора выравниваются по вертикали, вам не нужно наклонять голову влево или вправо для их чтения на экране/дисплее, поскольку эти страницы отображаются повернутыми на 90 градусов, так что вы можете читать их, глядя на экран/дисплей вашего компьютера слева направо.


\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}
введите описание изображения здесь

решение2

Добро пожаловать в TeX.SE!

Следующий MWE (минимальный рабочий пример) воспроизводит ваше второе изображение, о котором идет речь:

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

введите описание изображения здесь

Не совсем понятно, где вы хотите разместить номера страниц. Пока что я оставил их так, как они расположены по умолчанию (по центру в стопе).

В случаях, когда вы хотите иметь номер страницы в другом месте, вам нужно определить новые стили заголовка/подвала, например, с помощью fancyhdrпакета use. Например, чтобы преамбула добавила

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

и перед \begin{landscape}вставкой в ​​тексте документа

\pagestyle{LandScape}

Результирующий стиль страницы:

введите описание изображения здесь

Редактировать:

  • Непонятно, почему вы определяете, \newgeometryкогда у него те же настройки, что и у других страниц документа (портретной ориентации). В таких случаях я бы его не использовал, т.е. в вашем случае я бы просто отключил его.
  • Если ваша главная задача — правильно отрисовать рамки макета страницы на всех страницах, вам следует придерживаться решения, предложенного @Ulrich Diez (+1).
  • Его решение, адаптированное к моему первоначальному ответу, с немного измененным кодом показано в следующем 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}

введите описание изображения здесь

Связанный контент