我已将标题放在表格底部,单击表格列表时,标题会带我进入下一页。有没有使用 hyperref 转到标题页面的解决方案?
\documentclass[a4paper, 12pt, twoside ,titlepage]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{titlesec}
\titlespacing*{\section}{0pt}{0pt}{20pt}
\usepackage{geometry}
\geometry{a4paper,top=4cm,bottom=4cm,left=3cm,right=3cm,heightrounded,bindingoffset=5mm}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{fancyhdr}
\fancyhf{}
\fancyfoot[C]{\thepage}
\fancyhead[LO]{\slshape \rightmark}
\fancyhead[RE]{\slshape \leftmark}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.8pt}
\renewcommand{\sectionmark}[1]{\markboth{\thesection\ \ #1}{}}
\usepackage{hyperref}
\hypersetup{hidelinks}
\usepackage{textpos}
\usepackage{caption}
\captionsetup{skip=20pt,format=plain,position=bottom,font=small,labelformat=parens,labelfont=bf}
\usepackage{tikz}
\newcommand{\overbar}[1]{\overline{#1}}
\renewcommand{\baselinestretch}{1.1}
\newcommand{\HRULE}[1]{\rule{\linewidth}{#1}}
\title{
\vspace{1.5cm}
\HRULE{0.5pt}\\ [0.4cm]
\textbf{\Huge\textsc{Progetto\\ Fondamenti di Informatica}}
\HRULE{1.2pt}\\ [0.8cm]}
\author{\textbf{Nome:} Luca \\ \textbf{Cognome:} Longo \\
\textbf{Matricola:} blabla}
\date{\textbf{Anno Accademico:} 21-22}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=6cm]{logo.png}
\HRULE{0.5pt}\\ [0.2cm]
\Large \texttt{Dipartimento di Ingegneria e Architettura} \\
\Large\texttt{Ingegneria Eletronica - Informatica}
\end{figure}
\maketitle
\tableofcontents
\thispagestyle{empty}
\newpage
\listoftables
\thispagestyle{empty}
\newpage
\setcounter{page}{1}
\section*{Introduzione}
Il proposito di questa introduzione è quello di mostrare i punti chiave del progetto, in modo tale da avere un'idea di come si arriverà all'elaborato finale. \\
Prendendo in considerazione la sola parte numerica della Matricola personale, se ne ricaverà il \emph{resto} dividendo per $ 2^{2^4} $, ed in seguito si provvederà a codificarlo in binario al fine di ottenere una Funzione Booleana di 16bit a quattro variabili (x,y,z,w). \\
In seguito verranno identificati i termini minimi, \emph{"minterm"}, e i termini massimi, \emph{"Maxterm"}, termini in cui la funzione assume rispettivamente valori 1 e 0, di cui si provvederà a ricaverane le espressioni. \\
Nei passi successivi, le espressioni di minterm e maxterm verranno entrambe semplificate nel seguente modo:
\begin{itemize}
\item Per \emph{via algebrica}, attraverso l'utilizzo degli assiomi A1-A7 e dei teoremi T1-T10;
\end{itemize}
Verrà dimostrata l'effetiva esattezza dei calcoli mostrando l'equivalenza dei \mbox{risultati} di entrambe le semplificazioni, dopodichè si procederà alla semplificazione dei minterm in altri due modi differenti:
\begin{itemize}
\item Mediante \emph{mappa di Karnaugh};
\item Metodo \emph{tabellare Quine-Mc Cluskey};
\end{itemize}
Infine, per avere un quadro più chiaro, verranno predisposti i disegni degli schemi logici basati su porte \emph{"AND}, \emph{"OR"} , \emph{"NOT"} , delle semplificazioni illustrate nel passo precedente.
\addcontentsline{toc}{section}{Introduzione}
\thispagestyle{plain}
\newpage
\section{Individuazione Funzione Booleana associata \mbox{alla} matricola}
Acquisito il numero di matricola, si procede nell'individuazione della Funzione Booleana associata; \\
\hspace{12pt}\textbf{Numero Matricola: blabla}
\begin{enumerate}
\item Elisione del prefisso "IN" per ricavarne la sola parte numerica
\item Divisione della parte numerica per $ 2^{2^4} $ affinché se ne ricavi il resto: \\
$ 0501032 \div 2^{2^4} = 501032 \div 65536= 7*65536+42280 $ \\
Il resto è= 42280
\item Codifica del resto in binario tramite divisione per 2, operazione ripetuta per ogni quoziente ottenuto. Il resto di ogni divisione, formato da 0 o 1, comporrà la stringa binaria:
\begin{center}
\begin{tabular}{r | c}
42280 & 0\\
21140 & 0\\
10570 & 0\\
5285 & 1\\
2642 & 0\\
1321 & 1\\
660 & 0\\
330 & 0\\
165 & 1\\
82 & 0\\
41 & 1\\
20 & 0\\
10 & 0\\
5 & 1\\
2 & 0\\
1 & 1\\
0 & /\\
\end{tabular}
\captionof{table}{Codifica del resto in binario}
\label{tab: bin}
\end{center}
\begin{textblock*}{180pt}(270pt, -320 pt)
\begin{tikzpicture}
\node (A) at (0, -9.8) {};
\node (B) at (0, 0) {};
\draw[->] (A) -- (B);
\end{tikzpicture}
\end{textblock*}
\newpage
Il risultato derivante dalla codifica, letto dal basso verso l'alto come \mbox{indicato} dalla freccia della Tabella (\ref{tab: bin}), è il seguente: \\
\hspace{4cm} $42280_{10}= \bm{1010010100101000_{2}}$ \\
\item Si avrà una Funzione Booleana a quattro variabili associata alla stringa binaria "1010010100101000":
\end{enumerate}
\vspace{1cm}
\begin{center}
\begin{tabular}{cccc||c}
$x$ & $y$ & $z$ & $w$ & $f(x, y, z, w)$ \\
\hline
0 & 0 & 0 & 0 & 1\\
0 & 0 & 0 & 1 & 0\\
0 & 0 & 1 & 0 & 1\\
0 & 0 & 1 & 1 & 0\\
0 & 1 & 0 & 0 & 0\\
0 & 1 & 0 & 1 & 1\\
0 & 1 & 1 & 0 & 0\\
0 & 1 & 1 & 1 & 1\\
1 & 0 & 0 & 0 & 0\\
1 & 0 & 0 & 1 & 0\\
1 & 0 & 1 & 0 & 1\\
1 & 0 & 1 & 1 & 0\\
1 & 1 & 0 & 0 & 1\\
1 & 1 & 0 & 1 & 0\\
1 & 1 & 1 & 0 & 0\\
1 & 1 & 1 & 1 & 0\\
\end{tabular}
\captionof{table}{Funzione Booleana a quattro variabili associata alla stringa binaria}
\label{tab: Fun}
\end{center}
\newpage
bla bla vla
\end{document}
答案1
如此大的表格几乎肯定会带来分页问题。让它们浮动:标题的目的\label
是能够通过标题编号引用表格。
请查看您编辑过的打字稿。要点:
- 单独的包加载和设置
- 切勿使用
"
,而是使用双引号(如果需要,我更愿意将 设置为直立类型) - 切勿使用
\\
空行来终止段落。 - 虽然前两个
\newpage
命令有意义,但其他命令没有意义。 - 为了避免重复的锚点造成混淆,
hyperref
我\pagenumbering{Alph}
在前言中使用了\pagestyle{empty}
。 - 向上的箭头可以更容易地获得,请参阅
tab:bin
。
我提供了第二张表的两个版本;使用十六行来做会浪费很多空间,因此我打印了拆分的版本。
\documentclass[a4paper, 12pt, twoside ,titlepage]{article}
%%% packages
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{titlesec}
\usepackage{geometry}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{textpos}
\usepackage{caption}
\usepackage{tikz}
\usepackage{hyperref} % <-- should be last
%%% settings
% geometry
\geometry{
a4paper,
top=4cm,
bottom=4cm,
left=3cm,
right=3cm,
heightrounded,
bindingoffset=5mm,
headheight=14.5pt, % <-- as requested by fancyhdr
}
% hyperref
\hypersetup{hidelinks}
% titlesec
\titlespacing*{\section}
{0pt}
{0pt}
{20pt}
% caption
\captionsetup{
skip=20pt,
format=plain,
position=bottom,
font=small,
labelformat=parens,
labelfont=bf
}
% fancyhdr
\fancyhf{}
\fancyfoot[C]{\thepage}
\fancyhead[LO]{\slshape \rightmark}
\fancyhead[RE]{\slshape \leftmark}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.8pt}
\renewcommand{\sectionmark}[1]{\markboth{\thesection\ \ #1}{}}
\newcommand{\overbar}[1]{\overline{#1}}
\renewcommand{\baselinestretch}{1.1}
\newcommand{\HRULE}[1]{\rule{\linewidth}{#1}}
\title{
\vspace{1.5cm}
\HRULE{0.5pt}\\[0.4cm]
\textbf{\Huge\textsc{Progetto\\ Fondamenti di Informatica}}
\HRULE{1.2pt}\\[0.8cm]}
\author{\textbf{Nome:} Luca \\ \textbf{Cognome:} Longo \\
\textbf{Matricola:} blabla}
\date{\textbf{Anno Accademico:} 21-22}
\begin{document}
\begin{center}
% \includegraphics[width=6cm]{logo.png}% <-- I don't have it
\HRULE{0.5pt}\\[0.2cm]
\Large\texttt{Dipartimento di Ingegneria e Architettura} \\
\Large\texttt{Ingegneria Elettronica - Informatica}
\end{center}
\pagenumbering{Alph}
\pagestyle{empty}
\maketitle
\tableofcontents
\thispagestyle{empty}
\newpage
\listoftables
\thispagestyle{empty}
\newpage
\pagenumbering{arabic}
\setcounter{page}{1}
\section*{Introduzione}
\addcontentsline{toc}{section}{Introduzione}
\thispagestyle{plain}
Il proposito di questa introduzione è quello di mostrare i punti
chiave del progetto, in modo tale da avere un'idea di come si
arriverà all'elaborato finale.
Prendendo in considerazione la sola parte numerica della Matricola
personale, se ne ricaverà il \emph{resto} dividendo per $ 2^{2^4}$,
ed in seguito si provvederà a codificarlo in binario al fine di
ottenere una Funzione Booleana di 16bit a quattro variabili $(x,y,z,w)$.
In seguito verranno identificati i termini minimi, ``\emph{minterm}'',
e i termini massimi, ``\emph{Maxterm}'', termini in cui la funzione
assume rispettivamente valori 1 e 0, di cui si provvederà a ricaverane
le espressioni.
Nei passi successivi, le espressioni di minterm e maxterm verranno
entrambe semplificate nel seguente modo:
\begin{itemize}
\item Per \emph{via algebrica}, attraverso l'utilizzo degli assiomi
A1--A7 e dei teoremi T1--T10;
\end{itemize}
Verrà dimostrata l'effetiva esattezza dei calcoli mostrando
l'equivalenza dei \mbox{risultati} di entrambe le semplificazioni,
dopodiché si procederà alla semplificazione dei minterm in altri due
modi differenti:
\begin{itemize}
\item Mediante \emph{mappa di Karnaugh};
\item Metodo \emph{tabellare Quine-Mc Cluskey};
\end{itemize}
Infine, per avere un quadro più chiaro, verranno predisposti i disegni
degli schemi logici basati su porte ``\emph{AND}'', ``\emph{OR}'' ,
``\emph{NOT}'' , delle semplificazioni illustrate nel passo precedente.
\section{Individuazione Funzione Booleana associata \mbox{alla} matricola}
Acquisito il numero di matricola, si procede nell'individuazione della
Funzione Booleana associata
\begin{quote}
\textbf{Numero Matricola: blabla}
\end{quote}
\begin{enumerate}
\item Elisione del prefisso ``IN'' per ricavarne la sola parte numerica;
\item Divisione della parte numerica per $ 2^{2^4} $ affinché se ne
ricavi il resto $ 0501032 \div 2^{2^4} = 501032 \div 65536= 7*65536+42280 $;
il resto è $42280$
\item Codifica del resto in binario tramite divisione per~$2$, operazione
ripetuta per ogni quoziente ottenuto. Il resto di ogni divisione, formato
da $0$ o $1$, comporrà la stringa binaria mostrata nella tabella~\ref{tab:bin}.
\begin{table}[htp]
\centering
$\left.
\begin{array}{r | c}
42280 & 0\\
21140 & 0\\
10570 & 0\\
5285 & 1\\
2642 & 0\\
1321 & 1\\
660 & 0\\
330 & 0\\
165 & 1\\
82 & 0\\
41 & 1\\
20 & 0\\
10 & 0\\
5 & 1\\
2 & 0\\
1 & 1\\
0 & /\\
\end{array}
\right\uparrow$
\caption{Codifica del resto in binario}\label{tab:bin}
\end{table}
Il risultato derivante dalla codifica, letto dal basso verso l'alto come
\mbox{indicato} dalla freccia della tabella~(\ref{tab:bin}), è il seguente:
\begin{quote}
$42280_{10}= \bm{1010010100101000_{2}}$
\end{quote}
\item Si avrà una Funzione Booleana a quattro variabili associata alla stringa
binaria ``$1010010100101000$'' come nella tabella~\ref{tab:Fun}.
\end{enumerate}
\begin{table}[htp]
\centering
\iffalse % comment for the long table
$\begin{array}{cccc|c}
x & y & z & w & f(x, y, z, w) \\
\hline
0 & 0 & 0 & 0 & 1\\
0 & 0 & 0 & 1 & 0\\
0 & 0 & 1 & 0 & 1\\
0 & 0 & 1 & 1 & 0\\
0 & 1 & 0 & 0 & 0\\
0 & 1 & 0 & 1 & 1\\
0 & 1 & 1 & 0 & 0\\
0 & 1 & 1 & 1 & 1\\
1 & 0 & 0 & 0 & 0\\
1 & 0 & 0 & 1 & 0\\
1 & 0 & 1 & 0 & 1\\
1 & 0 & 1 & 1 & 0\\
1 & 1 & 0 & 0 & 1\\
1 & 1 & 0 & 1 & 0\\
1 & 1 & 1 & 0 & 0\\
1 & 1 & 1 & 1 & 0\\
\end{array}$
\fi % comment for the long table
%\iffalse % uncomment for the long table
$\begin{array}{cccc|c}
x & y & z & w & f(x, y, z, w) \\
\hline
0 & 0 & 0 & 0 & 1\\
0 & 0 & 0 & 1 & 0\\
0 & 0 & 1 & 0 & 1\\
0 & 0 & 1 & 1 & 0\\
0 & 1 & 0 & 0 & 0\\
0 & 1 & 0 & 1 & 1\\
0 & 1 & 1 & 0 & 0\\
0 & 1 & 1 & 1 & 1
\end{array}$\qquad\qquad
$\begin{array}{cccc|c}
x & y & z & w & f(x, y, z, w) \\
\hline
1 & 0 & 0 & 0 & 0\\
1 & 0 & 0 & 1 & 0\\
1 & 0 & 1 & 0 & 1\\
1 & 0 & 1 & 1 & 0\\
1 & 1 & 0 & 0 & 1\\
1 & 1 & 0 & 1 & 0\\
1 & 1 & 1 & 0 & 0\\
1 & 1 & 1 & 1 & 0\\
\end{array}$
%\fi % uncomment for the long table
\caption{Funzione Booleana a quattro variabili associata alla stringa binaria}
\label{tab:Fun}
\end{table}
bla bla vla
\end{document}
在文档完成之前,不必担心表格的摆放。
答案2
- 您的文档示例仍然无法编译,
- 正如我在评论中指出的那样,列表
enumerate
应该使用并以 开头\item
。在下面的 MWE 中,我盲目地添加它们。 - 对于浮动范围之外的表格标题,
tables
您应该使用\captionof{table}{...}
。 - 为什么使用
\\
来终止文本行?如果需要开始新的段落,则插入空文本行是正确的。 - 与您的相比,我的 MWE 中的变化在代码中以 标记
% <---
。
\documentclass[demo,
a4paper, 12pt, twoside ,titlepage]{article}
\usepackage{geometry}
\geometry{a4paper,top=4cm,bottom=4cm,left=3cm,right=3cm,heightrounded,bindingoffset=5mm}
\usepackage[italian]{babel}
\usepackage{titlesec}
\titlespacing*{\section}{0pt}{0pt}{20pt}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{fancyhdr}
\fancyhf{}
\fancyfoot[C]{\thepage}
\fancyhead[LO]{\slshape \rightmark}
\fancyhead[RE]{\slshape \leftmark}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.8pt}
\renewcommand{\sectionmark}[1]{\markboth{\thesection\ \ #1}{}}
\usepackage{textpos}
\usepackage{caption}
\captionsetup{skip=20pt,
format=plain,
position=bottom,
font=small,
labelformat=parens,labelfont=bf}
\usepackage{tikz}
\usepackage{hyperref}
\hypersetup{hidelinks}
\newcommand{\overbar}[1]{\overline{#1}}
\renewcommand{\baselinestretch}{1.1}
\newcommand{\HRULE}[1]{\rule{\linewidth}{#1}}
\title{
\vspace{1.5cm}
\HRULE{0.5pt}\\ [0.4cm]
\textbf{\Huge\textsc{Progetto\\ }}
\HRULE{1.2pt}\\ [0.8cm]}
\author{\textbf{Nome:} Luca \\ \textbf{Cognome:} blabla \\
\textbf{Matricola:} blabla}
\date{\textbf{Anno Accademico:} 21-22}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=6cm]{logo.png}
\HRULE{0.5pt}\\ [0.2cm]
\Large \texttt{blabla} \\
\Large\texttt{blabla}
\end{figure}
\maketitle
\tableofcontents
\thispagestyle{empty}
\newpage
\listoftables
\thispagestyle{empty}
\newpage
\setcounter{page}{1}
\section*{Introduzione}
blablabla
\addcontentsline{toc}{section}{Introduzione}
\thispagestyle{plain}
\newpage
\section{blabla}
blablabla;
\hspace{12pt}\textbf{blabla}
\begin{enumerate}
\item blablabla % <----
\begin{textblock*}{180pt}(180pt, 5pt)
\begin{tabular}{r | c}
42280 & 0\\
21140 & 0\\
10570 & 0\\
5285 & 1\\
2642 & 0\\
1321 & 1\\
660 & 0\\
330 & 0\\
165 & 1\\
82 & 0\\
41 & 1\\
20 & 0\\
10 & 0\\
5 & 1\\
2 & 0\\
1 & 1\\
0 & /\\
\end{tabular}
\captionof{table}{Codifica del resto in binario} % <---
\label{tab: bin}
\end{textblock*}
\begin{textblock*}{150pt}(250pt, -5 pt)
\begin{tikzpicture}
\node (A) at (0, -10) {};
\node (B) at (0, 0) {};
\draw[->] (A) -- (B);
\end{tikzpicture}
\end{textblock*}
\newpage
\item blablabla:
\hspace{4cm} blablabla
\item blablabla:
\end{enumerate}
\vspace{1cm}
\begin{center}
\begin{tabular}{cccc||c}
$x$ & $y$ & $z$ & $w$ & $f(x, y, z, w)$ \\
\hline
0 & 0 & 0 & 0 & 1\\
0 & 0 & 0 & 1 & 0\\
0 & 0 & 1 & 0 & 1\\
0 & 0 & 1 & 1 & 0\\
0 & 1 & 0 & 0 & 0\\
0 & 1 & 0 & 1 & 1\\
0 & 1 & 1 & 0 & 0\\
0 & 1 & 1 & 1 & 1\\
1 & 0 & 0 & 0 & 0\\
1 & 0 & 0 & 1 & 0\\
1 & 0 & 1 & 0 & 1\\
1 & 0 & 1 & 1 & 0\\
1 & 1 & 0 & 0 & 1\\
1 & 1 & 0 & 1 & 0\\
1 & 1 & 1 & 0 & 0\\
1 & 1 & 1 & 1 & 0\\
\end{tabular}
\captionof{table}{Funzione Booleana a quattro variabili associata alla stringa binaria}
\label{tab: Fun}
\end{center}
\end{document}
上述 MWE(现在)按预期工作。