縦2列から横1列へ: テキストとページ番号(横モードの場合)を左余白に強制配置します。

縦2列から横1列へ: テキストとページ番号(横モードの場合)を左余白に強制配置します。

次のコードで、テキストHolaとページ番号を2回転したページの左上余白に強制的に配置する方法を教えてください。

注: 縦向きの 2 列の文書を扱っていますが、テキストをHola左上の境界線に配置した横向きの 1 列に一時的に変更する必要があります。

ありがとう!

\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


2024年1月4日木曜日 22:24 (UTC +0000) の編集:

問題 1:

TeX - LaTeX Stack Exchange Chat Ulrike Fischerが指摘した\newgeometryパッケージの幾何学onecolumn経由で 1 列モードに切り替える場合でも、 -optionを適用する必要があります\onecolumn

問題2:

タイプブロックは、文書のページのテキストを保持するボックスです。(ヘッダー/フッターや余白の注釈ではありません。)

しかし、LaTeX ではパラメータ/長さ\typeblockwidth\typeblockheight導入されません。

\textwidth代わりに、と のそれぞれは\textheight次の 2 つのことを決定します。

いかなる場合でも

  • \textwidthタイプブロックの水平方向の拡張を決定することです。
  • \textheightタイプブロックの垂直方向の拡張を決定することです。

タイプブロック内のテキストが水平方向に揃えられている場合

  • \textwidthタイプブロックに収まるテキスト行の最大長を決定することも目的です。
  • \textheightタイプブロック内でテキストの行を重ねて配置するために使用できるスペースの量を決定することも目的です。

タイプブロック内のテキストが垂直方向に揃えられている場合

  • \textwidthタイプブロック内でテキストの行を重ねて配置するために使用できるスペースの量を決定することも目的です。
  • \textheightタイプブロックに収まるテキスト行の最大長を決定することも目的です。

landscapeパッケージの環境内風景1 は \textheight、ページのタイプブロック内の行が垂直方向に揃えられているときに、テキストの行を互いの上に配置するためにページのタイプブロック内で使用できるスペースの量を決定するために変更されます。

\textheightこの変更は、タイプブロック内のテキストが水平または垂直に揃えられているかどうかに関係なく、タイプブロックの垂直方向の拡張を決定するという事実を無視しています。

つまり、landscapeパッケージの環境が風景1が有効になっている場合、\textheightタイプブロックの垂直方向の拡張は決定されなくなります。

\ShowFramePictureしかし、パッケージのルーチンではショーフレームフレームを描画する場合、\textheightいずれにしてもタイプブロックの垂直方向の拡張を決定すると想定されます (これは正しいと私見です)。

したがって風景1 つの 変更は、を介し\textheightてフレームのセットを描画する前に元に戻す必要があります\ShowFramePicture

そこで、フレームを描画している間に有効なローカル スコープ内でのみリセットするように、環境\ShowFramePicture内で再定義することにしました。landscape\textheight

1パッケージpdflscape内部的にロード風景landscapeパッケージの環境を変更する風景そのため、環境がlandscape有効になっている間に .pdf ファイルに送信される各ページには、このページを 90 度回転させて画面に表示するための pdf ビューアの指示が追加されます。この指示は、.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 (Minimal Working Example) は、問題の 2 番目の画像を再現します。

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

ここに画像の説明を入力してください

ページ番号をどこに配置すればよいか、完全には明らかではありません。これまでのところ、ページ番号はデフォルトの位置 (フィートの中央) のままにしています。

ページ番号を他の場所に表示したい場合は、usefancyhdrパッケージなどで新しいヘッダー/フッタースタイルを定義する必要があります。たとえば、プリアンブルに以下を追加します。

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

ここに画像の説明を入力してください

関連情報