tufte-book documentclass 中偶数页上的全宽图形和表格布局

tufte-book documentclass 中偶数页上的全宽图形和表格布局

由于我的文档来自 Tufte-book 文档类,因此出现布局问题,我考虑了以下链接中提供的新代码,其中展示了旧代码和新代码:Tufte documentclass 中 \full{\printindex} 的布局问题

还有两个问题,其中一个已经解决(参见:tufte 文档类中的部分标题页布局)。即使我使用 Tufte-book 文档类的特定环境 {table *} 或 {figure *},问题也与偶数页上“全宽”模式下表格和图形的定位有关。它们相对于正文的左边距定位,如下所示:

初始问题

为了解决这个问题,我使用了以下 MWE 中所示的 largetable 环境(通过在序言中插入新代码,如下面的第一个答案所述):

\begin{largetable}
  \selectlanguage{french}
  \footnotesize%
  \begin{center}
    \begin{tabular}{llll}
      \toprule
      \ Fugue BWV 532a & & Fugue BWV 532 & \\
      
      \midrule
      mes. 1-27  & A  & mes. 1-27 & Identiques  \\
      mes. 28-29 &    & mes. 28-29 & Contenus différents\\
      mes. 30-52 &    & mes. 30-52 & Identiques  \\
      mes. 52-58 & B  & mes. 52-58 & Entrée de pédale répartie entre les pieds et les mains\\
       & & & dans la version BWV 532a \\
      mes. 59-61 &    & mes. 59-64 & \'{E}pisode différent\\
      mes. 62-71 &    & mes. 65-76 & Identiques, mais entrée plus courte dans la version BWV 532a\\
      mes. 71-73 &    & - & \'{E}pisode dans la version BWV 532a\\
      - &  & mes. 76-96 & Dans la version BWV 532, plusieurs épisodes et (courtes) entrées\\
       & & & en \textit{do} $\sharp$ mineur/\textit{mi} majeur\\
       mes. 74-98 & C & mes. 96-137 & Mêmes entrées mais épisodes plus longs dans la version BWV 532\\
      \bottomrule
    \end{tabular}
  \end{center}
  \caption{Différences entre les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980)\index{Williams, Peter}.}
  \label{tab:fugue532a}
%  \forceversofloat% forces caption to be set to the left of the float
\end{largetable}

对于此表,我获得以下结果。这几乎是预期的结果,因为我想将标题保留在外边距中:

表 2 错误

但是,如果我将相同的 largetable 环境应用到另一张表,如下所示,我会得到完全不同的结果,因为表会移动到下一个偶数页,并且外边距会完全移动(参见下面的结果图)。错误在哪里?

\begin{largetable}
  \selectlanguage{french}
  \footnotesize%
  \begin{center}
\begin{tabular}{llll}
  \toprule
  \ & Manuels & Pédale & Compatibilité avec \\ & & & l'\oe uvre BWV 532\\
  
  \midrule
  Arnstadt  &   &    \\
  \quad Neue Kirche & CD-c$^3$   & CD-c$^1$d$^1$ & Non\\
  Mühlausen &   &   \\
  \quad Marienkirche & CD-c$^3$   & CD-d$^1$ & Oui \\
  \quad Kirche Davi Blasii & CD-d$^3$   & CD-d$^1$ & Oui  \\
  \quad Brückenhofkirche & CD-c$^3$   & CD-c$^1$ & Non \\
          &  &  \\
  Weimar  &  &  &  \\
  \quad Schlosskirche & CD-c$^3$   & CD-e$^1$ & Oui \\
  \quad Jacobskirche & ?   & ? & ? \\
  \quad Stadtkirche & ?   & ? & ? \\
          &  &  \\
  Halle        &  &  &  \\
  \quad Marktkirche & CD-c$^3$   & CD-c$^1$ & Non \\
                &  &  \\
   C\oe then  &  &  &  \\
  \quad Jacobskirche & CD-c$^3$   & CD-c$^1$ ou CD-d$^1$ & ? \\
  \quad Agnuskirche & C-?   & C-d$^1$e$^1$f$^1$ & ? \\
  \quad Schlosskapelle & C-e$^3$   & C-e$^1$ & Oui \\
               &  &  \\
   Hambourg &  &  &  \\
  \quad Hauptkirche St Katharinen & CDEFGA-c$^3$   & CDE-d$^1$ & Oui \\
  \quad Hauptkirche St Jacobi & CDE-C$^3$ (Rückpositif)   & C-d$^1$e$^1$f$^1$ & Oui \\
   & CDEFGA-c$^3$ (Werk)   &  &  \\
    & CDEFGA-c$^3$ (Oberpositiv) &  &  \\
    & CDEFGA-c$^3$ (Brustpositiv) &  &  \\
  \bottomrule
\end{tabular}
  \end{center}
  \caption{Tessiture des Manuels et Pédale des orgues joués par J.S. Bach entre 1703 et 1723, comparés à l'ambitus de l'\oe uvre (Manuels : D-b$^2$ ; Pédale : D-d$^1$).}
   \label{tab:orgues}
  \forceversofloat% forces caption to be set to the left of the float
\end{largetable}

表格布局问题

感谢您提出的解决问题的建议。

答案1

  1. 环境fullwidth开始新的一页。对于部分或章节来说,这没问题,但对于短表来说则不行。

  2. tufte-book将标题置于外边缘。

这里对您的代码进行了两项补充:一个largetable用于大于文本宽度的表格的新环境,以及一个\captionatbottom用于largetable排版表格下方标题的新命令。

已在奇数页和偶数页上进行了测试。

更新(长字幕)

largetable与正常宽度一起使用。

b

% !TeX TS-program = xelatex     

\documentclass[a4paper,nobib,twoside,symmetric,justified,marginals=raggedouter, notoc]{tufte-book}

\makeatletter
\newlength{\oddshift}
\newcommand{\captionatbottom}{% from https://tex.stackexchange.com/a/229419/161015
    \long\def\@caption##1[##2]##3{%
    \par
    \addcontentsline{\csname ext@##1\endcsname}{##1}%
    {\protect\numberline{\csname the##1\endcsname}{\ignorespaces ##2}}%
    \begingroup
    \@parboxrestore%
    \if@minipage\@setminipage\fi%
    \normalsize
    \@makecaption{\csname fnum@##1\endcsname}{\ignorespaces ##3}\par
    \endgroup}
\long\def\@makecaption##1##2{%
\vskip\abovecaptionskip%
\@tufte@checkoddpage%
\ifthenelse{\boolean{@tufte@odd@page}}%
{\rlap{\parbox{\textwidth+\marginparwidth+\marginparsep}{\hskip0pt\@tufte@caption@font##1: ##2}}}%
{\setlength{\oddshift}{-\marginparwidth-\marginparsep}\rlap{\hskip\oddshift\parbox{\textwidth+\marginparwidth+\marginparsep}{\@tufte@caption@font##1: ##2}}}%
\vskip\belowcaptionskip%
}   
    \let\caption\@tufte@orig@caption%
    \let\label\@tufte@orig@label}
    
    \newenvironment{largetable}{%
        \@tufte@checkoddpage%
        \ifthenelse{\boolean{@tufte@odd@page}}%
        {\begin{table}[!htbp]\begin{adjustwidth}{}{}\captionatbottom}%
        {\begin{table}[!htbp]\begin{adjustwidth}{-\marginparwidth-\marginparsep}{}\captionatbottom}}        
        {\end{adjustwidth}\end{table}}          
\makeatother

\usepackage{booktabs}

\geometry{% normal pages 
    paperheight  =297mm, paperwidth  = 210mm,  %layout=a4paper
    layoutheight =240mm,layoutwidth  =170mm,
    textheight=38\baselineskip,
    headheight=\baselineskip,
    left=15mm, % right will be the same because of symmetric
    bindingoffset= 5mm, % add space for binding
    textwidth=90mm,
    top=14mm,
    marginparsep=6mm,   marginparwidth=40mm,
    includehead,
    layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
    showframe=true,
    showcrop=true }

\renewenvironment{fullwidth}
{\newgeometry{% full width pages
        layoutheight =240mm,layoutwidth  =170mm,
        textheight=38\baselineskip,
        headheight=\baselineskip,
        left=15mm, % right will be the same because of symmetric
        bindingoffset= 5mm, % add space for binding 
        textwidth=136mm, % 90+ 6+ 40
        top=14mm,
        marginparsep=0mm,   marginparwidth=0mm, %changed to full width <<<<<<<<<<
        includehead,
        layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
        showframe=true,
        showcrop=true }
    \fancyhfoffset[LE]{0pt}
    \fancyhfoffset[RO]{0pt}
}   
{\restoregeometry}%

\usepackage{kantlipsum} % dummy text added
\RequirePackage{showframe} % margin lines <<<<<<<<<<<<<<<<<<<<<<<<<
\renewcommand\ShowFrameLinethickness{0.1pt}
\renewcommand\ShowFrameColor{\color{red}}

\newcommand{\textls}[2][5]{%
    \begingroup\addfontfeatures{LetterSpace=#1}#2\endgroup
}

\renewcommand{\allcapsspacing}[1]{\textls[15]{#1}}
\renewcommand{\smallcapsspacing}[1]{\textls[10]{#1}}
\renewcommand{\allcaps}[1]{\textls[15]{\MakeTextUppercase{#1}}}
\renewcommand{\smallcaps}[1] {\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}

\usepackage{fontspec}
\usepackage{libertine} %<<<<<<<<<<<<<<<<
\setsansfont{TeX Gyre Heros}[Scale=MatchUppercase]  

\usepackage{xspace}
\newcommand{\monthyear}{%
    \ifcase\month\or janvier\or f\'{e}vrier\or mars\or avril\or mai\or juin\or
    juillet\or ao\^{u}t\or septembre\or octobre\or novembre\or
    d\'{e}cembre\fi\space\number\year
}

\newcommand{\blankpage}{\newpage\hbox{}\thispagestyle{empty}\newpage}

\usepackage[english,french]{babel}
\frenchbsetup{StandardLayout=true}
\addto\captionsfrench{\def\tablename{Tableau}}
\addto\captionsfrench{\def\figurename{Figure}}

\frenchbsetup{IndentFirst=false}

\usepackage{csquotes}

\begin{document}
    \frenchspacing

    \mainmatter
    
    \part{First Part of the book}
    
    \chapter{Introduction}  
    
    \begin{largetable}
    \centering
    \selectlanguage{french}
    \footnotesize%  
        \begin{tabular}{llll}
            \toprule
            Fugue BWV 532a & & Fugue BWV 532 & \\           
            \midrule
            mes. 1-27  & A  & mes. 1-27 & Identiques  \\
            mes. 28-29 &    & mes. 28-29 & Contenus différents\\
            mes. 30-52 &    & mes. 30-52 & Identiques  \\
            mes. 52-58 & B  & mes. 52-58 & Entrée de pédale répartie entre les pieds et les mains\\
            & & & dans la version BWV 532a \\
            mes. 59-61 &    & mes. 59-64 & \'{E}pisode différent\\
            mes. 62-71 &    & mes. 65-76 & Identiques, mais entrée plus courte dans la version BWV 532a\\
            mes. 71-73 &    & - & \'{E}pisode dans la version BWV 532a\\
            - &  & mes. 76-96 & Dans la version BWV 532, plusieurs épisodes et (courtes) entrées\\
            & & & en \textit{do} $\sharp$ mineur/\textit{mi} majeur\\
            mes. 74-98 & C & mes. 96-137 & Mêmes entrées mais épisodes plus longs dans la version BWV 532\\
            \bottomrule
        \end{tabular}           
    \caption{Différences entre les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980). Différences entre  les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980).}
    \label{tab:fugue532am}
    \end{largetable}

11. \kant[11-12]

    \begin{largetable}
    \centering
    \selectlanguage{french}
    \footnotesize%  
    \begin{tabular}{llll}
        \toprule
        Fugue BWV 532a & & Fugue BWV 532 & \\           
        \midrule
        mes. 1-27  & A  & mes. 1-27 & Identiques  \\
        mes. 28-29 &    & mes. 28-29 & Contenus différents\\
        mes. 30-52 &    & mes. 30-52 & Identiques  \\
        mes. 52-58 & B  & mes. 52-58 & Entrée de pédale répartie entre les pieds et les mains\\
        & & & dans la version BWV 532a \\
        mes. 59-61 &    & mes. 59-64 & \'{E}pisode différent\\
        mes. 62-71 &    & mes. 65-76 & Identiques, mais entrée plus courte dans la version BWV 532a\\
        mes. 71-73 &    & - & \'{E}pisode dans la version BWV 532a\\
        - &  & mes. 76-96 & Dans la version BWV 532, plusieurs épisodes et (courtes) entrées\\
        & & & en \textit{do} $\sharp$ mineur/\textit{mi} majeur\\
        mes. 74-98 & C & mes. 96-137 & Mêmes entrées mais épisodes plus longs dans la version BWV 532\\
        \bottomrule
    \end{tabular}           
    \caption{Différences entre les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980). Différences entre les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980).}
    \label{tab:fugue532an}
    \end{largetable}

\end{document}

largetable内部测试fullwidth

C

% !TeX TS-program = xelatex     

\documentclass[a4paper,nobib,twoside,symmetric,justified,marginals=raggedouter, notoc]{tufte-book}

\makeatletter
\newlength{\oddshift}
\newcommand{\captionatbottom}{% from https://tex.stackexchange.com/a/229419/161015
    \long\def\@caption##1[##2]##3{%
    \par
    \addcontentsline{\csname ext@##1\endcsname}{##1}%
    {\protect\numberline{\csname the##1\endcsname}{\ignorespaces ##2}}%
    \begingroup
    \@parboxrestore%
    \if@minipage\@setminipage\fi%
    \normalsize
    \@makecaption{\csname fnum@##1\endcsname}{\ignorespaces ##3}\par
    \endgroup}
\long\def\@makecaption##1##2{%
\vskip\abovecaptionskip%
\@tufte@checkoddpage%
\ifthenelse{\boolean{@tufte@odd@page}}%
{\rlap{\parbox{\textwidth+\marginparwidth+\marginparsep}{\hskip0pt\@tufte@caption@font##1: ##2}}}%
{\setlength{\oddshift}{-\marginparwidth-\marginparsep}\rlap{\hskip\oddshift\parbox{\textwidth+\marginparwidth+\marginparsep}{\@tufte@caption@font##1: ##2}}}%
\vskip\belowcaptionskip%
}   
    \let\caption\@tufte@orig@caption%
    \let\label\@tufte@orig@label}
    
    \newenvironment{largetable}{%
        \@tufte@checkoddpage%
        \ifthenelse{\boolean{@tufte@odd@page}}%
        {\begin{table}[!htbp]\begin{adjustwidth}{}{}\captionatbottom}%
        {\begin{table}[!htbp]\begin{adjustwidth}{-\marginparwidth-\marginparsep}{}\captionatbottom}}        
        {\end{adjustwidth}\end{table}}          
\makeatother

\usepackage{booktabs}

\geometry{% normal pages 
    paperheight  =297mm, paperwidth  = 210mm,  %layout=a4paper
    layoutheight =240mm,layoutwidth  =170mm,
    textheight=38\baselineskip,
    headheight=\baselineskip,
    left=15mm, % right will be the same because of symmetric
    bindingoffset= 5mm, % add space for binding
    textwidth=90mm,
    top=14mm,
    marginparsep=6mm,   marginparwidth=40mm,
    includehead,
    layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
    showframe=true,
    showcrop=true }

\renewenvironment{fullwidth}
{\newgeometry{% full width pages
        layoutheight =240mm,layoutwidth  =170mm,
        textheight=38\baselineskip,
        headheight=\baselineskip,
        left=15mm, % right will be the same because of symmetric
        bindingoffset= 5mm, % add space for binding 
        textwidth=136mm, % 90+ 6+ 40
        top=14mm,
        marginparsep=0mm,   marginparwidth=0mm, %changed to full width <<<<<<<<<<
        includehead,
        layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
        showframe=true,
        showcrop=true }
    \fancyhfoffset[LE]{0pt}
    \fancyhfoffset[RO]{0pt}
}   
{\restoregeometry}%

\usepackage{kantlipsum} % dummy text added
\RequirePackage{showframe} % margin lines <<<<<<<<<<<<<<<<<<<<<<<<<
\renewcommand\ShowFrameLinethickness{0.1pt}
\renewcommand\ShowFrameColor{\color{red}}

\newcommand{\textls}[2][5]{%
    \begingroup\addfontfeatures{LetterSpace=#1}#2\endgroup
}

\renewcommand{\allcapsspacing}[1]{\textls[15]{#1}}
\renewcommand{\smallcapsspacing}[1]{\textls[10]{#1}}
\renewcommand{\allcaps}[1]{\textls[15]{\MakeTextUppercase{#1}}}
\renewcommand{\smallcaps}[1] {\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}

\usepackage{fontspec}
\usepackage{libertine} %<<<<<<<<<<<<<<<<
\setsansfont{TeX Gyre Heros}[Scale=MatchUppercase]  

\usepackage{xspace}
\newcommand{\monthyear}{%
    \ifcase\month\or janvier\or f\'{e}vrier\or mars\or avril\or mai\or juin\or
    juillet\or ao\^{u}t\or septembre\or octobre\or novembre\or
    d\'{e}cembre\fi\space\number\year
}

\newcommand{\blankpage}{\newpage\hbox{}\thispagestyle{empty}\newpage}

\usepackage[english,french]{babel}
\frenchbsetup{StandardLayout=true}
\addto\captionsfrench{\def\tablename{Tableau}}
\addto\captionsfrench{\def\figurename{Figure}}

\frenchbsetup{IndentFirst=false}

\usepackage{csquotes}

\begin{document}
    \frenchspacing

    \mainmatter
    
    \part{First Part of the book}
    
    \begin{fullwidth}
            
    \chapter{Introduction}  
    
1.  \kant[1]
    
    \begin{largetable}
    \centering
    \selectlanguage{french}
    \footnotesize%  
        \begin{tabular}{llll}
            \toprule
            Fugue BWV 532a & & Fugue BWV 532 & \\           
            \midrule
            mes. 1-27  & A  & mes. 1-27 & Identiques  \\
            mes. 28-29 &    & mes. 28-29 & Contenus différents\\
            mes. 30-52 &    & mes. 30-52 & Identiques  \\
            mes. 52-58 & B  & mes. 52-58 & Entrée de pédale répartie entre les pieds et les mains\\
            & & & dans la version BWV 532a \\
            mes. 59-61 &    & mes. 59-64 & \'{E}pisode différent\\
            mes. 62-71 &    & mes. 65-76 & Identiques, mais entrée plus courte dans la version BWV 532a\\
            mes. 71-73 &    & - & \'{E}pisode dans la version BWV 532a\\
            - &  & mes. 76-96 & Dans la version BWV 532, plusieurs épisodes et (courtes) entrées\\
            & & & en \textit{do} $\sharp$ mineur/\textit{mi} majeur\\
            mes. 74-98 & C & mes. 96-137 & Mêmes entrées mais épisodes plus longs dans la version BWV 532\\
            \bottomrule
        \end{tabular}           
    \caption{Différences entre les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980). Différences entre  les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980).}
    \label{tab:fugue532am}
    \end{largetable}

11. \kant[11-12]

    \begin{largetable}
    \centering
    \selectlanguage{french}
    \footnotesize%  
    \begin{tabular}{llll}
        \toprule
        Fugue BWV 532a & & Fugue BWV 532 & \\           
        \midrule
        mes. 1-27  & A  & mes. 1-27 & Identiques  \\
        mes. 28-29 &    & mes. 28-29 & Contenus différents\\
        mes. 30-52 &    & mes. 30-52 & Identiques  \\
        mes. 52-58 & B  & mes. 52-58 & Entrée de pédale répartie entre les pieds et les mains\\
        & & & dans la version BWV 532a \\
        mes. 59-61 &    & mes. 59-64 & \'{E}pisode différent\\
        mes. 62-71 &    & mes. 65-76 & Identiques, mais entrée plus courte dans la version BWV 532a\\
        mes. 71-73 &    & - & \'{E}pisode dans la version BWV 532a\\
        - &  & mes. 76-96 & Dans la version BWV 532, plusieurs épisodes et (courtes) entrées\\
        & & & en \textit{do} $\sharp$ mineur/\textit{mi} majeur\\
        mes. 74-98 & C & mes. 96-137 & Mêmes entrées mais épisodes plus longs dans la version BWV 532\\
        \bottomrule
    \end{tabular}           
    \caption{Différences entre les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980). Différences entre les fugues BWV 532 et BWV 532a relevées par Peter Williams (1980).}
    \label{tab:fugue532an}
    \end{largetable}

\end{fullwidth}

\end{document}

更新二(长字幕)

使用largetable正常宽度和新发布的表格

ag2

% !TeX TS-program = xelatex     

\documentclass[a4paper,nobib,twoside,symmetric,justified,marginals=raggedouter, notoc]{tufte-book}

\makeatletter
\newlength{\oddshift}
\newcommand{\captionatbottom}{% from https://tex.stackexchange.com/a/229419/161015
    \long\def\@caption##1[##2]##3{%
    \par
    \addcontentsline{\csname ext@##1\endcsname}{##1}%
    {\protect\numberline{\csname the##1\endcsname}{\ignorespaces ##2}}%
    \begingroup
    \@parboxrestore%
    \if@minipage\@setminipage\fi%
    \normalsize
    \@makecaption{\csname fnum@##1\endcsname}{\ignorespaces ##3}\par
    \endgroup}
  \long\def\@makecaption##1##2{%
    \vskip\abovecaptionskip%
    \@tufte@checkoddpage%
    \ifthenelse{\boolean{@tufte@odd@page}}%
    {\rlap{\parbox{\textwidth+\marginparwidth+\marginparsep}{\hskip0pt\@tufte@caption@font##1: ##2}}}%
    {\setlength{\oddshift}{-\marginparwidth-\marginparsep}\rlap{\hskip\oddshift\parbox{\textwidth+\marginparwidth+\marginparsep}{\@tufte@caption@font##1: ##2}}}%
    \vskip\belowcaptionskip%
}%
\let\caption\@tufte@orig@caption%
\let\label\@tufte@orig@label}
    
    \newenvironment{largetable}{%
        \@tufte@checkoddpage%
        \ifthenelse{\boolean{@tufte@odd@page}}%
        {\begin{table}[!htbp]\begin{adjustwidth}{}{}\captionatbottom}%
        {\begin{table}[!htbp]\begin{adjustwidth}{-\marginparwidth-\marginparsep}{}\captionatbottom}}        
        {\end{adjustwidth}\end{table}}          
\makeatother

\usepackage{booktabs}

\geometry{% normal pages 
    paperheight  =297mm, paperwidth  = 210mm,  %layout=a4paper
    layoutheight =240mm,layoutwidth  =170mm,
    textheight=38\baselineskip,
    headheight=\baselineskip,
    left=15mm, % right will be the same because of symmetric
    bindingoffset= 5mm, % add space for binding
    textwidth=90mm,
    top=14mm,
    marginparsep=6mm,   marginparwidth=40mm,
    includehead,
    layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
    showframe=true,
    showcrop=true }

\renewenvironment{fullwidth}
{\newgeometry{% full width pages
        layoutheight =240mm,layoutwidth  =170mm,
        textheight=38\baselineskip,
        headheight=\baselineskip,
        left=15mm, % right will be the same because of symmetric
        bindingoffset= 5mm, % add space for binding 
        textwidth=136mm, % 90+ 6+ 40
        top=14mm,
        marginparsep=0mm,   marginparwidth=0mm, %changed to full width <<<<<<<<<<
        includehead,
        layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
        showframe=true,
        showcrop=true }
    \fancyhfoffset[LE]{0pt}
    \fancyhfoffset[RO]{0pt}
}   
{\restoregeometry}%

\usepackage{kantlipsum} % dummy text added
\RequirePackage{showframe} % margin lines <<<<<<<<<<<<<<<<<<<<<<<<<
\renewcommand\ShowFrameLinethickness{0.1pt}
\renewcommand\ShowFrameColor{\color{red}}

\newcommand{\textls}[2][5]{%
    \begingroup\addfontfeatures{LetterSpace=#1}#2\endgroup
}

\renewcommand{\allcapsspacing}[1]{\textls[15]{#1}}
\renewcommand{\smallcapsspacing}[1]{\textls[10]{#1}}
\renewcommand{\allcaps}[1]{\textls[15]{\MakeTextUppercase{#1}}}
\renewcommand{\smallcaps}[1] {\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}

\usepackage{fontspec}
\usepackage{libertine} %<<<<<<<<<<<<<<<<
\setsansfont{TeX Gyre Heros}[Scale=MatchUppercase]  

\usepackage{xspace}
\newcommand{\monthyear}{%
    \ifcase\month\or janvier\or f\'{e}vrier\or mars\or avril\or mai\or juin\or
    juillet\or ao\^{u}t\or septembre\or octobre\or novembre\or
    d\'{e}cembre\fi\space\number\year
}

\newcommand{\blankpage}{\newpage\hbox{}\thispagestyle{empty}\newpage}

\usepackage[english,french]{babel}
\frenchbsetup{StandardLayout=true}
\addto\captionsfrench{\def\tablename{Tableau}}
\addto\captionsfrench{\def\figurename{Figure}}

\frenchbsetup{IndentFirst=false}

\usepackage{csquotes}

\begin{document}
    \frenchspacing

    \mainmatter
    
    \kant[9]
    
\begin{largetable}
    \selectlanguage{french}
    \footnotesize%
    \begin{center}
        \begin{tabular}{llll}
            \toprule
            \ & Manuels & Pédale & Compatibilité avec \\ & & & l'\oe uvre BWV 532\\
            
            \midrule
            Arnstadt  &   &    \\
            \quad Neue Kirche & CD-c$^3$   & CD-c$^1$d$^1$ & Non\\
            Mühlausen &   &   \\
            \quad Marienkirche & CD-c$^3$   & CD-d$^1$ & Oui \\
            \quad Kirche Davi Blasii & CD-d$^3$   & CD-d$^1$ & Oui  \\
            \quad Brückenhofkirche & CD-c$^3$   & CD-c$^1$ & Non \\
            &  &  \\
            Weimar  &  &  &  \\
            \quad Schlosskirche & CD-c$^3$   & CD-e$^1$ & Oui \\
            \quad Jacobskirche & ?   & ? & ? \\
            \quad Stadtkirche & ?   & ? & ? \\
            &  &  \\
            Halle        &  &  &  \\
            \quad Marktkirche & CD-c$^3$   & CD-c$^1$ & Non \\
            &  &  \\
            C\oe then  &  &  &  \\
            \quad Jacobskirche & CD-c$^3$   & CD-c$^1$ ou CD-d$^1$ & ? \\
            \quad Agnuskirche & C-?   & C-d$^1$e$^1$f$^1$ & ? \\
            \quad Schlosskapelle & C-e$^3$   & C-e$^1$ & Oui \\
            &  &  \\
            Hambourg &  &  &  \\
            \quad Hauptkirche St Katharinen & CDEFGA-c$^3$   & CDE-d$^1$ & Oui \\
            \quad Hauptkirche St Jacobi & CDE-C$^3$ (Rückpositif)   & C-d$^1$e$^1$f$^1$ & Oui \\
            & CDEFGA-c$^3$ (Werk)   &  &  \\
            & CDEFGA-c$^3$ (Oberpositiv) &  &  \\
            & CDEFGA-c$^3$ (Brustpositiv) &  &  \\
            \bottomrule
        \end{tabular}
    \end{center}
    \caption{Tessiture des Manuels et Pédale des orgues joués par J.S. Bach entre 1703 et 1723, comparés à l'ambitus de l'\oe uvre (Manuels : D-b$^2$ ; Pédale : D-d$^1$).}
    \label{tab:orgues}
%%  \forceversofloat% forces caption to be set to the left of the float
\end{largetable}
    
11. \kant[11]

    \begin{largetable}
        \selectlanguage{french}
        \footnotesize%
        \begin{center}
            \begin{tabular}{llll}
                \toprule
                \ & Manuels & Pédale & Compatibilité avec \\ & & & l'\oe uvre BWV 532\\
                
                \midrule
                Arnstadt  &   &    \\
                \quad Neue Kirche & CD-c$^3$   & CD-c$^1$d$^1$ & Non\\
                Mühlausen &   &   \\
                \quad Marienkirche & CD-c$^3$   & CD-d$^1$ & Oui \\
                \quad Kirche Davi Blasii & CD-d$^3$   & CD-d$^1$ & Oui  \\
                \quad Brückenhofkirche & CD-c$^3$   & CD-c$^1$ & Non \\
                &  &  \\
                Weimar  &  &  &  \\
                \quad Schlosskirche & CD-c$^3$   & CD-e$^1$ & Oui \\
                \quad Jacobskirche & ?   & ? & ? \\
                \quad Stadtkirche & ?   & ? & ? \\
                &  &  \\
                Halle        &  &  &  \\
                \quad Marktkirche & CD-c$^3$   & CD-c$^1$ & Non \\
                &  &  \\
                C\oe then  &  &  &  \\
                \quad Jacobskirche & CD-c$^3$   & CD-c$^1$ ou CD-d$^1$ & ? \\
                \quad Agnuskirche & C-?   & C-d$^1$e$^1$f$^1$ & ? \\
                \quad Schlosskapelle & C-e$^3$   & C-e$^1$ & Oui \\
                &  &  \\
                Hambourg &  &  &  \\
                \quad Hauptkirche St Katharinen & CDEFGA-c$^3$   & CDE-d$^1$ & Oui \\
                \quad Hauptkirche St Jacobi & CDE-C$^3$ (Rückpositif)   & C-d$^1$e$^1$f$^1$ & Oui \\
                & CDEFGA-c$^3$ (Werk)   &  &  \\
                & CDEFGA-c$^3$ (Oberpositiv) &  &  \\
                & CDEFGA-c$^3$ (Brustpositiv) &  &  \\
                \bottomrule
            \end{tabular}
        \end{center}
        \caption{Tessiture des Manuels et Pédale des orgues joués par J.S. Bach entre 1703 et 1723, comparés à l'ambitus de l'\oe uvre (Manuels : D-b$^2$ ; Pédale : D-d$^1$).}
        \label{tab:orgues}
        %%  \forceversofloat% forces caption to be set to the left of the float
    \end{largetable}
\end{document}

更新三(页边有长标题)

使用largetable正常宽度和新发布的表格

Ag3

% !TeX TS-program = xelatex     

\documentclass[a4paper,nobib,twoside,symmetric,justified,marginals=raggedouter, notoc]{tufte-book}

\makeatletter
\newlength{\oddshift}
\newcommand{\captionatbottommargin}{% from https://tex.stackexchange.com/a/229419/161015
    \long\def\@caption##1[##2]##3{%
    \par
    \addcontentsline{\csname ext@##1\endcsname}{##1}%
    {\protect\numberline{\csname the##1\endcsname}{\ignorespaces ##2}}%
    \begingroup
    \@parboxrestore%
    \if@minipage\@setminipage\fi%
    \normalsize
    \@makecaption{\csname fnum@##1\endcsname}{\ignorespaces ##3}\par
    \endgroup}
  \long\def\@makecaption##1##2{%
    \vskip\abovecaptionskip%
    \@tufte@checkoddpage%
    \ifthenelse{\boolean{@tufte@odd@page}}%
    {\setlength{\oddshift}{\textwidth}\rlap{\hskip\oddshift\parbox{\marginparwidth+\marginparsep}{\hskip0pt\@tufte@caption@font##1: ##2}}}%
    {\setlength{\oddshift}{-\marginparwidth-\marginparsep}\rlap{\hskip\oddshift\parbox{\marginparwidth+\marginparsep}{\@tufte@caption@font##1: ##2}}}%
    \vskip\belowcaptionskip%
}%
\let\caption\@tufte@orig@caption%
\let\label\@tufte@orig@label}
    
    \newenvironment{largetable}{%
        \@tufte@checkoddpage%
        \ifthenelse{\boolean{@tufte@odd@page}}%
        {\begin{table}[!htbp]\vspace*{-3ex}\begin{adjustwidth}{}{}\captionatbottommargin}%
        {\begin{table}[!htbp]\vspace*{-3ex}\begin{adjustwidth}{-\marginparwidth-\marginparsep}{\marginparsep}\captionatbottommargin}}       
        {\end{adjustwidth}\end{table}}      

\makeatother

\usepackage{booktabs}

\geometry{% normal pages 
    paperheight  =297mm, paperwidth  = 210mm,  %layout=a4paper
    layoutheight =240mm,layoutwidth  =170mm,
    textheight=38\baselineskip,
    headheight=\baselineskip,
    left=15mm, % right will be the same because of symmetric
    bindingoffset= 5mm, % add space for binding
    textwidth=90mm,
    top=14mm,
    marginparsep=6mm,   marginparwidth=40mm,
    includehead,
    layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
    showframe=true,
    showcrop=true }

\renewenvironment{fullwidth}
{\newgeometry{% full width pages
        layoutheight =240mm,layoutwidth  =170mm,
        textheight=38\baselineskip,
        headheight=\baselineskip,
        left=15mm, % right will be the same because of symmetric
        bindingoffset= 5mm, % add space for binding 
        textwidth=136mm, % 90+ 6+ 40
        top=14mm,
        marginparsep=0mm,   marginparwidth=0mm, %changed to full width <<<<<<<<<<
        includehead,
        layoutvoffset= 28.5mm,layouthoffset= 20mm,  % 297-240 = 57mm   210-170 = 40mm ->> to center smaller layout in a4
        showframe=true,
        showcrop=true }
    \fancyhfoffset[LE]{0pt}
    \fancyhfoffset[RO]{0pt}
}   
{\restoregeometry}%

\usepackage{kantlipsum} % dummy text added
\RequirePackage{showframe} % margin lines <<<<<<<<<<<<<<<<<<<<<<<<<
\renewcommand\ShowFrameLinethickness{0.1pt}
\renewcommand\ShowFrameColor{\color{red}}

\newcommand{\textls}[2][5]{%
    \begingroup\addfontfeatures{LetterSpace=#1}#2\endgroup
}

\renewcommand{\allcapsspacing}[1]{\textls[15]{#1}}
\renewcommand{\smallcapsspacing}[1]{\textls[10]{#1}}
\renewcommand{\allcaps}[1]{\textls[15]{\MakeTextUppercase{#1}}}
\renewcommand{\smallcaps}[1] {\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}

\usepackage{fontspec}
\usepackage{libertine} %<<<<<<<<<<<<<<<<
\setsansfont{TeX Gyre Heros}[Scale=MatchUppercase]  

\usepackage{xspace}
\newcommand{\monthyear}{%
    \ifcase\month\or janvier\or f\'{e}vrier\or mars\or avril\or mai\or juin\or
    juillet\or ao\^{u}t\or septembre\or octobre\or novembre\or
    d\'{e}cembre\fi\space\number\year
}

\newcommand{\blankpage}{\newpage\hbox{}\thispagestyle{empty}\newpage}

\usepackage[english,french]{babel}
\frenchbsetup{StandardLayout=true}
\addto\captionsfrench{\def\tablename{Tableau}}
\addto\captionsfrench{\def\figurename{Figure}}

\frenchbsetup{IndentFirst=false}

\usepackage{csquotes}

\begin{document}
    \frenchspacing

    \mainmatter
    
    9. \kant[9]
    
\begin{largetable}
    \selectlanguage{french}
    \footnotesize%
        \begin{tabular}{llll}
            \toprule
            \ & Manuels & Pédale & Compatibilité avec \\ & & & l'\oe uvre BWV 532\\
            
            \midrule
            Arnstadt  &   &    \\
            \quad Neue Kirche & CD-c$^3$   & CD-c$^1$d$^1$ & Non\\
            Mühlausen &   &   \\
            \quad Marienkirche & CD-c$^3$   & CD-d$^1$ & Oui \\
            \quad Kirche Davi Blasii & CD-d$^3$   & CD-d$^1$ & Oui  \\
            \quad Brückenhofkirche & CD-c$^3$   & CD-c$^1$ & Non \\
            &  &  \\
            Weimar  &  &  &  \\
            \quad Schlosskirche & CD-c$^3$   & CD-e$^1$ & Oui \\
            \quad Jacobskirche & ?   & ? & ? \\
            \quad Stadtkirche & ?   & ? & ? \\
            &  &  \\
            Halle        &  &  &  \\
            \quad Marktkirche & CD-c$^3$   & CD-c$^1$ & Non \\
            &  &  \\
            C\oe then  &  &  &  \\
            \quad Jacobskirche & CD-c$^3$   & CD-c$^1$ ou CD-d$^1$ & ? \\
            \quad Agnuskirche & C-?   & C-d$^1$e$^1$f$^1$ & ? \\
            \quad Schlosskapelle & C-e$^3$   & C-e$^1$ & Oui \\
            &  &  \\
            Hambourg &  &  &  \\
            \quad Hauptkirche St Katharinen & CDEFGA-c$^3$   & CDE-d$^1$ & Oui \\
            \quad Hauptkirche St Jacobi & CDE-C$^3$ (Rückpositif)   & C-d$^1$e$^1$f$^1$ & Oui \\
            & CDEFGA-c$^3$ (Werk)   &  &  \\
            & CDEFGA-c$^3$ (Oberpositiv) &  &  \\
            & CDEFGA-c$^3$ (Brustpositiv) &  &  \\
            \bottomrule
        \end{tabular}
    \caption{Tessiture des Manuels et Pédale des orgues joués par J.S. Bach entre 1703 et 1723, comparés à l'ambitus de l'\oe uvre (Manuels : D-b$^2$ ; Pédale : D-d$^1$).}
    \label{tab:orgues1}
%%  \forceversofloat% forces caption to be set to the left of the float
\end{largetable}
    
11. \kant[11]

    \begin{largetable}
        \selectlanguage{french}
        \footnotesize%
            \begin{tabular}{llll}
                \toprule
                \ & Manuels & Pédale & Compatibilité avec \\ & & & l'\oe uvre BWV 532\\
                
                \midrule
                Arnstadt  &   &    \\
                \quad Neue Kirche & CD-c$^3$   & CD-c$^1$d$^1$ & Non\\
                Mühlausen &   &   \\
                \quad Marienkirche & CD-c$^3$   & CD-d$^1$ & Oui \\
                \quad Kirche Davi Blasii & CD-d$^3$   & CD-d$^1$ & Oui  \\
                \quad Brückenhofkirche & CD-c$^3$   & CD-c$^1$ & Non \\
                &  &  \\
                Weimar  &  &  &  \\
                \quad Schlosskirche & CD-c$^3$   & CD-e$^1$ & Oui \\
                \quad Jacobskirche & ?   & ? & ? \\
                \quad Stadtkirche & ?   & ? & ? \\
                &  &  \\
                Halle        &  &  &  \\
                \quad Marktkirche & CD-c$^3$   & CD-c$^1$ & Non \\
                &  &  \\
                C\oe then  &  &  &  \\
                \quad Jacobskirche & CD-c$^3$   & CD-c$^1$ ou CD-d$^1$ & ? \\
                \quad Agnuskirche & C-?   & C-d$^1$e$^1$f$^1$ & ? \\
                \quad Schlosskapelle & C-e$^3$   & C-e$^1$ & Oui \\
                &  &  \\
                Hambourg &  &  &  \\
                \quad Hauptkirche St Katharinen & CDEFGA-c$^3$   & CDE-d$^1$ & Oui \\
                \quad Hauptkirche St Jacobi & CDE-C$^3$ (Rückpositif)   & C-d$^1$e$^1$f$^1$ & Oui \\
                & CDEFGA-c$^3$ (Werk)   &  &  \\
                & CDEFGA-c$^3$ (Oberpositiv) &  &  \\
                & CDEFGA-c$^3$ (Brustpositiv) &  &  \\
                \bottomrule
            \end{tabular}
        \caption{Tessiture des Manuels et Pédale des orgues joués par J.S. Bach entre 1703 et 1723, comparés à l'ambitus de l'\oe uvre (Manuels : D-b$^2$ ; Pédale : D-d$^1$).}
        \label{tab:orgues2}
        %%  \forceversofloat% forces caption to be set to the left of the float
    \end{largetable}
\end{document}

相关内容